Index: /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 21741)
+++ /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 21742)
@@ -90,14 +90,32 @@
 		iomodel->FetchData(&degacc,"md.slr.degacc");
 		M=reCast<int,IssmDouble>(180./degacc+1.);
+
+		// AD performance is sensitive to calls to ensurecontiguous.
+		// // Providing "t" will cause ensurecontiguous to be called.
+		#ifdef _HAVE_AD_
 		G_elastic=xNew<IssmDouble>(M,"t");
 		U_elastic=xNew<IssmDouble>(M,"t");
 		H_elastic=xNew<IssmDouble>(M,"t");
+		#else
+		G_elastic=xNew<IssmDouble>(M);
+		U_elastic=xNew<IssmDouble>(M);
+		H_elastic=xNew<IssmDouble>(M);
+		#endif
+
 		
 		/*compute combined legendre + love number (elastic green function:*/
 		m=DetermineLocalSize(M,IssmComm::GetComm());
 		GetOwnershipBoundariesFromRange(&lower_row,&upper_row,m,IssmComm::GetComm());
+		// AD performance is sensitive to calls to ensurecontiguous.
+		// // Providing "t" will cause ensurecontiguous to be called.
+		#ifdef _HAVE_AD_
 		G_elastic_local=xNew<IssmDouble>(m,"t");
 		U_elastic_local=xNew<IssmDouble>(m,"t");
 		H_elastic_local=xNew<IssmDouble>(m,"t");
+		#else
+		G_elastic_local=xNew<IssmDouble>(m);
+		U_elastic_local=xNew<IssmDouble>(m);
+		H_elastic_local=xNew<IssmDouble>(m);
+		#endif
 
 		for(int i=lower_row;i<upper_row;i++){
