Index: trunk/Cosmo/RadioBeam/interfconfigs.cc
===================================================================
--- trunk/Cosmo/RadioBeam/interfconfigs.cc	(revision 4050)
+++ trunk/Cosmo/RadioBeam/interfconfigs.cc	(revision 4069)
@@ -18,4 +18,19 @@
   cout << ">>>CreateFilledSqConfig(" << nd << "," << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
   
+  return vd;
+}
+
+/* --Fonction -- */
+vector<Dish> CreateSparseSqConfig(int nd, double LSep, double Ddish, double Eta)
+{
+  vector<Dish>  vd;
+  int cnt=0;
+  for(int i=0; i<nd; i++) 
+    for(int j=0; j<nd; j++) {
+      cnt++; 
+      vd.push_back(Dish(cnt, i*LSep, j*LSep, Eta*Ddish));
+    }
+  cout << ">>>CreateSparseSqConfig(" << nd << ", LSep=" << LSep 
+       << ", Ddish=" << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
   return vd;
 }
Index: trunk/Cosmo/RadioBeam/interfconfigs.h
===================================================================
--- trunk/Cosmo/RadioBeam/interfconfigs.h	(revision 4050)
+++ trunk/Cosmo/RadioBeam/interfconfigs.h	(revision 4069)
@@ -18,4 +18,6 @@
 //  Filled square array of ndxnd dishes 
 vector<Dish> CreateFilledSqConfig(int nd, double Ddish=5., double Eta=0.9);
+//  Sparse regular square array of ndxnd dishes, each with diameter Ddish, separated at Lsep 
+vector<Dish> CreateSparseSqConfig(int nd, double LSep=5., double Ddish=1., double Eta=0.9);
 //  Semi filled square array of ndxnd dishes 
 vector<Dish> CreateSemiFilledSqConfig(int nd, double Ddish=5., double Eta=0.9);
Index: trunk/Cosmo/RadioBeam/repicon.cc
===================================================================
--- trunk/Cosmo/RadioBeam/repicon.cc	(revision 4050)
+++ trunk/Cosmo/RadioBeam/repicon.cc	(revision 4069)
@@ -43,6 +43,7 @@
   cout << " Usage: repicon [-parname Value] configId OutPPFName \n" 
        << " configIds: f4x4,f8x8,f11x11,f20x20, confA,confB,confC,confD, hex12,cross11, \n" 
-       <<  "           f4cyl,f8cyl,f4cylp,f4cylp, nan12,nan24,nan36,nan40,nan128 \n"
+       <<  "           f4cyl,f8cyl,f4cylp,f4cylp, s4x4,s11x11,s20x20  nan12,nan24,nan36,nan40,nan128 \n"
        << "   f4x4 , f8x8 , f11x11 , f20x20 Filled array of nxn dishes  \n" 
+       << "   s4x4 , s11x11 , s20x20  sparse/semi-Filled regular array of nxn dishes  \n" 
        << "   confA , confB, confC, confD : semi-filled array of dishes \n"
        << "   hex12,cross11 : ASKAP like double hexagonal (12xD=12m), cross config (11xD=12m) \n"
@@ -56,4 +57,5 @@
        << "    -z redshift (default=0.7) --> determines Lambda \n"
        << "    -D DishDiameter (default=5 m) \n"
+       << "    -lsep Lsep (default=5 m) dish separation for sparse/semi-filled array \n"
        << "    -eta fill_factor (default=0.90) \n"
        << "    -lmax array extension (default=100 m ) for response calculation kmax \n" 
@@ -88,4 +90,5 @@
   
   double Ddish=5.;
+  double Lsep=5.;
   double Eta=0.9;
   bool fgDfixed=false;
@@ -114,4 +117,7 @@
       Ddish=atof(arg[ka+1]);  fgDfixed=true;  ka+=2;
     }
+    else if (strcmp(arg[ka],"-lsep")==0) {
+      Lsep=atof(arg[ka+1]);  ka+=2;
+    }
     else if (strcmp(arg[ka],"-eta")==0) {
       Eta=atof(arg[ka+1]);  ka+=2;
@@ -178,4 +184,15 @@
       vdishes=CreateFilledSqConfig(20,Ddish, Eta);
     }
+
+    else if (config=="s4x4") {
+      vdishes=CreateSparseSqConfig(4, Lsep, Ddish, Eta);
+    }
+    else if (config=="s11x11") {
+      vdishes=CreateSparseSqConfig(11, Lsep, Ddish, Eta);
+    }
+    else if (config=="s20x20") {
+      vdishes=CreateSparseSqConfig(20, Lsep, Ddish, Eta);
+    }
+
     else if (config=="f4cyl") {
       cylW=12.;   cylRL=2*LAMBDA; 
@@ -318,5 +335,5 @@
 void SaveDTVecDishesH2Resp(POutPersist& po, vector<Dish>& vdishes, Four2DRespTable& mdresp)
 {
-  char* names[5]={"did","posx","posy","diam","diamy"};
+  const char* names[5]={"did","posx","posy","diam","diamy"};
   NTuple ntvd(5,names,64,false);
   r_4 xnt[10];
Index: trunk/Cosmo/RadioBeam/sensfgnd21cm.tex
===================================================================
--- trunk/Cosmo/RadioBeam/sensfgnd21cm.tex	(revision 4050)
+++ trunk/Cosmo/RadioBeam/sensfgnd21cm.tex	(revision 4069)
@@ -219,5 +219,5 @@
 $1 \lesssim z \lesssim 2$, and possibly up to the reionization redshift \citep{wyithe.08}.
 
-In section 2, we  discuss the intensity mapping and its potential for measuring of the
+In section 2, we  discuss the intensity mapping and its potential for measuring the
 \HI mass distribution power spectrum. The method used in this paper to characterize 
 a radio instrument response and sensitivity for $P_{\mathrm{H_I}}(k)$ is presented in section 3.
@@ -398,5 +398,5 @@
 compared to its current value $\gHI(z=1.5) \sim 0.025$. 
 The 21 cm brightness temperature and the corresponding power spectrum can be written as 
-(\cite{madau.97}; \cite{zaldarriaga.04}); \cite{barkana.07})
+(\cite{madau.97}; \cite{zaldarriaga.04}; \cite{barkana.07})
 \begin{eqnarray}
  P_{T_{21}}(k) & = & \left( \bar{T}_{21}(z)  \right)^2 \, P(k)    \label{eq:pk21z} \\
@@ -628,5 +628,5 @@
 { \changemark
 \begin{eqnarray}
-\alpha , \beta & \rightarrow &  \ell_\perp = l_x, l_y = (1+z) \, \dang(z) \,  \alpha,\beta  \\
+\alpha , \beta & \rightarrow &  \ell_\perp = \ell_x, \ell_y = (1+z) \, \dang(z) \,  \alpha,\beta  \\
 \uv & \rightarrow & k_\perp = k_x, k_y = 2 \pi \frac{ \uvu , \uvv }{  (1+z) \, \dang(z)  }   \label{eq:uvkxky} \\
 \delta \nu & \rightarrow & \delta \ell_\parallel = (1+z) \frac{c}{H(z)} \frac{\delta \nu}{\nu} 
@@ -672,5 +672,5 @@
 to a 3D white noise, with a uniform noise spectral density:}
 \begin{equation}
-P_{noise}(k_\perp, l_\parallel(\nu) ) = P_{noise} = 2 \, \frac{\Tsys^2}{t_{int} \, \nu_{21} } \, \frac{\lambda^2}{D^2}  \, \dang^2(z) \frac{c}{H(z)} \, (1+z)^4  
+P_{noise}(k_\perp, \ell_\parallel(\nu) ) = P_{noise} = 2 \, \frac{\Tsys^2}{t_{int} \, \nu_{21} } \, \frac{\lambda^2}{D^2}  \, \dang^2(z) \frac{c}{H(z)} \, (1+z)^4  
 \label{ctepnoisek}
 \end{equation} 
@@ -980,5 +980,5 @@
  
 \subsection{ Synchrotron and radio sources }
-We modeled the radio sky in the form of three 3D maps (data cubes) of sky temperature 
+We modeled the radio sky in the form of 3D maps (data cubes) of sky temperature 
 brightness $T(\alpha, \delta, \nu)$ as a function of two equatorial angular coordinates $(\alpha, \delta)$ 
 and the frequency $\nu$. Unless otherwise specified, the results presented here are based on simulations of 
@@ -1579,5 +1579,5 @@
 The \HI power spectrum is divided by an envelop curve $P(k)_{ref}$ 
 corresponding to the power spectrum without baryonic oscillations. 
-The dots represents one simulation for a "packed" array of cylinders  
+The dots represents one simulation for a "packed" array of dishes  
 with a system temperature,$T_{sys}=50$K, an observation time, 
 $T_{obs}=$ 1 year, 
@@ -1609,5 +1609,5 @@
 \includegraphics[width=8.5cm]{Figs/AveragedPk.pdf}
 \caption{1D projection of the power spectrum averaged over 100 simulations
-of the packed cylinder array $b$. 
+of the packed dish array. 
 The simulations are performed for the following conditions: a system 
 temperature $T_{sys}=50$K, an observation time $T_{obs}=1$ year, 
@@ -1809,5 +1809,5 @@
 
 \section{Conclusions}
-The 3D mapping of redshifted 21 cm emission though {\it intensity mapping} is a novel and complementary 
+The 3D mapping of redshifted 21 cm emission through {\it intensity mapping} is a novel and complementary 
 approach to optical surveys for studying the statistical properties of the LSS in the universe
 up to redshifts $z \lesssim 3$. A radio instrument with a large instantaneous field of view 
Index: trunk/Cosmo/RadioBeam/specpk.cc
===================================================================
--- trunk/Cosmo/RadioBeam/specpk.cc	(revision 4050)
+++ trunk/Cosmo/RadioBeam/specpk.cc	(revision 4069)
@@ -421,5 +421,5 @@
   Histo& hmcntok=(*hmcntok_p_);
   Histo fracmodok=hmcntok/hmcnt;
-  char* nomcol[5] = {"k","pnoise","nmode","nmodok","fracmodok"};
+  const char* nomcol[5] = {"k","pnoise","nmode","nmodok","fracmodok"};
   dt.Clear();
   dt.AddDoubleColumn(nomcol[0]);    
