Index: /issm/trunk-jpl/src/c/cores/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 22799)
+++ /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 22800)
@@ -196,8 +196,4 @@
 				int         ngrids_ice=femmodel->vertices->NumberOfVertices();
 				int         nels_ice=femmodel->elements->NumberOfElements();
-				lat_ice= xNew<IssmDouble>(ngrids_ice);
-				lon_ice= xNew<IssmDouble>(ngrids_ice);
-				icebase= xNew<IssmDouble>(ngrids_ice);
-				melt_mesh= xNew<IssmDouble>(ngrids_ice);
 				
 				/*Recover mesh and inputs needed*/
@@ -207,6 +203,4 @@
 				femmodel->parameters->FindParam(&oceangridy,&ngrids_ocean,OceanGridYEnum);
 				BamgTriangulatex(&index_ocean,&nels_ocean,oceangridx,oceangridy,ngrids_ocean);
-				base_oceangrid= xNew<IssmDouble>(ngrids_ocean);
-				oceanmelt = xNew<IssmDouble>(ngrids_ocean);
 
 				femmodel->vertices->LatLonList(&lat_ice,&lon_ice);
@@ -220,7 +214,9 @@
 				/*Send and receive data*/
 				ISSM_MPI_Send(&time,1,ISSM_MPI_DOUBLE,0,10001001,tomitgcmcomm);
+				oceanmelt = xNew<IssmDouble>(ngrids_ocean);
 				ISSM_MPI_Recv(&oceantime,1,ISSM_MPI_DOUBLE,0,10001002,tomitgcmcomm,&status);
 				if((oceantime - time > 0.1*yts) & (oceantime - time < -0.1*yts)) _error_("Ocean and ice time are starting to diverge");
 				ISSM_MPI_Recv(oceanmelt,ngrids_ocean,ISSM_MPI_DOUBLE,0,10001007,tomitgcmcomm,&status);
+				for(int i=0;i<ngrids_ice;i++) base_oceangrid[i]=0;
 				ISSM_MPI_Send(base_oceangrid,ngrids_ocean,ISSM_MPI_DOUBLE,0,10001008,tomitgcmcomm);
 
@@ -234,4 +230,6 @@
 
 				/*Delete*/
+				xDelete<int>(index_ice);
+				xDelete<int>(index_ocean);
 				xDelete<IssmDouble>(lat_ice);
 				xDelete<IssmDouble>(lon_ice);
@@ -240,5 +238,4 @@
 				xDelete<IssmDouble>(z_ice);
 				xDelete<IssmDouble>(melt_mesh);
-				xDelete<int>(index_ice);
 				xDelete<IssmDouble>(oceangridx);
 				xDelete<IssmDouble>(oceangridy);
