diff --git a/EPW/src/input.f90 b/EPW/src/input.f90
index cc9b838ed..3152aefa3 100644
--- a/EPW/src/input.f90
+++ b/EPW/src/input.f90
@@ -415,6 +415,8 @@
   !! Number of low-lying bands exclude in ph.x Allen-Heine-Cardona calculation
   INTEGER :: kmap(npk)
   !! map of k+q grid into k grid
+  INTEGER :: mode_res_tr(50)
+  !! mode resolution for transport
   INTEGER, ALLOCATABLE :: isk_all(:)
   !! Spin index of each k-point (used in LSDA calculations only)
   INTEGER, ALLOCATABLE :: isk_loc(:)
diff --git a/EPW/src/readin.f90 b/EPW/src/readin.f90
index e1a2e4cb8..b6ba94d92 100644
--- a/EPW/src/readin.f90
+++ b/EPW/src/readin.f90
@@ -93,7 +93,7 @@
                             step_k1_explrn, step_k2_explrn, step_k3_explrn,            &
                             only_pos_modes_explrn,                                     &   
                             lopt_w2b, epw_memdist, lfast_kmesh, acoustic_plrn,         &
-                            cal_acous_plrn, dos_tetra, fd, a2f_iso
+                            cal_acous_plrn, dos_tetra, fd, a2f_iso, mode_res_tr        
   USE input,         ONLY : xk_all, xk_loc, xk_cryst, isk_all, isk_loc, et_all, et_loc
   ! -------------------------------------------------------------------------------------
   !Added for calculating time-dependent Boltzmann transport Equation
@@ -216,7 +216,7 @@
        plot_explrn_e, plot_explrn_h, only_c_explrn, only_v_explrn,             &
        step_k1_explrn, step_k2_explrn, step_k3_explrn, only_pos_modes_explrn,  &
        calc_nelec_wann, lopt_w2b, epw_memdist, lfast_kmesh, dos_tetra, fd,     &
-       a2f_iso, max_seconds,                                                   &
+       a2f_iso, max_seconds, mode_res_tr,                                      &
        !Added for calculating time-dependent Boltzmann transport Equation
        do_tdbe, dt_tdbe, nt_tdbe, twrite_tdbe, temp_el_tdbe, temp_ph_tdbe,     &
        init_type_tdbe, init_sigma_tdbe, ef_c_tdbe, ef_v_tdbe,                  &
@@ -833,6 +833,7 @@
   phwmin_tdbe = 0.d0
   dph_tdbe = 50
   lscreen_tdbe = .FALSE.
+  mode_res_tr(:) = -1
   !
   ! Reading the namelist inputepw and check
   IF (meta_ionode) THEN
diff --git a/EPW/src/use_wannier.f90 b/EPW/src/use_wannier.f90
index 292baf8d5..e6338a5d0 100644
--- a/EPW/src/use_wannier.f90
+++ b/EPW/src/use_wannier.f90
@@ -36,7 +36,8 @@
                                eliashberg, meshnum, time_rev_U_plrn, lwfpt, ii_g,  &
                                start_mesh, ii_lscreen, isk_dummy, lopt_w2b,        &
                                explrn, gb_scattering, lfast_kmesh, epw_memdist,    &
-                               plot_explrn_e, plot_explrn_h, dos_tetra, a2f_iso
+                               plot_explrn_e, plot_explrn_h, dos_tetra, a2f_iso,   &
+                               mode_res_tr
   USE control_flags,    ONLY : iverbosity
   USE noncollin_module, ONLY : noncolin
   USE ep_constants,     ONLY : ryd2ev, ryd2mev, one, two, zero, czero, cone,       &
@@ -224,6 +225,8 @@
   !! Type of IOlength
   INTEGER :: size_image
   !! Size of image 
+  INTEGER :: nmode
+  !! Counter over modes
   INTEGER, PARAMETER :: nrwsx = 200
   !! Maximum number of real-space Wigner-Seitz
   INTEGER :: size_image_arr(nimage)
@@ -1254,6 +1257,13 @@
                 CALL ZGEMM('n', 'n', nbndfst * nbndfst, nmodes, nmodes, cone, tmp(:,:, :), &
                           nbndfst * nbndfst, uf, nmodes, czero, epf17(:, :, :,ik), nbndfst * nbndfst)
                 !
+                ! S. Tiwari: Choosing modes which are non zero
+                DO nmode = 1,nmodes
+                  IF (ANY(mode_res_tr == nmode)) THEN
+                     epf17(:, :, nmode, :) = czero
+                  ENDIF
+                ENDDO
+                !
               ELSE
                 ! Velocity of all k-points is needed for gb_scattering
                 IF (scattering .AND. (iqq == 1 .OR. first_cycle) .AND. gb_scattering) THEN
diff --git a/EPW/src/utilities/bcast_input.f90 b/EPW/src/utilities/bcast_input.f90
index 133b5b57d..9c84f125c 100644
--- a/EPW/src/utilities/bcast_input.f90
+++ b/EPW/src/utilities/bcast_input.f90
@@ -89,7 +89,7 @@
                             plot_explrn_h, only_c_explrn, only_v_explrn,      &
                             step_k1_explrn, step_k2_explrn, step_k3_explrn,   &
                             only_pos_modes_explrn, dtau_max_plrn,             &
-                            lfast_kmesh, epw_memdist, a2f_iso,                &
+                            lfast_kmesh, epw_memdist, a2f_iso, mode_res_tr,   &
                             acoustic_plrn, cal_acous_plrn, dos_tetra, fd                     
   ! -------------------------------------------------------------------------------------
   !Added for calculating time-dependent Boltzmann transport Equation
@@ -416,6 +416,7 @@
   CALL mp_bcast(elecselfen_type  , meta_ionode_id, world_comm)
   CALL mp_bcast(filirobj         , meta_ionode_id, world_comm)
   CALL mp_bcast(filnscf_coul     , meta_ionode_id, world_comm)
+  CALL mp_bcast(mode_res_tr      , meta_ionode_id, world_comm)
   ! ZD: ex-plrn
   ! TODO: follow the same style as above by data type
   CALL mp_bcast (exciton                 , meta_ionode_id, world_comm)
