Index: /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 25467)
+++ /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 25468)
@@ -152,4 +152,18 @@
 /*}}}*/
 
+void SpcStatic::UpdateSpcThicknessAD(IssmDouble* vector,Nodes* nodes){/*{{{*/
+
+	/*Chase through nodes and find the node to which this SpcStatic applies: */
+	Node* node=(Node*)nodes->GetObjectById(NULL,nodeid);
+
+	/*Apply constraint: */
+	if(node){ //in case the spc is dealing with a node on another cpu
+		int sid = node->Sid();
+		this->value = vector[sid];
+		_assert_(!xIsNan<IssmDouble>(this->value)); 
+	}
+}
+/*}}}*/
+
 /*SpcStatic functions*/
 int        SpcStatic::GetDof(){/*{{{*/
Index: /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.h	(revision 25467)
+++ /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.h	(revision 25468)
@@ -14,10 +14,10 @@
 
 	private: 
-		int        id;             /*! id, to track it */
-		int        nodeid;          /*!node id          */
-		int        dof;             /*!component        */
-		IssmDouble value;           /*value             */
+		int        id;
+		int        nodeid;
+		int        dof;
+		IssmDouble value;
 		int        analysis_type;
-		bool       penalty;         /*Is this a penalty constraint */
+		bool       penalty;
 
 	public:
@@ -47,4 +47,5 @@
 		IssmDouble GetValue();
 		/*}}}*/
+		void UpdateSpcThicknessAD(IssmDouble* vector,Nodes* nodes);
 
 };
