Index: branches/eam_branches/relphot.20210521/src/GridOps.c
===================================================================
--- branches/eam_branches/relphot.20210521/src/GridOps.c	(revision 41610)
+++ branches/eam_branches/relphot.20210521/src/GridOps.c	(revision 41615)
@@ -68,6 +68,6 @@
     for (int ix = 0; ix < GridCorr[code]->Nx; ix++) {
       FREE (GridCorr[code]-> Mgrid[ix]);
-      FREE (GridCorr[code]->dMgrid[ix]);
-      FREE (GridCorr[code]->nMgrid[ix]);
+      if (GridCorr[code]->dMgrid) FREE (GridCorr[code]->dMgrid[ix]);
+      if (GridCorr[code]->nMgrid) FREE (GridCorr[code]->nMgrid[ix]);
     }      
 
@@ -85,5 +85,5 @@
 }
 
-GridCorrectionType *getGridCorr (int *Nlast) {
+GridCorrectionType *getGridCorrNext (int *Nlast) {
 
   if (GridCorr == NULL) return NULL;
@@ -99,4 +99,16 @@
     *Nlast = i;
   }
+  return result;
+}
+
+GridCorrectionType *getGridCorrByCode (int code) {
+
+  if (GridCorr == NULL) return NULL;
+
+  if (code >= NGridCorr) return NULL;
+  if (code <          0) return NULL;
+
+  ALLOCATE(GridCorr[code], GridCorrectionType, 1)
+  GridCorrectionType *result = GridCorr[code];
   return result;
 }
@@ -135,7 +147,7 @@
     ALLOCATE (GridCorr[code]->nMgrid,   int *, NX_BIN);
     for (int ix = 0; ix < NX_BIN; ix++) {
-      ALLOCATE (GridCorr[code]-> Mgrid[ix], float, NX_BIN);
-      ALLOCATE (GridCorr[code]->dMgrid[ix], float, NX_BIN);
-      ALLOCATE (GridCorr[code]->nMgrid[ix],   int, NX_BIN);
+      ALLOCATE (GridCorr[code]-> Mgrid[ix], float, NY_BIN);
+      ALLOCATE (GridCorr[code]->dMgrid[ix], float, NY_BIN);
+      ALLOCATE (GridCorr[code]->nMgrid[ix],   int, NY_BIN);
     }      
   }
