diff --git a/openair1/PHY/TOOLS/defs.h b/openair1/PHY/TOOLS/defs.h
index 3a8a58b6f2c16dfeaa14bd892ce90078ae183514..fceb5972ed570dfec495559fc62ba05616d9821e 100644
--- a/openair1/PHY/TOOLS/defs.h
+++ b/openair1/PHY/TOOLS/defs.h
@@ -296,10 +296,10 @@ int32_t subcarrier_energy(int32_t *,uint32_t, int32_t* subcarrier_energy, uint16
 */
 int32_t signal_energy_nodc(int32_t *,uint32_t);
 
-/*!\fn double signal_energy_fp(double s_re[2][30720], double s_im[2][30720],uint32_t, uint32_t,uint32_t);
+/*!\fn double signal_energy_fp(double *s_re[2], double *s_im[2],uint32_t, uint32_t,uint32_t);
 \brief Computes the signal energy per subcarrier
 */
-double signal_energy_fp(double s_re[2][30720], double s_im[2][30720], uint32_t nb_antennas, uint32_t length,uint32_t offset);
+double signal_energy_fp(double *s_re[2], double *s_im[2], uint32_t nb_antennas, uint32_t length,uint32_t offset);
 
 /*!\fn double signal_energy_fp2(struct complex *, uint32_t);
 \brief Computes the signal energy per subcarrier
diff --git a/openair1/PHY/TOOLS/signal_energy.c b/openair1/PHY/TOOLS/signal_energy.c
index afd1c727f38a81b807a5f90e18d8e2a21eaa1d9d..4c5a4976f61802b4c748da6b20be3fe90e57f79d 100755
--- a/openair1/PHY/TOOLS/signal_energy.c
+++ b/openair1/PHY/TOOLS/signal_energy.c
@@ -255,7 +255,7 @@ int32_t signal_energy_nodc(int32_t *input,uint32_t length)
 }
 
 #endif
-double signal_energy_fp(double s_re[2][30720],double s_im[2][30720],uint32_t nb_antennas,uint32_t length,uint32_t offset)
+double signal_energy_fp(double *s_re[2],double *s_im[2],uint32_t nb_antennas,uint32_t length,uint32_t offset)
 {
 
   int32_t aa,i;
diff --git a/openair1/SIMULATION/RF/adc.c b/openair1/SIMULATION/RF/adc.c
index 3f89a3cfe57b53abff7651ae09c1d6f390b4f130..fb94b506d91c51123facb32f5c6daab23881869b 100755
--- a/openair1/SIMULATION/RF/adc.c
+++ b/openair1/SIMULATION/RF/adc.c
@@ -26,8 +26,8 @@
   Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
 
  *******************************************************************************/
-void adc(double r_re[2][30720],
-         double r_im[2][30720],
+void adc(double *r_re[2],
+         double *r_im[2],
          unsigned int input_offset,
          unsigned int output_offset,
          unsigned int **output,
diff --git a/openair1/SIMULATION/RF/dac.c b/openair1/SIMULATION/RF/dac.c
index 8636353595dfdff42abbe4a4533a0002f1f809f2..fe01ba3132eca6c72d207f74760f97e46cad492b 100755
--- a/openair1/SIMULATION/RF/dac.c
+++ b/openair1/SIMULATION/RF/dac.c
@@ -31,8 +31,8 @@
 #include <stdio.h>
 #include "PHY/TOOLS/defs.h"
 
-void dac(double s_re[2][30720],
-         double s_im[2][30720],
+void dac(double *s_re[2],
+         double *s_im[2],
          uint32_t **input,
          uint32_t input_offset,
          uint32_t nb_tx_antennas,
@@ -81,8 +81,8 @@ void dac(double s_re[2][30720],
   }
 }
 
-double dac_fixed_gain(double s_re[2][30720],
-                      double s_im[2][30720],
+double dac_fixed_gain(double *s_re[2],
+                      double *s_im[2],
                       uint32_t **input,
                       uint32_t input_offset,
                       uint32_t nb_tx_antennas,
diff --git a/openair1/SIMULATION/RF/defs.h b/openair1/SIMULATION/RF/defs.h
index 4bd9528daeb12ffd247bb5fd44b833258feb4ea4..75b84f36091308ff61db9e8fdf4874a92eaf8e29 100644
--- a/openair1/SIMULATION/RF/defs.h
+++ b/openair1/SIMULATION/RF/defs.h
@@ -64,16 +64,16 @@ void rf_rx(double **r_re,
            double IQ_imb_dB,
            double IQ_phase);
 
-void rf_rx_simple(double r_re[2][30720],
-                  double r_im[2][30720],
+void rf_rx_simple(double *r_re[2],
+                  double *r_im[2],
                   unsigned int nb_rx_antennas,
                   unsigned int length,
                   double s_time,
                   double rx_gain_dB);
 
 
-void adc(double r_re[2][30720],
-         double r_im[2][30720],
+void adc(double *r_re[2],
+         double *r_im[2],
          unsigned int input_offset,
          unsigned int output_offset,
          int **output,
@@ -81,8 +81,8 @@ void adc(double r_re[2][30720],
          unsigned int length,
          unsigned char B);
 
-void dac(double s_re[2][30720],
-         double s_im[2][30720],
+void dac(double *s_re[2],
+         double *s_im[2],
          int **input,
          unsigned int input_offset,
          unsigned int nb_tx_antennas,
@@ -92,8 +92,8 @@ void dac(double s_re[2][30720],
          unsigned int meas_length,
          unsigned int meas_offset);
 
-double dac_fixed_gain(double s_re[2][30720],
-                      double s_im[2][30720],
+double dac_fixed_gain(double *s_re[2],
+                      double *s_im[2],
                       int **input,
                       unsigned int input_offset,
                       unsigned int nb_tx_antennas,
diff --git a/openair1/SIMULATION/RF/rf.c b/openair1/SIMULATION/RF/rf.c
index 2bcb64727dd68e9d9a69fe1d242a99104f12f536..135576b87189961e886c7ea1025aa66e41808787 100644
--- a/openair1/SIMULATION/RF/rf.c
+++ b/openair1/SIMULATION/RF/rf.c
@@ -206,8 +206,8 @@ void rf_rx(double **r_re,
   }
 }
 
-void rf_rx_simple(double r_re[2][30720],
-                  double r_im[2][30720],
+void rf_rx_simple(double *r_re[2],
+                  double *r_im[2],
                   unsigned int nb_rx_antennas,
                   unsigned int length,
                   double s_time,
diff --git a/openair1/SIMULATION/TOOLS/defs.h b/openair1/SIMULATION/TOOLS/defs.h
index 3ebc8f523f9ac3ddab5be74d506af86e47250135..3113fb3df525b669ef06408c0f34bb0ac76ab116 100644
--- a/openair1/SIMULATION/TOOLS/defs.h
+++ b/openair1/SIMULATION/TOOLS/defs.h
@@ -219,10 +219,10 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx,
 int random_channel(channel_desc_t *desc, uint8_t abstraction_flag);
 
 /**\fn void multipath_channel(channel_desc_t *desc,
-           double tx_sig_re[2][30720*2],
-           double tx_sig_im[2][30720*2],
-           double rx_sig_re[2][30720*2],
-           double rx_sig_im[2][30720*2],
+           double tx_sig_re[2],
+           double tx_sig_im[2],
+           double rx_sig_re[2],
+           double rx_sig_im[2],
            uint32_t length,
            uint8_t keep_channel)
 
@@ -237,10 +237,10 @@ int random_channel(channel_desc_t *desc, uint8_t abstraction_flag);
 */
 
 void multipath_channel(channel_desc_t *desc,
-                       double tx_sig_re[2][30720*2],
-                       double tx_sig_im[2][30720*2],
-                       double rx_sig_re[2][30720*2],
-                       double rx_sig_im[2][30720*2],
+                       double *tx_sig_re[2],
+                       double *tx_sig_im[2],
+                       double *rx_sig_re[2],
+                       double *rx_sig_im[2],
                        uint32_t length,
                        uint8_t keep_channel);
 /*
diff --git a/openair1/SIMULATION/TOOLS/multipath_channel.c b/openair1/SIMULATION/TOOLS/multipath_channel.c
index 9019f4224f59f913d8fe10b59e428c689a9f165f..549075c7dbce214cb7f1c87181d237effd665869 100644
--- a/openair1/SIMULATION/TOOLS/multipath_channel.c
+++ b/openair1/SIMULATION/TOOLS/multipath_channel.c
@@ -150,10 +150,10 @@ void multipath_channel(channel_desc_t *desc,
 
 #else
 void multipath_channel(channel_desc_t *desc,
-                       double tx_sig_re[2][30720*2],
-                       double tx_sig_im[2][30720*2],
-                       double rx_sig_re[2][30720*2],
-                       double rx_sig_im[2][30720*2],
+                       double *tx_sig_re[2],
+                       double *tx_sig_im[2],
+                       double *rx_sig_re[2],
+                       double *rx_sig_im[2],
                        uint32_t length,
                        uint8_t keep_channel)
 {
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf
index 22654ebdbb63f530d494b2dbf11e33eafd0b2cbc..ef7c1cc19c35ba05b9d21f90c2ca20751b54a0b0 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf
@@ -23,6 +23,9 @@ eNBs =
 
     component_carriers = (
       {
+        node_function                                         = "eNodeB_3GPP";
+        node_timing                                           = "synch_to_ext_device";
+        node_synch_ref                                        = 0;
         frame_type					      = "FDD";
         tdd_config 					      = 3;
         tdd_config_s            			      = 0;
diff --git a/targets/SIMU/USER/channel_sim.c b/targets/SIMU/USER/channel_sim.c
index e01f3d9b2df6ed4c32ecefa1ce1c8f8745f35aae..c4df766532048c99aec8d075cb63711c6a572d89 100644
--- a/targets/SIMU/USER/channel_sim.c
+++ b/targets/SIMU/USER/channel_sim.c
@@ -108,12 +108,28 @@ void do_DL_sig(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_N
   uint8_t nb_antennas_rx = eNB2UE[0][0][CC_id]->nb_rx; // number of rx antennas at UE
   uint8_t nb_antennas_tx = eNB2UE[0][0][CC_id]->nb_tx; // number of tx antennas at eNB
 
-  double s_re[2][30720];//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
-  double s_im[2][30720];//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
-  double r_re0[2][30720];//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
-  double r_im0[2][30720];//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
-  
-
+  double s_re0[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double s_re1[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *s_re[2];
+  double s_im0[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double s_im1[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *s_im[2];
+  double r_re00[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double r_re01[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *r_re0[2];
+  double r_im00[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double r_im01[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *r_im0[2];
+
+  s_re[0] = s_re0;
+  s_im[0] = s_im0;
+  s_re[1] = s_re1;
+  s_im[1] = s_im1;
+
+  r_re0[0] = r_re00;
+  r_im0[0] = r_im00;
+  r_re0[1] = r_re01;
+  r_im0[1] = r_im01;
 
   if (subframe==0)
     hold_channel = 0;
@@ -318,17 +334,21 @@ void do_DL_sig(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_N
       if (eNB_output_mask[UE_id] == (1<<NB_eNB_INST)-1) {
 	eNB_output_mask[UE_id]=0;
       
-      
+
+	double *r_re_p[2] = {r_re_DL[eNB_id][0],r_re_DL[eNB_id][1]};
+	double *r_im_p[2] = {r_im_DL[eNB_id][0],r_im_DL[eNB_id][1]};
+
 #ifdef DEBUG_SIM
-	rx_pwr = signal_energy_fp((double**)r_re_DL[UE_id],(double**)r_im_DL[UE_id],nb_antennas_rx,frame_parms->ofdm_symbol_size,sf_offset)/(12.0*frame_parms->N_RB_DL);
+	rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->ofdm_symbol_size,sf_offset)/(12.0*frame_parms->N_RB_DL);
 	LOG_D(OCM,"[SIM][DL] UE %d : ADC in %f dBm for subframe %d\n",UE_id,10*log10(rx_pwr),subframe);
 #endif
 	
 	rxdata = PHY_vars_UE_g[UE_id][CC_id]->common_vars.rxdata;
 	sf_offset = subframe*frame_parms->samples_per_tti;
-	
-	adc(r_re_DL[UE_id],
-	    r_im_DL[UE_id],
+
+
+	adc(r_re_p,
+	    r_im_p,
 	    0,
 	    sf_offset,
 	    rxdata,
@@ -384,10 +404,28 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
   int ulfrrb2 ;
   uint8_t harq_pid;
 #endif
-  double s_re[2][30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
-  double s_im[2][30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
-  double r_re0[2][30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
-  double r_im0[2][30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double s_re0[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double s_re1[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *s_re[2];
+  double s_im0[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double s_im1[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *s_im[2];
+  double r_re00[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double r_re01[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *r_re0[2];
+  double r_im00[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double r_im01[30720];//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
+  double *r_im0[2];
+
+  s_re[0] = s_re0;
+  s_im[0] = s_im0;
+  s_re[1] = s_re1;
+  s_im[1] = s_im1;
+
+  r_re0[0] = r_re00;
+  r_im0[0] = r_im00;
+  r_re0[1] = r_re01;
+  r_im0[1] = r_im01;
 
   if (abstraction_flag!=0)  {
 #ifdef PHY_ABSTRACTION_UL
@@ -447,7 +485,6 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
 	      PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe],
 	      subframe,sf_offset);	
       } else {
-	
 	tx_pwr = dac_fixed_gain((double**)s_re,
 				(double**)s_im,
 				txdata,
@@ -466,8 +503,8 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
 	      PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe],
 	      subframe,sf_offset);
        
-	
-	multipath_channel(UE2eNB[UE_id][eNB_id][CC_id],(double**)s_re,(double**)s_im,(double**)r_re0,(double**)r_im0,
+		
+	multipath_channel(UE2eNB[UE_id][eNB_id][CC_id],s_re,s_im,r_re0,r_im0,
 			  frame_parms->samples_per_tti,hold_channel);
 	
 
@@ -498,23 +535,27 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
       }
     } //UE_id
     
-    rf_rx_simple(r_re_UL[eNB_id],
-		 r_im_UL[eNB_id],
+    double *r_re_p[2] = {r_re_UL[eNB_id][0],r_re_UL[eNB_id][1]};
+    double *r_im_p[2] = {r_im_UL[eNB_id][0],r_im_UL[eNB_id][1]};
+
+    rf_rx_simple(r_re_p,
+		 r_im_p,
 		 nb_antennas_rx,
 		 frame_parms->samples_per_tti,
 		 1e3/UE2eNB[0][eNB_id][CC_id]->sampling_rate,  // sampling time (ns)
 		 (double)PHY_vars_eNB_g[eNB_id][CC_id]->rx_total_gain_dB - 66.227);   // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later)
     
 #ifdef DEBUG_SIM
-    rx_pwr = signal_energy_fp(r_re_UL[eNB_id],r_im_UL[eNB_id],nb_antennas_rx,frame_parms->samples_per_tti,0)*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL);
+    rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->samples_per_tti,0)*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL);
     LOG_D(OCM,"[SIM][UL] rx_pwr (ADC in) %f dB for subframe %d\n",10*log10(rx_pwr),subframe);
 #endif
     
     rxdata = PHY_vars_eNB_g[eNB_id][CC_id]->common_vars.rxdata[0];
     sf_offset = subframe*frame_parms->samples_per_tti;
+
     
-    adc(r_re_UL[eNB_id],
-	r_im_UL[eNB_id],
+    adc(r_re_p,
+	r_im_p,
 	0,
 	sf_offset,
 	rxdata,
diff --git a/targets/SIMU/USER/oaisim_functions.c b/targets/SIMU/USER/oaisim_functions.c
index 674ca1312d8eb8437a84d789426907ba3cebdc21..97820d2886b849391043660ec7753f9ee6c2f1fe 100644
--- a/targets/SIMU/USER/oaisim_functions.c
+++ b/targets/SIMU/USER/oaisim_functions.c
@@ -1120,7 +1120,6 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
 	      UE_id,
 	      CC_id);
 
-    printf("Signaling main thread: UE subframe mask %x\n",subframe_UE_mask);
 
   }