Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 27055)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 27056)
@@ -7455,5 +7455,5 @@
 	IssmDouble* G=NULL;
 	IssmDouble* Grot=NULL;
-	IssmDouble* Gsub[SLGEOM_NUMLOADS];
+	IssmDouble** Gsub=NULL;
 	bool computefuture=false;
 
@@ -7465,4 +7465,5 @@
 	int  nel,nbar;
 
+	Gsub=xNew<IssmDouble*>(SLGEOM_NUMLOADS);
 
 	this->parameters->FindParam(&sal,SolidearthSettingsSelfAttractionEnum);
@@ -7484,5 +7485,5 @@
 	xDelete<IssmDouble>(Grot);
 	for (int l=0;l<SLGEOM_NUMLOADS;l++) xDelete<IssmDouble>(Gsub[l]);
-	xDelete<IssmDouble>(Gsub[SLGEOM_NUMLOADS]);
+	xDelete<IssmDouble*>(Gsub);
 
 	return;
@@ -7542,8 +7543,8 @@
 	IssmDouble* GNrot=NULL;
 	IssmDouble* GErot=NULL;
-	IssmDouble* Gsub[SLGEOM_NUMLOADS];
-	IssmDouble* GUsub[SLGEOM_NUMLOADS];
-	IssmDouble* GNsub[SLGEOM_NUMLOADS];
-	IssmDouble* GEsub[SLGEOM_NUMLOADS];
+	IssmDouble** Gsub;
+	IssmDouble** GUsub;
+	IssmDouble** GNsub;
+	IssmDouble** GEsub;
 	bool computefuture=false;
 
@@ -7555,4 +7556,9 @@
 	bool percpu=false;
 	bool planethasocean=false;
+
+	Gsub=xNew<IssmDouble*>(SLGEOM_NUMLOADS);
+	GUsub=xNew<IssmDouble*>(SLGEOM_NUMLOADS);
+	GEsub=xNew<IssmDouble*>(SLGEOM_NUMLOADS);
+	GNsub=xNew<IssmDouble*>(SLGEOM_NUMLOADS);
 
 	this->parameters->FindParam(&nel,MeshNumberofelementsEnum);
@@ -7645,8 +7651,8 @@
 		xDelete<IssmDouble>(GEsub[l]);
 	}
-	xDelete<IssmDouble>(Gsub[SLGEOM_NUMLOADS]);
-	xDelete<IssmDouble>(GUsub[SLGEOM_NUMLOADS]);
-	xDelete<IssmDouble>(GNsub[SLGEOM_NUMLOADS]);
-	xDelete<IssmDouble>(GEsub[SLGEOM_NUMLOADS]);
+	xDelete<IssmDouble*>(Gsub);
+	xDelete<IssmDouble*>(GUsub);
+	xDelete<IssmDouble*>(GEsub);
+	xDelete<IssmDouble*>(GNsub);
 
 } /*}}}*/
