Index: /issm/trunk/src/m/solutions/cielo/prognostic.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/prognostic.m	(revision 602)
+++ /issm/trunk/src/m/solutions/cielo/prognostic.m	(revision 603)
@@ -12,5 +12,5 @@
 	md.analysis_type='prognostic'; m_p=CreateFemModel(md);
 
-	displaystring(debug,'\n%s',['depth averaging velocity...']);
+	displaystring(md.debug,'\n%s',['depth averaging velocity...']);
 	u_g=VelocityDepthAverage(m_p.elements,m_p.nodes,m_p.loads,m_p.materials,m_p.parameters.u_g);
 
@@ -28,5 +28,5 @@
 
 	displaystring(md.debug,'\n%s',['computing new thickness...']);
-	h_g=diagnostic_core_linear(m_p,inputs,'prognostic','');
+	h_g=prognostic_core(m_p,inputs,'prognostic','');
 	
 	displaystring(md.debug,'\n%s',['extrude new thickness...']);
Index: /issm/trunk/src/m/solutions/cielo/prognostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/prognostic_core.m	(revision 603)
+++ /issm/trunk/src/m/solutions/cielo/prognostic_core.m	(revision 603)
@@ -0,0 +1,29 @@
+function u_g=prognostic_core(m,inputs,analysis_type,sub_analysis_type)
+%PROGNOSTIC_CORE - linear solution sequence
+%
+%   Usage:
+%      u_g=prognostic_core(m,inputs,analysis_type,sub_analysis_type)
+
+	%stiffness and load generation only:
+	m.parameters.kflag=1; m.parameters.pflag=1;
+
+	%Update inputs in datasets
+	[m.elements,m.nodes, m.loads,m.materials]=UpdateFromInputs(m.elements,m.nodes, m.loads,m.materials,inputs);
+	
+	%system matrices
+	[K_gg, p_g]=SystemMatrices(m.elements,m.nodes,m.loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type);
+	[K_gg, p_g,kmax]=PenaltySystemMatrices(K_gg,p_g,m.elements,m.nodes,m.loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type);
+	
+	%Reduce tangent matrix from g size to f size
+	[K_ff, K_fs] = Reducematrixfromgtof( K_gg, m.Gmn, m.nodesets); 
+	
+	%Reduce load from g size to f size
+	[p_f] = Reduceloadfromgtof( p_g, m.Gmn, K_fs, m.ys, m.nodesets);
+	
+	%Solve	
+	[u_f]=Solver(K_ff,p_f,[],m.parameters);
+	
+	%Merge back to g set
+	[u_g]= Mergesolutionfromftog( u_f, m.Gmn, m.ys, m.nodesets ); 
+
+end %end function
