[cig-commits] r22318 - in seismo/3D/SPECFEM3D_GLOBE/branches/undo_att: . src/specfem3D

xie.zhinan at geodynamics.org xie.zhinan at geodynamics.org
Sat Jun 15 23:27:22 PDT 2013


Author: xie.zhinan
Date: 2013-06-15 23:27:22 -0700 (Sat, 15 Jun 2013)
New Revision: 22318

Modified:
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_classical.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_undo_att.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_classical.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part3_kernel_computation.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/check_simulation_stability.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_element.F90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_Dev.F90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_noDev.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_Dev.F90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_noDev.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_kernels.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_seismograms.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/read_forward_arrays.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/save_forward_arrays.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/specfem3D.F90
   seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/write_movie_volume.f90
Log:
remove useless comments


Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_classical.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_classical.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_classical.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -31,34 +31,6 @@
       accel_inner_core(:,i) = 0._CUSTOM_REAL
     enddo
 
-!   ! backward field
-!   if (SIMULATION_TYPE == 3) then
-!     ! mantle
-!     do i=1,NGLOB_CRUST_MANTLE
-!       b_displ_crust_mantle(:,i) = b_displ_crust_mantle(:,i) &
-!         + b_deltat*b_veloc_crust_mantle(:,i) + b_deltatsqover2*b_accel_crust_mantle(:,i)
-!       b_veloc_crust_mantle(:,i) = b_veloc_crust_mantle(:,i) &
-!         + b_deltatover2*b_accel_crust_mantle(:,i)
-!       b_accel_crust_mantle(:,i) = 0._CUSTOM_REAL
-!     enddo
-!     ! outer core
-!     do i=1,NGLOB_OUTER_CORE
-!       b_displ_outer_core(i) = b_displ_outer_core(i) &
-!         + b_deltat*b_veloc_outer_core(i) + b_deltatsqover2*b_accel_outer_core(i)
-!       b_veloc_outer_core(i) = b_veloc_outer_core(i) &
-!         + b_deltatover2*b_accel_outer_core(i)
-!       b_accel_outer_core(i) = 0._CUSTOM_REAL
-!     enddo
-!     ! inner core
-!     do i=1,NGLOB_INNER_CORE
-!       b_displ_inner_core(:,i) = b_displ_inner_core(:,i) &
-!         + b_deltat*b_veloc_inner_core(:,i) + b_deltatsqover2*b_accel_inner_core(:,i)
-!       b_veloc_inner_core(:,i) = b_veloc_inner_core(:,i) &
-!         + b_deltatover2*b_accel_inner_core(:,i)
-!       b_accel_inner_core(:,i) = 0._CUSTOM_REAL
-!     enddo
-!   endif ! SIMULATION_TYPE == 3
-
     ! integral of strain for adjoint movie volume
     if(MOVIE_VOLUME .and. (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3) ) then
 ! do *NOT* use array syntax for that loop, otherwise you will get a compiler error when MOVIE_VOLUME is off
@@ -74,12 +46,6 @@
                                               + deltat*epsilondev_loc_crust_mantle(:,:,:,:)
         Ieps_trace_over_3_crust_mantle(:,:,:,ispec) = Ieps_trace_over_3_crust_mantle(:,:,:,ispec) &
                                               + deltat*eps_trace_over_3_loc_crust_mantle(:,:,:)
-
-!ZN
-!ZN        Iepsilondev_crust_mantle(:,:,:,:,ispec) = Iepsilondev_crust_mantle(:,:,:,:,ispec)  &
-!ZN                                              + deltat*epsilondev_crust_mantle(:,:,:,:,ispec)
-!ZN        Ieps_trace_over_3_crust_mantle(:,:,:,ispec) = Ieps_trace_over_3_crust_mantle(:,:,:,ispec) &
-!ZN                                              + deltat*eps_trace_over_3_crust_mantle(:,:,:,ispec)
       enddo
     endif
 
@@ -88,16 +54,8 @@
     ! and output timestamp file to check that simulation is running fine
     if(mod(it,NTSTEP_BETWEEN_OUTPUT_INFO) == 0 .or. it == it_begin+4 .or. it == it_end) then
       call check_simulation_stability(it,displ_crust_mantle,displ_inner_core,displ_outer_core, &
-!ZN                          eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!!!!! DK DK UNDO_ATT                          SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
-                          1,OUTPUT_FILES,time_start,DT,t0,NSTEP, &  !!!!! DK DK UNDO_ATT
+                          1,OUTPUT_FILES,time_start,DT,t0,NSTEP, & 
                           it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
-!     if (SIMULATION_TYPE == 3) then
-!       call check_simulation_stability(it,b_displ_crust_mantle,b_displ_inner_core,b_displ_outer_core, &
-!                         eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!                         SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
-!                         it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
-!     endif
     endif
 
     ! ****************************************************
@@ -160,67 +118,6 @@
            ibool_outer_core,MOVIE_VOLUME)
     endif
 
-!   if (SIMULATION_TYPE == 3) then
-!     ! note on backward/reconstructed wavefields:
-!     !       time for b_displ( it=1 ) corresponds to (NSTEP - 1)*DT - t0  (after Newmark scheme...)
-!     !       as we start with saved wavefields b_displ( 1 ) <-> displ( NSTEP ) which correspond
-!     !       to a time (NSTEP - (it-1) - 1)*DT - t0
-!     !       for reconstructing the rotational contributions
-!     if(CUSTOM_REAL == SIZE_REAL) then
-!       time = sngl((dble(NSTEP-it)*DT-t0)*scale_t_inv)
-!     else
-!       time = (dble(NSTEP-it)*DT-t0)*scale_t_inv
-!     endif
-
-!     b_iphase = 0 ! do not start any non blocking communications at this stage
-!     b_icall = 1  ! compute all the outer elements first in the case of non blocking MPI
-
-!     if( USE_DEVILLE_PRODUCTS_VAL ) then
-!       ! uses Deville et al. (2002) routine
-!       call compute_forces_outer_core_Dev(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!     else
-!       call compute_forces_outer_core(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!     endif
-!   endif
-
     ! Stacey absorbing boundaries
     if(NCHUNKS_VAL /= 6 .and. ABSORBING_CONDITIONS) then
       call compute_stacey_outer_core_forward(ichunk,SAVE_FORWARD, &
@@ -247,52 +144,6 @@
                               absorb_zmin_outer_core, &
                               absorb_xmin_outer_core,absorb_xmax_outer_core, &
                               absorb_ymin_outer_core,absorb_ymax_outer_core)
-!     if (SIMULATION_TYPE == 3) then
-!       call compute_stacey_outer_core_backward(ichunk, &
-!                             NSTEP,it,ibool_outer_core, &
-!                             b_accel_outer_core, &
-!                             ibelm_bottom_outer_core, &
-!                             ibelm_xmin_outer_core,ibelm_xmax_outer_core, &
-!                             ibelm_ymin_outer_core,ibelm_ymax_outer_core, &
-!                             nimin_outer_core,nimax_outer_core, &
-!                             njmin_outer_core,njmax_outer_core, &
-!                             nkmin_xi_outer_core,nkmin_eta_outer_core, &
-!                             NSPEC2D_BOTTOM, &
-!                             nspec2D_xmin_outer_core,nspec2D_xmax_outer_core, &
-!                             nspec2D_ymin_outer_core,nspec2D_ymax_outer_core, &
-!                             reclen_zmin, &
-!                             reclen_xmin_outer_core,reclen_xmax_outer_core, &
-!                             reclen_ymin_outer_core,reclen_ymax_outer_core, &
-!                             nabs_zmin_oc, &
-!                             nabs_xmin_oc,nabs_xmax_oc,nabs_ymin_oc,nabs_ymax_oc, &
-!                             absorb_zmin_outer_core, &
-!                             absorb_xmin_outer_core,absorb_xmax_outer_core, &
-!                             absorb_ymin_outer_core,absorb_ymax_outer_core)
-!!      call compute_stacey_outer_core(ichunk,SIMULATION_TYPE,SAVE_FORWARD, &
-!!                            NSTEP,it,ibool_outer_core, &
-!!                            veloc_outer_core,accel_outer_core,b_accel_outer_core, &
-!!                            vp_outer_core,wgllwgll_xz,wgllwgll_yz,wgllwgll_xy, &
-!!                            jacobian2D_bottom_outer_core, &
-!!                            jacobian2D_xmin_outer_core,jacobian2D_xmax_outer_core, &
-!!                            jacobian2D_ymin_outer_core,jacobian2D_ymax_outer_core, &
-!!                            ibelm_bottom_outer_core, &
-!!                            ibelm_xmin_outer_core,ibelm_xmax_outer_core, &
-!!                            ibelm_ymin_outer_core,ibelm_ymax_outer_core, &
-!!                            nimin_outer_core,nimax_outer_core, &
-!!                            njmin_outer_core,njmax_outer_core, &
-!!                            nkmin_xi_outer_core,nkmin_eta_outer_core, &
-!!                            NSPEC2D_BOTTOM, &
-!!                            nspec2D_xmin_outer_core,nspec2D_xmax_outer_core, &
-!!                            nspec2D_ymin_outer_core,nspec2D_ymax_outer_core, &
-!!                            reclen_zmin, &
-!!                            reclen_xmin_outer_core,reclen_xmax_outer_core, &
-!!                            reclen_ymin_outer_core,reclen_ymax_outer_core, &
-!!                            nabs_zmin_oc, &
-!!                            nabs_xmin_oc,nabs_xmax_oc,nabs_ymin_oc,nabs_ymax_oc, &
-!!                            absorb_zmin_outer_core, &
-!!                            absorb_xmin_outer_core,absorb_xmax_outer_core, &
-!!                            absorb_ymin_outer_core,absorb_ymax_outer_core)
-!     endif
     endif ! Stacey conditions
 
 
@@ -312,14 +163,6 @@
                             normal_top_outer_core,jacobian2D_top_outer_core, &
                             wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
                             NSPEC2D_TOP(IREGION_OUTER_CORE))
-!     if (SIMULATION_TYPE == 3) then
-!       call compute_coupling_fluid_CMB(b_displ_crust_mantle, &
-!                           ibool_crust_mantle,ibelm_bottom_crust_mantle,  &
-!                           b_accel_outer_core, &
-!                           normal_top_outer_core,jacobian2D_top_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
-!                           NSPEC2D_TOP(IREGION_OUTER_CORE))
-!     endif
     endif
 
     !---
@@ -332,14 +175,6 @@
                             normal_bottom_outer_core,jacobian2D_bottom_outer_core, &
                             wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
                             NSPEC2D_BOTTOM(IREGION_OUTER_CORE))
-!     if (SIMULATION_TYPE == 3) then
-!       call compute_coupling_fluid_ICB(b_displ_inner_core, &
-!                           ibool_inner_core,ibelm_top_inner_core,  &
-!                           b_accel_outer_core, &
-!                           normal_bottom_outer_core,jacobian2D_bottom_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
-!                           NSPEC2D_BOTTOM(IREGION_OUTER_CORE))
-!     endif
     endif
 
     ! assemble all the contributions between slices using MPI
@@ -430,98 +265,6 @@
 
 ! ------------------- new non blocking implementation -------------------
 
-!   if (SIMULATION_TYPE == 3) then
-
-!   ! outer core
-!       b_iphase = 1 ! start the non blocking communications
-!       call assemble_MPI_scalar(myrank,b_accel_outer_core,NGLOB_OUTER_CORE, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!           npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!           iboolfaces_outer_core,iboolcorner_outer_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,b_iphase)
-
-!       b_icall = 2 ! now compute all the inner elements in the case of non blocking MPI
-
-!       if( USE_DEVILLE_PRODUCTS_VAL ) then
-!         ! uses Deville et al. (2002) routine
-!         call compute_forces_outer_core_Dev(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!       else
-!         ! div_displ_outer_core is initialized to zero in the following subroutine.
-!         call compute_forces_outer_core(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!       endif
-
-!       do while (b_iphase <= 7) ! make sure the last communications are finished and processed
-!         call assemble_MPI_scalar(myrank,b_accel_outer_core,NGLOB_OUTER_CORE, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!           npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!           iboolfaces_outer_core,iboolcorner_outer_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,b_iphase)
-!       enddo
-
-! ------------------- new non blocking implementation -------------------
-
-!     ! Newmark time scheme - corrector for fluid parts
-!     do i=1,NGLOB_OUTER_CORE
-!       b_accel_outer_core(i) = b_accel_outer_core(i)*rmass_outer_core(i)
-!       b_veloc_outer_core(i) = b_veloc_outer_core(i) + b_deltatover2*b_accel_outer_core(i)
-!     enddo
-
-!   endif
-
     ! ****************************************************
     !   big loop over all spectral elements in the solid
     ! ****************************************************
@@ -570,9 +313,7 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & !ZN
+          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & 
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
           size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
@@ -612,106 +353,12 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & !ZN
+          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & 
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
           size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
     endif
 
-!   if (SIMULATION_TYPE == 3 ) then
-
-!     b_iphase = 0 ! do not start any non blocking communications at this stage
-!     b_iphase_CC = 0 ! do not start any non blocking communications at this stage
-!     b_icall = 1  ! compute all the outer elements first in the case of non blocking MPI
-
-!   ! for anisotropy and gravity, x y and z contain r theta and phi
-!     if( USE_DEVILLE_PRODUCTS_VAL ) then
-!       call compute_forces_crust_mantle_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT, &
-!         hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!     else
-!       call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz, &
-!         hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!     endif
-!   endif
-
     ! Deville routine
     if( USE_DEVILLE_PRODUCTS_VAL ) then
       call compute_forces_inner_core_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -741,9 +388,7 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
-          R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,& !ZN
+          R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,& 
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
           size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
@@ -776,8 +421,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
           R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core, &
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
@@ -785,78 +428,6 @@
           size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
     endif
 
-!   if (SIMULATION_TYPE == 3) then
-!     if( USE_DEVILLE_PRODUCTS_VAL ) then
-!       call compute_forces_inner_core_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!     else
-!       call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!     endif
-!   endif
-
     ! Stacey
     if(NCHUNKS_VAL /= 6 .and. ABSORBING_CONDITIONS) then
 
@@ -882,45 +453,6 @@
                               absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
                               absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
 
-!     if(SIMULATION_TYPE == 3) then
-!       call compute_stacey_crust_mantle_backward(ichunk, &
-!                             NSTEP,it,ibool_crust_mantle, &
-!                             b_accel_crust_mantle, &
-!                             ibelm_xmin_crust_mantle,ibelm_xmax_crust_mantle, &
-!                             ibelm_ymin_crust_mantle,ibelm_ymax_crust_mantle, &
-!                             nimin_crust_mantle,nimax_crust_mantle, &
-!                             njmin_crust_mantle,njmax_crust_mantle, &
-!                             nkmin_xi_crust_mantle,nkmin_eta_crust_mantle, &
-!                             nspec2D_xmin_crust_mantle,nspec2D_xmax_crust_mantle, &
-!                             nspec2D_ymin_crust_mantle,nspec2D_ymax_crust_mantle, &
-!                             reclen_xmin_crust_mantle,reclen_xmax_crust_mantle, &
-!                             reclen_ymin_crust_mantle,reclen_ymax_crust_mantle, &
-!                             nabs_xmin_cm,nabs_xmax_cm,nabs_ymin_cm,nabs_ymax_cm, &
-!                             absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
-!                             absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
-!!      call compute_stacey_crust_mantle(ichunk, &
-!!                            NSTEP,it,SAVE_FORWARD,ibool_crust_mantle, &
-!!                            veloc_crust_mantle,b_accel_crust_mantle, &
-!!                            jacobian2D_xmin_crust_mantle,jacobian2D_xmax_crust_mantle, &
-!!                            jacobian2D_ymin_crust_mantle,jacobian2D_ymax_crust_mantle, &
-!!                            wgllwgll_xz,wgllwgll_yz, &
-!!                            normal_xmin_crust_mantle,normal_xmax_crust_mantle, &
-!!                            normal_ymin_crust_mantle,normal_ymax_crust_mantle, &
-!!                            rho_vp_crust_mantle,rho_vs_crust_mantle, &
-!!                            ibelm_xmin_crust_mantle,ibelm_xmax_crust_mantle, &
-!!                            ibelm_ymin_crust_mantle,ibelm_ymax_crust_mantle, &
-!!                            nimin_crust_mantle,nimax_crust_mantle, &
-!!                            njmin_crust_mantle,njmax_crust_mantle, &
-!!                            nkmin_xi_crust_mantle,nkmin_eta_crust_mantle, &
-!!                            nspec2D_xmin_crust_mantle,nspec2D_xmax_crust_mantle, &
-!!                            nspec2D_ymin_crust_mantle,nspec2D_ymax_crust_mantle, &
-!!                            reclen_xmin_crust_mantle,reclen_xmax_crust_mantle, &
-!!                            reclen_ymin_crust_mantle,reclen_ymax_crust_mantle, &
-!!                            nabs_xmin_cm,nabs_xmax_cm,nabs_ymin_cm,nabs_ymax_cm, &
-!!                            absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
-!!                            absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
-!     endif
-
     endif ! Stacey conditions
 
     ! add the sources
@@ -977,16 +509,6 @@
         ! note the ensemble forward sources are generally distributed on the surface of the earth
         ! that's to say, the ensemble forward source is kind of a surface force density, not a body force density
         ! therefore, we must add it here, before applying the inverse of mass matrix
-!   else if ( NOISE_TOMOGRAPHY == 3 ) then
-!       ! third step of noise tomography, i.e., read the surface movie saved at every timestep
-!       ! use the movie to reconstruct the ensemble forward wavefield
-!       ! the ensemble adjoint wavefield is done as usual
-!       ! note instead of "NSTEP-it+1", now we us "it", since reconstruction is a reversal of reversal
-!       call noise_read_add_surface_movie(nmovie_points,b_accel_crust_mantle, &
-!                             normal_x_noise,normal_y_noise,normal_z_noise,mask_noise, &
-!                             ibelm_top_crust_mantle,ibool_crust_mantle, &
-!                             NSPEC2D_TOP(IREGION_CRUST_MANTLE),noise_surface_movie, &
-!                             it,jacobian2D_top_crust_mantle,wgllwgll_xy)
     endif
 
     ! ****************************************************
@@ -1007,16 +529,6 @@
                             wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
                             RHO_TOP_OC,minus_g_cmb, &
                             NSPEC2D_BOTTOM(IREGION_CRUST_MANTLE))
-!     if(SIMULATION_TYPE == 3) then
-!       call compute_coupling_CMB_fluid(b_displ_crust_mantle, &
-!                           b_accel_crust_mantle, &
-!                           ibool_crust_mantle,ibelm_bottom_crust_mantle,  &
-!                           b_accel_outer_core, &
-!                           normal_top_outer_core,jacobian2D_top_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
-!                           RHO_TOP_OC,minus_g_cmb, &
-!                           NSPEC2D_BOTTOM(IREGION_CRUST_MANTLE))
-!     endif
     endif
 
     !---
@@ -1031,16 +543,6 @@
                             wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
                             RHO_BOTTOM_OC,minus_g_icb, &
                             NSPEC2D_TOP(IREGION_INNER_CORE))
-!     if(SIMULATION_TYPE == 3) then
-!       call compute_coupling_ICB_fluid(b_displ_inner_core, &
-!                           b_accel_inner_core, &
-!                           ibool_inner_core,ibelm_top_inner_core,  &
-!                           b_accel_outer_core, &
-!                           normal_bottom_outer_core,jacobian2D_bottom_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
-!                           RHO_BOTTOM_OC,minus_g_icb, &
-!                           NSPEC2D_TOP(IREGION_INNER_CORE))
-!     endif
     endif
 
     ! assemble all the contributions between slices using MPI
@@ -1111,8 +613,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, &
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -1153,9 +653,7 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & !ZN
+          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & 
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
           size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
@@ -1190,8 +688,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
           R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
@@ -1225,8 +721,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
           R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
@@ -1292,255 +786,6 @@
 
 ! ------------------- new non blocking implementation -------------------
 
-!   if (SIMULATION_TYPE == 3) then
-
-!     ! assemble all the contributions between slices using MPI
-
-! assemble all the contributions between slices using MPI
-! crust/mantle and inner core handled in the same call
-! in order to reduce the number of MPI messages by 2
-
-!       b_iphase = 1 ! initialize the non blocking communication counter
-!       b_iphase_CC = 1 ! initialize the non blocking communication counter for the central cube
-
-! start the non blocking communications
-!       call assemble_MPI_vector(myrank,b_accel_crust_mantle,b_accel_inner_core, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-!           NGLOB1D_RADIAL(IREGION_INNER_CORE),NCHUNKS_VAL,b_iphase)
-
-!       b_icall = 2 ! now compute all the inner elements in the case of non blocking MPI
-
-!       ! compute internal forces in the solid regions
-
-!       ! for anisotropy and gravity, x y and z contain r theta and phi
-
-!       if( USE_DEVILLE_PRODUCTS_VAL ) then
-!         call compute_forces_crust_mantle_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT, &
-!         hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!       else
-!         call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz, &
-!         hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!       endif
-
-!       ! Deville routine
-!       if( USE_DEVILLE_PRODUCTS_VAL ) then
-!         call compute_forces_inner_core_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!       else
-!         call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!       endif
-
-! assemble all the contributions between slices using MPI
-! crust/mantle and inner core handled in the same call
-! in order to reduce the number of MPI messages by 2
-!       do while (b_iphase <= 7) ! make sure the last communications are finished and processed
-!         call assemble_MPI_vector(myrank,b_accel_crust_mantle,b_accel_inner_core, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-!           NGLOB1D_RADIAL(IREGION_INNER_CORE),NCHUNKS_VAL,b_iphase)
-!       enddo
-
-!     !---
-!     !---  use buffers to assemble forces with the central cube
-!     !---
-
-!     if(INCLUDE_CENTRAL_CUBE) then
-!         do while (b_iphase_CC <= 4) ! make sure the last communications are finished and processed
-!           call assemble_MPI_central_cube(ichunk,nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!             npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!             receiver_cube_from_slices,ibool_inner_core,idoubling_inner_core, &
-!             ibelm_bottom_inner_core,NSPEC2D_BOTTOM(IREGION_INNER_CORE),b_accel_inner_core,NDIM,b_iphase_CC)
-!         enddo
-!     endif   ! end of assembling forces with the central cube
-
-! ------------------- new non blocking implementation -------------------
-
-!     if(NCHUNKS_VAL /= 6 .and. ABSORBING_CONDITIONS) then
-
-!        do i=1,NGLOB_CRUST_MANTLE
-!           b_accel_crust_mantle(1,i) = b_accel_crust_mantle(1,i)*rmassx_crust_mantle(i) &
-!                + b_two_omega_earth*b_veloc_crust_mantle(2,i)
-!           b_accel_crust_mantle(2,i) = b_accel_crust_mantle(2,i)*rmassy_crust_mantle(i) &
-!                - b_two_omega_earth*b_veloc_crust_mantle(1,i)
-!           b_accel_crust_mantle(3,i) = b_accel_crust_mantle(3,i)*rmassz_crust_mantle(i)
-!        enddo
-
-!     else
-
-!        do i=1,NGLOB_CRUST_MANTLE
-!           b_accel_crust_mantle(1,i) = b_accel_crust_mantle(1,i)*rmassz_crust_mantle(i) &
-!                + b_two_omega_earth*b_veloc_crust_mantle(2,i)
-!           b_accel_crust_mantle(2,i) = b_accel_crust_mantle(2,i)*rmassz_crust_mantle(i) &
-!                - b_two_omega_earth*b_veloc_crust_mantle(1,i)
-!           b_accel_crust_mantle(3,i) = b_accel_crust_mantle(3,i)*rmassz_crust_mantle(i)
-!        enddo
-
-!     endif
-
-!  endif ! SIMULATION_TYPE == 3
-
     ! couples ocean with crust mantle
    if(OCEANS_VAL) then
      call compute_coupling_ocean(accel_crust_mantle, &
@@ -1550,15 +795,6 @@
                                    updated_dof_ocean_load,NGLOB_XY, &
                                    NSPEC2D_TOP(IREGION_CRUST_MANTLE), &
                                    ABSORBING_CONDITIONS)
-!    if(SIMULATION_TYPE == 3) then
-!      call compute_coupling_ocean(b_accel_crust_mantle, &
-!                                  rmassx_crust_mantle,rmassy_crust_mantle,rmassz_crust_mantle, &
-!                                  rmass_ocean_load,normal_top_crust_mantle, &
-!                                  ibool_crust_mantle,ibelm_top_crust_mantle, &
-!                                  updated_dof_ocean_load,NGLOB_XY, &
-!                                  NSPEC2D_TOP(IREGION_CRUST_MANTLE), &
-!                                  ABSORBING_CONDITIONS)
-!    endif
    endif
 
 !-------------------------------------------------------------------------------------------------
@@ -1585,36 +821,6 @@
       veloc_inner_core(:,i) = veloc_inner_core(:,i) + deltatover2*accel_inner_core(:,i)
     enddo
 
-!   if (SIMULATION_TYPE == 3) then
-!     ! mantle
-!     do i=1,NGLOB_CRUST_MANTLE
-!       b_veloc_crust_mantle(:,i) = b_veloc_crust_mantle(:,i) + b_deltatover2*b_accel_crust_mantle(:,i)
-!     enddo
-!     ! inner core
-!     do i=1,NGLOB_INNER_CORE
-!       b_accel_inner_core(1,i) = b_accel_inner_core(1,i)*rmass_inner_core(i) &
-!        + b_two_omega_earth*b_veloc_inner_core(2,i)
-!       b_accel_inner_core(2,i) = b_accel_inner_core(2,i)*rmass_inner_core(i) &
-!        - b_two_omega_earth*b_veloc_inner_core(1,i)
-!       b_accel_inner_core(3,i) = b_accel_inner_core(3,i)*rmass_inner_core(i)
-!       b_veloc_inner_core(:,i) = b_veloc_inner_core(:,i) + b_deltatover2*b_accel_inner_core(:,i)
-!     enddo
-!   endif ! SIMULATION_TYPE == 3
-
-!   ! restores last time snapshot saved for backward/reconstruction of wavefields
-!   ! note: this is done here after the Newmark time scheme, otherwise the indexing for sources
-!   !          and adjoint sources will become more complicated
-!   !          that is, index it for adjoint sources will match index NSTEP - 1 for backward/reconstructed wavefields
-!   if(SIMULATION_TYPE == 3 .and. it == 1) then
-!     call read_forward_arrays(myrank, &
-!                   b_displ_crust_mantle,b_veloc_crust_mantle,b_accel_crust_mantle, &
-!                   b_displ_inner_core,b_veloc_inner_core,b_accel_inner_core, &
-!                   b_displ_outer_core,b_veloc_outer_core,b_accel_outer_core, &
-!                   b_R_memory_crust_mantle,b_R_memory_inner_core, &
-!                   b_epsilondev_crust_mantle,b_epsilondev_inner_core, &
-!                   b_A_array_rotation,b_B_array_rotation,LOCAL_PATH)
-!   endif
-
 ! write the seismograms with time shift
 
 ! store the seismograms only if there is at least one receiver located in this slice
@@ -1629,7 +835,6 @@
 
     else if (SIMULATION_TYPE == 2) then
       call compute_seismograms_adjoint(NSOURCES,nrec_local,displ_crust_mantle, &
-!ZN                    eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
                     nu_source,Mxx,Myy,Mzz,Mxy,Mxz,Myz, &
                     hxir_store,hetar_store,hgammar_store, &
                     hpxir_store,hpetar_store,hpgammar_store, &
@@ -1643,14 +848,6 @@
                     ibool_crust_mantle,ispec_selected_source,number_receiver_global, &
                     NSTEP,it,nit_written)
 
-!   else if (SIMULATION_TYPE == 3) then
-!     call compute_seismograms_backward(nrec_local,nrec,b_displ_crust_mantle, &
-!                               nu,hxir_store,hetar_store,hgammar_store, &
-!                               scale_displ,ibool_crust_mantle, &
-!                               ispec_selected_rec,number_receiver_global, &
-!                               seismo_current,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
-!                               seismograms)
-
     endif
   endif ! nrec_local
 
@@ -1682,269 +879,13 @@
     seismo_offset = seismo_offset + seismo_current
     seismo_current = 0
   endif
-
-!
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
-!
 
-! kernel calculations
-! if (SIMULATION_TYPE == 3) then
-!   ! crust mantle
-!   call compute_kernels_crust_mantle(ibool_crust_mantle, &
-!                         rho_kl_crust_mantle,beta_kl_crust_mantle, &
-!                         alpha_kl_crust_mantle,cijkl_kl_crust_mantle, &
-!                         accel_crust_mantle,b_displ_crust_mantle, &
-!                         epsilondev_crust_mantle,b_epsilondev_crust_mantle, &
-!                         eps_trace_over_3_crust_mantle,b_eps_trace_over_3_crust_mantle, &
-!                         deltat)
-
-!   ! outer core
-!   call compute_kernels_outer_core(ibool_outer_core, &
-!                       xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!                       etax_outer_core,etay_outer_core,etaz_outer_core, &
-!                       gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!                       hprime_xx,hprime_yy,hprime_zz, &
-!                       displ_outer_core,accel_outer_core, &
-!                       b_displ_outer_core,b_accel_outer_core, &
-!                       vector_accel_outer_core,vector_displ_outer_core, &
-!                       b_vector_displ_outer_core, &
-!                       div_displ_outer_core,b_div_displ_outer_core, &
-!                       rhostore_outer_core,kappavstore_outer_core, &
-!                       rho_kl_outer_core,alpha_kl_outer_core, &
-!                       deviatoric_outercore,nspec_beta_kl_outer_core,beta_kl_outer_core, &
-!                       deltat)
-
-!   ! inner core
-!   call compute_kernels_inner_core(ibool_inner_core, &
-!                         rho_kl_inner_core,beta_kl_inner_core, &
-!                         alpha_kl_inner_core, &
-!                         accel_inner_core,b_displ_inner_core, &
-!                         epsilondev_inner_core,b_epsilondev_inner_core, &
-!                         eps_trace_over_3_inner_core,b_eps_trace_over_3_inner_core, &
-!                         deltat)
-
-!   ! NOISE TOMOGRAPHY --- source strength kernel
-!   if (NOISE_TOMOGRAPHY == 3)  &
-!      call compute_kernels_strength_noise(nmovie_points,ibool_crust_mantle, &
-!                         Sigma_kl_crust_mantle,displ_crust_mantle,deltat,it, &
-!                         normal_x_noise,normal_y_noise,normal_z_noise, &
-!                         NSPEC2D_TOP(IREGION_CRUST_MANTLE),noise_surface_movie, &
-!                         ibelm_top_crust_mantle)
-
-!   ! --- boundary kernels ------
-!   if (SAVE_BOUNDARY_MESH) then
-!     fluid_solid_boundary = .false.
-!     iregion_code = IREGION_CRUST_MANTLE
-
-!     ! Moho
-!     if (.not. SUPPRESS_CRUSTAL_MESH .and. HONOR_1D_SPHERICAL_MOHO) then
-!       call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_moho_top,normal_moho,moho_kl_top,fluid_solid_boundary,NSPEC2D_MOHO)
-
-!       call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_bot,ibelm_moho_bot,normal_moho,moho_kl_bot,fluid_solid_boundary,NSPEC2D_MOHO)
-
-!       moho_kl = moho_kl + (moho_kl_top - moho_kl_bot) * deltat
-!     endif
-
-!     ! d400
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_400_top,normal_400,d400_kl_top,fluid_solid_boundary,NSPEC2D_400)
-
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_bot,ibelm_400_bot,normal_400,d400_kl_bot,fluid_solid_boundary,NSPEC2D_400)
-
-!     d400_kl = d400_kl + (d400_kl_top - d400_kl_bot) * deltat
-
-!     ! d670
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_670_top,normal_670,d670_kl_top,fluid_solid_boundary,NSPEC2D_670)
-
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_bot,ibelm_670_bot,normal_670,d670_kl_bot,fluid_solid_boundary,NSPEC2D_670)
-
-!     d670_kl = d670_kl + (d670_kl_top - d670_kl_bot) * deltat
-
-!     ! CMB
-!     fluid_solid_boundary = .true.
-!     iregion_code = IREGION_CRUST_MANTLE
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle, muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_bottom_crust_mantle,normal_top_outer_core, &
-!                cmb_kl_top,fluid_solid_boundary,NSPEC2D_CMB)
-
-!     iregion_code = IREGION_OUTER_CORE
-!     call compute_boundary_kernel(vector_displ_outer_core,vector_accel_outer_core, &
-!                b_vector_displ_outer_core,nspec_outer_core, &
-!                iregion_code,ystore_outer_core,zstore_outer_core,ibool_outer_core,ispec_is_tiso_outer_core, &
-!                xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!                etax_outer_core,etay_outer_core,etaz_outer_core,&
-!                gammax_outer_core,gammay_outer_core,gammaz_outer_core,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_outer_core,kappavstore_outer_core,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                k_bot,ibelm_top_outer_core,normal_top_outer_core, &
-!                cmb_kl_bot,fluid_solid_boundary,NSPEC2D_CMB)
-
-!     cmb_kl = cmb_kl + (cmb_kl_top - cmb_kl_bot) * deltat
-
-!     ! ICB
-!     fluid_solid_boundary = .true.
-!     call compute_boundary_kernel(vector_displ_outer_core,vector_accel_outer_core, &
-!                b_vector_displ_outer_core,nspec_outer_core, &
-!                iregion_code,ystore_outer_core,zstore_outer_core,ibool_outer_core,ispec_is_tiso_outer_core, &
-!                xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!                etax_outer_core,etay_outer_core,etaz_outer_core,&
-!                gammax_outer_core,gammay_outer_core,gammaz_outer_core,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_outer_core,kappavstore_outer_core,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                k_top,ibelm_bottom_outer_core,normal_bottom_outer_core, &
-!                icb_kl_top,fluid_solid_boundary,NSPEC2D_ICB)
-
-!     iregion_code = IREGION_INNER_CORE
-!     call compute_boundary_kernel(displ_inner_core,accel_inner_core, &
-!                b_displ_inner_core,nspec_inner_core,iregion_code, &
-!                ystore_inner_core,zstore_inner_core,ibool_inner_core,ispec_is_tiso_inner_core, &
-!                xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!                etax_inner_core,etay_inner_core,etaz_inner_core,&
-!                gammax_inner_core,gammay_inner_core,gammaz_inner_core,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_inner_core,kappavstore_inner_core,muvstore_inner_core, &
-!                dummy_array,dummy_array,dummy_array, &
-!                c11store_inner_core,c12store_inner_core,c13store_inner_core,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                c33store_inner_core,dummy_array,dummy_array, &
-!                dummy_array,c44store_inner_core,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                k_bot,ibelm_top_inner_core,normal_bottom_outer_core, &
-!                icb_kl_bot,fluid_solid_boundary,NSPEC2D_ICB)
-
-!     icb_kl = icb_kl + (icb_kl_top - icb_kl_bot) * deltat
-!   endif
-
-!   ! approximate hessian
-!   if( APPROXIMATE_HESS_KL ) then
-!     call compute_kernels_hessian(ibool_crust_mantle, &
-!                         hess_kl_crust_mantle,&
-!                         accel_crust_mantle,b_accel_crust_mantle, &
-!                         deltat)
-!   endif
-
-! endif ! end of if computing kernels
-
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-
   ! first step of noise tomography, i.e., save a surface movie at every time step
   ! modified from the subroutine 'write_movie_surface'
   if ( NOISE_TOMOGRAPHY == 1 ) then
@@ -1979,14 +920,12 @@
       if (MOVIE_VOLUME_TYPE == 1) then  ! output strains
         call  write_movie_volume_strains(myrank,npoints_3dmovie, &
                     LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, &
-!ZN                    it,eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!ZN                    muvstore_crust_mantle_3dmovie, &
                     it,muvstore_crust_mantle_3dmovie, &
-                    mask_3dmovie,nu_3dmovie,& !ZN
+                    mask_3dmovie,nu_3dmovie,& 
                     NSPEC_CRUST_MANTLE,hprime_xx,hprime_yy,hprime_zz,ibool_crust_mantle,&
                     xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
                     etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-                    gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle) !ZN
+                    gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle)
 
       else if (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3) then
         ! output the Time Integral of Strain, or \mu*TIS
@@ -1997,17 +936,17 @@
                     mask_3dmovie,nu_3dmovie)
 
       else if (MOVIE_VOLUME_TYPE == 4) then ! output divergence and curl in whole volume
-!ZN for undo_att this type of MOVIE is not supported 
-!ZN        call write_movie_volume_divcurl(myrank,it,eps_trace_over_3_crust_mantle,&
-!ZN                        div_displ_outer_core, &
-!ZN                        accel_outer_core,kappavstore_outer_core,rhostore_outer_core,ibool_outer_core, &
-!ZN                        eps_trace_over_3_inner_core, &
-!ZN                        epsilondev_crust_mantle,epsilondev_inner_core, &
-!ZN                        LOCAL_PATH, &
-!ZN                        displ_crust_mantle,displ_inner_core,displ_outer_core, &
-!ZN                        veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
-!ZN                        accel_crust_mantle,accel_inner_core, &
-!ZN                        ibool_crust_mantle,ibool_inner_core)
+!!!!! for undo_att this type of MOVIE is not supported 
+!!!        call write_movie_volume_divcurl(myrank,it,eps_trace_over_3_crust_mantle,&
+!!!                        div_displ_outer_core, &
+!!!                        accel_outer_core,kappavstore_outer_core,rhostore_outer_core,ibool_outer_core, &
+!!!                        eps_trace_over_3_inner_core, &
+!!!                        epsilondev_crust_mantle,epsilondev_inner_core, &
+!!!                        LOCAL_PATH, &
+!!!                        displ_crust_mantle,displ_inner_core,displ_outer_core, &
+!!!                        veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
+!!!                        accel_crust_mantle,accel_inner_core, &
+!!!                        ibool_crust_mantle,ibool_inner_core)
 
       else if (MOVIE_VOLUME_TYPE == 5) then ! output displacement
         scalingval = scale_displ

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_undo_att.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part1_undo_att.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -31,34 +31,6 @@
       accel_inner_core(:,i) = 0._CUSTOM_REAL
     enddo
 
-!   ! backward field
-!   if (SIMULATION_TYPE == 3) then
-!     ! mantle
-!     do i=1,NGLOB_CRUST_MANTLE
-!       b_displ_crust_mantle(:,i) = b_displ_crust_mantle(:,i) &
-!         + b_deltat*b_veloc_crust_mantle(:,i) + b_deltatsqover2*b_accel_crust_mantle(:,i)
-!       b_veloc_crust_mantle(:,i) = b_veloc_crust_mantle(:,i) &
-!         + b_deltatover2*b_accel_crust_mantle(:,i)
-!       b_accel_crust_mantle(:,i) = 0._CUSTOM_REAL
-!     enddo
-!     ! outer core
-!     do i=1,NGLOB_OUTER_CORE
-!       b_displ_outer_core(i) = b_displ_outer_core(i) &
-!         + b_deltat*b_veloc_outer_core(i) + b_deltatsqover2*b_accel_outer_core(i)
-!       b_veloc_outer_core(i) = b_veloc_outer_core(i) &
-!         + b_deltatover2*b_accel_outer_core(i)
-!       b_accel_outer_core(i) = 0._CUSTOM_REAL
-!     enddo
-!     ! inner core
-!     do i=1,NGLOB_INNER_CORE
-!       b_displ_inner_core(:,i) = b_displ_inner_core(:,i) &
-!         + b_deltat*b_veloc_inner_core(:,i) + b_deltatsqover2*b_accel_inner_core(:,i)
-!       b_veloc_inner_core(:,i) = b_veloc_inner_core(:,i) &
-!         + b_deltatover2*b_accel_inner_core(:,i)
-!       b_accel_inner_core(:,i) = 0._CUSTOM_REAL
-!     enddo
-!   endif ! SIMULATION_TYPE == 3
-
     ! integral of strain for adjoint movie volume
     if(MOVIE_VOLUME .and. (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3) ) then
 ! do *NOT* use array syntax for that loop, otherwise you will get a compiler error when MOVIE_VOLUME is off
@@ -82,16 +54,8 @@
     ! and output timestamp file to check that simulation is running fine
     if(mod(it,NTSTEP_BETWEEN_OUTPUT_INFO) == 0 .or. it == it_begin+4 .or. it == it_end) then
       call check_simulation_stability(it,displ_crust_mantle,displ_inner_core,displ_outer_core, &
-!ZN                          eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!!!!! DK DK UNDO_ATT                          SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
-                          1,OUTPUT_FILES,time_start,DT,t0,NSTEP, &  !!!!! DK DK UNDO_ATT
+                          1,OUTPUT_FILES,time_start,DT,t0,NSTEP, & 
                           it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
-!     if (SIMULATION_TYPE == 3) then
-!       call check_simulation_stability(it,b_displ_crust_mantle,b_displ_inner_core,b_displ_outer_core, &
-!                         eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!                         SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
-!                         it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
-!     endif
     endif
 
     ! ****************************************************
@@ -154,67 +118,6 @@
            ibool_outer_core,MOVIE_VOLUME)
     endif
 
-!   if (SIMULATION_TYPE == 3) then
-!     ! note on backward/reconstructed wavefields:
-!     !       time for b_displ( it=1 ) corresponds to (NSTEP - 1)*DT - t0  (after Newmark scheme...)
-!     !       as we start with saved wavefields b_displ( 1 ) <-> displ( NSTEP ) which correspond
-!     !       to a time (NSTEP - (it-1) - 1)*DT - t0
-!     !       for reconstructing the rotational contributions
-!     if(CUSTOM_REAL == SIZE_REAL) then
-!       time = sngl((dble(NSTEP-it)*DT-t0)*scale_t_inv)
-!     else
-!       time = (dble(NSTEP-it)*DT-t0)*scale_t_inv
-!     endif
-
-!     b_iphase = 0 ! do not start any non blocking communications at this stage
-!     b_icall = 1  ! compute all the outer elements first in the case of non blocking MPI
-
-!     if( USE_DEVILLE_PRODUCTS_VAL ) then
-!       ! uses Deville et al. (2002) routine
-!       call compute_forces_outer_core_Dev(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!     else
-!       call compute_forces_outer_core(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!     endif
-!   endif
-
     ! Stacey absorbing boundaries
     if(NCHUNKS_VAL /= 6 .and. ABSORBING_CONDITIONS) then
       call compute_stacey_outer_core_forward(ichunk,SAVE_FORWARD, &
@@ -241,52 +144,6 @@
                               absorb_zmin_outer_core, &
                               absorb_xmin_outer_core,absorb_xmax_outer_core, &
                               absorb_ymin_outer_core,absorb_ymax_outer_core)
-!     if (SIMULATION_TYPE == 3) then
-!       call compute_stacey_outer_core_backward(ichunk, &
-!                             NSTEP,it,ibool_outer_core, &
-!                             b_accel_outer_core, &
-!                             ibelm_bottom_outer_core, &
-!                             ibelm_xmin_outer_core,ibelm_xmax_outer_core, &
-!                             ibelm_ymin_outer_core,ibelm_ymax_outer_core, &
-!                             nimin_outer_core,nimax_outer_core, &
-!                             njmin_outer_core,njmax_outer_core, &
-!                             nkmin_xi_outer_core,nkmin_eta_outer_core, &
-!                             NSPEC2D_BOTTOM, &
-!                             nspec2D_xmin_outer_core,nspec2D_xmax_outer_core, &
-!                             nspec2D_ymin_outer_core,nspec2D_ymax_outer_core, &
-!                             reclen_zmin, &
-!                             reclen_xmin_outer_core,reclen_xmax_outer_core, &
-!                             reclen_ymin_outer_core,reclen_ymax_outer_core, &
-!                             nabs_zmin_oc, &
-!                             nabs_xmin_oc,nabs_xmax_oc,nabs_ymin_oc,nabs_ymax_oc, &
-!                             absorb_zmin_outer_core, &
-!                             absorb_xmin_outer_core,absorb_xmax_outer_core, &
-!                             absorb_ymin_outer_core,absorb_ymax_outer_core)
-!!      call compute_stacey_outer_core(ichunk,SIMULATION_TYPE,SAVE_FORWARD, &
-!!                            NSTEP,it,ibool_outer_core, &
-!!                            veloc_outer_core,accel_outer_core,b_accel_outer_core, &
-!!                            vp_outer_core,wgllwgll_xz,wgllwgll_yz,wgllwgll_xy, &
-!!                            jacobian2D_bottom_outer_core, &
-!!                            jacobian2D_xmin_outer_core,jacobian2D_xmax_outer_core, &
-!!                            jacobian2D_ymin_outer_core,jacobian2D_ymax_outer_core, &
-!!                            ibelm_bottom_outer_core, &
-!!                            ibelm_xmin_outer_core,ibelm_xmax_outer_core, &
-!!                            ibelm_ymin_outer_core,ibelm_ymax_outer_core, &
-!!                            nimin_outer_core,nimax_outer_core, &
-!!                            njmin_outer_core,njmax_outer_core, &
-!!                            nkmin_xi_outer_core,nkmin_eta_outer_core, &
-!!                            NSPEC2D_BOTTOM, &
-!!                            nspec2D_xmin_outer_core,nspec2D_xmax_outer_core, &
-!!                            nspec2D_ymin_outer_core,nspec2D_ymax_outer_core, &
-!!                            reclen_zmin, &
-!!                            reclen_xmin_outer_core,reclen_xmax_outer_core, &
-!!                            reclen_ymin_outer_core,reclen_ymax_outer_core, &
-!!                            nabs_zmin_oc, &
-!!                            nabs_xmin_oc,nabs_xmax_oc,nabs_ymin_oc,nabs_ymax_oc, &
-!!                            absorb_zmin_outer_core, &
-!!                            absorb_xmin_outer_core,absorb_xmax_outer_core, &
-!!                            absorb_ymin_outer_core,absorb_ymax_outer_core)
-!     endif
     endif ! Stacey conditions
 
 
@@ -306,14 +163,6 @@
                             normal_top_outer_core,jacobian2D_top_outer_core, &
                             wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
                             NSPEC2D_TOP(IREGION_OUTER_CORE))
-!     if (SIMULATION_TYPE == 3) then
-!       call compute_coupling_fluid_CMB(b_displ_crust_mantle, &
-!                           ibool_crust_mantle,ibelm_bottom_crust_mantle,  &
-!                           b_accel_outer_core, &
-!                           normal_top_outer_core,jacobian2D_top_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
-!                           NSPEC2D_TOP(IREGION_OUTER_CORE))
-!     endif
     endif
 
     !---
@@ -326,14 +175,6 @@
                             normal_bottom_outer_core,jacobian2D_bottom_outer_core, &
                             wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
                             NSPEC2D_BOTTOM(IREGION_OUTER_CORE))
-!     if (SIMULATION_TYPE == 3) then
-!       call compute_coupling_fluid_ICB(b_displ_inner_core, &
-!                           ibool_inner_core,ibelm_top_inner_core,  &
-!                           b_accel_outer_core, &
-!                           normal_bottom_outer_core,jacobian2D_bottom_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
-!                           NSPEC2D_BOTTOM(IREGION_OUTER_CORE))
-!     endif
     endif
 
     ! assemble all the contributions between slices using MPI
@@ -423,99 +264,6 @@
     enddo
 
 ! ------------------- new non blocking implementation -------------------
-
-!   if (SIMULATION_TYPE == 3) then
-
-!   ! outer core
-!       b_iphase = 1 ! start the non blocking communications
-!       call assemble_MPI_scalar(myrank,b_accel_outer_core,NGLOB_OUTER_CORE, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!           npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!           iboolfaces_outer_core,iboolcorner_outer_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,b_iphase)
-
-!       b_icall = 2 ! now compute all the inner elements in the case of non blocking MPI
-
-!       if( USE_DEVILLE_PRODUCTS_VAL ) then
-!         ! uses Deville et al. (2002) routine
-!         call compute_forces_outer_core_Dev(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!       else
-!         ! div_displ_outer_core is initialized to zero in the following subroutine.
-!         call compute_forces_outer_core(time,b_deltat,b_two_omega_earth, &
-!          b_A_array_rotation,b_B_array_rotation,d_ln_density_dr_table, &
-!          minus_rho_g_over_kappa_fluid, &
-!          b_displ_outer_core,b_accel_outer_core,b_div_displ_outer_core, &
-!          xstore_outer_core,ystore_outer_core,zstore_outer_core, &
-!          xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!          etax_outer_core,etay_outer_core,etaz_outer_core, &
-!          gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!         is_on_a_slice_edge_outer_core, &
-!         myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!         iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!         npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!         iboolfaces_outer_core,iboolcorner_outer_core, &
-!         iprocfrom_faces,iprocto_faces, &
-!         iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!         b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!         b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar,b_iphase,b_icall, &
-!          hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!          wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!          ibool_outer_core,MOVIE_VOLUME)
-!       endif
-
-!       do while (b_iphase <= 7) ! make sure the last communications are finished and processed
-!         call assemble_MPI_scalar(myrank,b_accel_outer_core,NGLOB_OUTER_CORE, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
-!           npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
-!           iboolfaces_outer_core,iboolcorner_outer_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_scalar,b_buffer_recv_chunkcorn_scalar, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-!           NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,b_iphase)
-!       enddo
-
-! ------------------- new non blocking implementation -------------------
-
-!     ! Newmark time scheme - corrector for fluid parts
-!     do i=1,NGLOB_OUTER_CORE
-!       b_accel_outer_core(i) = b_accel_outer_core(i)*rmass_outer_core(i)
-!       b_veloc_outer_core(i) = b_veloc_outer_core(i) + b_deltatover2*b_accel_outer_core(i)
-!     enddo
-
-!   endif
-
     ! ****************************************************
     !   big loop over all spectral elements in the solid
     ! ****************************************************
@@ -564,9 +312,7 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & !ZN
+          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & 
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
           size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
@@ -606,106 +352,12 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & !ZN
+          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, &
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
           size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
     endif
 
-!   if (SIMULATION_TYPE == 3 ) then
-
-!     b_iphase = 0 ! do not start any non blocking communications at this stage
-!     b_iphase_CC = 0 ! do not start any non blocking communications at this stage
-!     b_icall = 1  ! compute all the outer elements first in the case of non blocking MPI
-
-!   ! for anisotropy and gravity, x y and z contain r theta and phi
-!     if( USE_DEVILLE_PRODUCTS_VAL ) then
-!       call compute_forces_crust_mantle_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT, &
-!         hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!     else
-!       call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz, &
-!         hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!     endif
-!   endif
-
     ! Deville routine
     if( USE_DEVILLE_PRODUCTS_VAL ) then
       call compute_forces_inner_core_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -735,9 +387,7 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
-          R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,& !ZN
+          R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
           size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
@@ -770,8 +420,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
           R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core, &
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
@@ -779,78 +427,6 @@
           size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
     endif
 
-!   if (SIMULATION_TYPE == 3) then
-!     if( USE_DEVILLE_PRODUCTS_VAL ) then
-!       call compute_forces_inner_core_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!     else
-!       call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!     endif
-!   endif
-
     ! Stacey
     if(NCHUNKS_VAL /= 6 .and. ABSORBING_CONDITIONS) then
 
@@ -876,45 +452,6 @@
                               absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
                               absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
 
-!     if(SIMULATION_TYPE == 3) then
-!       call compute_stacey_crust_mantle_backward(ichunk, &
-!                             NSTEP,it,ibool_crust_mantle, &
-!                             b_accel_crust_mantle, &
-!                             ibelm_xmin_crust_mantle,ibelm_xmax_crust_mantle, &
-!                             ibelm_ymin_crust_mantle,ibelm_ymax_crust_mantle, &
-!                             nimin_crust_mantle,nimax_crust_mantle, &
-!                             njmin_crust_mantle,njmax_crust_mantle, &
-!                             nkmin_xi_crust_mantle,nkmin_eta_crust_mantle, &
-!                             nspec2D_xmin_crust_mantle,nspec2D_xmax_crust_mantle, &
-!                             nspec2D_ymin_crust_mantle,nspec2D_ymax_crust_mantle, &
-!                             reclen_xmin_crust_mantle,reclen_xmax_crust_mantle, &
-!                             reclen_ymin_crust_mantle,reclen_ymax_crust_mantle, &
-!                             nabs_xmin_cm,nabs_xmax_cm,nabs_ymin_cm,nabs_ymax_cm, &
-!                             absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
-!                             absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
-!!      call compute_stacey_crust_mantle(ichunk, &
-!!                            NSTEP,it,SAVE_FORWARD,ibool_crust_mantle, &
-!!                            veloc_crust_mantle,b_accel_crust_mantle, &
-!!                            jacobian2D_xmin_crust_mantle,jacobian2D_xmax_crust_mantle, &
-!!                            jacobian2D_ymin_crust_mantle,jacobian2D_ymax_crust_mantle, &
-!!                            wgllwgll_xz,wgllwgll_yz, &
-!!                            normal_xmin_crust_mantle,normal_xmax_crust_mantle, &
-!!                            normal_ymin_crust_mantle,normal_ymax_crust_mantle, &
-!!                            rho_vp_crust_mantle,rho_vs_crust_mantle, &
-!!                            ibelm_xmin_crust_mantle,ibelm_xmax_crust_mantle, &
-!!                            ibelm_ymin_crust_mantle,ibelm_ymax_crust_mantle, &
-!!                            nimin_crust_mantle,nimax_crust_mantle, &
-!!                            njmin_crust_mantle,njmax_crust_mantle, &
-!!                            nkmin_xi_crust_mantle,nkmin_eta_crust_mantle, &
-!!                            nspec2D_xmin_crust_mantle,nspec2D_xmax_crust_mantle, &
-!!                            nspec2D_ymin_crust_mantle,nspec2D_ymax_crust_mantle, &
-!!                            reclen_xmin_crust_mantle,reclen_xmax_crust_mantle, &
-!!                            reclen_ymin_crust_mantle,reclen_ymax_crust_mantle, &
-!!                            nabs_xmin_cm,nabs_xmax_cm,nabs_ymin_cm,nabs_ymax_cm, &
-!!                            absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
-!!                            absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
-!     endif
-
     endif ! Stacey conditions
 
     ! add the sources
@@ -940,13 +477,6 @@
                                 it,it_begin,station_name,network_name,DT)
     endif
 
-!   ! add adjoint sources and add sources for backward/reconstructed wavefield
-!   if (SIMULATION_TYPE == 3) &
-!     call compute_add_sources_backward(myrank,NSOURCES,NSTEP, &
-!                               b_accel_crust_mantle,sourcearrays, &
-!                               DT,t0,tshift_cmt,hdur_gaussian,ibool_crust_mantle, &
-!                               islice_selected_source,ispec_selected_source,it, &
-!                               hdur,xi_source,eta_source,gamma_source,nu_source)
 
     ! NOISE_TOMOGRAPHY
     if ( NOISE_TOMOGRAPHY == 1 ) then
@@ -966,21 +496,6 @@
                               ibelm_top_crust_mantle,ibool_crust_mantle, &
                               NSPEC2D_TOP(IREGION_CRUST_MANTLE),noise_surface_movie, &
                               NSTEP-it+1,jacobian2D_top_crust_mantle,wgllwgll_xy)
-        ! be careful, since ensemble forward sources are reversals of generating wavefield "eta"
-        ! hence the "NSTEP-it+1", i.e., start reading from the last timestep
-        ! note the ensemble forward sources are generally distributed on the surface of the earth
-        ! that's to say, the ensemble forward source is kind of a surface force density, not a body force density
-        ! therefore, we must add it here, before applying the inverse of mass matrix
-!   else if ( NOISE_TOMOGRAPHY == 3 ) then
-!       ! third step of noise tomography, i.e., read the surface movie saved at every timestep
-!       ! use the movie to reconstruct the ensemble forward wavefield
-!       ! the ensemble adjoint wavefield is done as usual
-!       ! note instead of "NSTEP-it+1", now we us "it", since reconstruction is a reversal of reversal
-!       call noise_read_add_surface_movie(nmovie_points,b_accel_crust_mantle, &
-!                             normal_x_noise,normal_y_noise,normal_z_noise,mask_noise, &
-!                             ibelm_top_crust_mantle,ibool_crust_mantle, &
-!                             NSPEC2D_TOP(IREGION_CRUST_MANTLE),noise_surface_movie, &
-!                             it,jacobian2D_top_crust_mantle,wgllwgll_xy)
     endif
 
     ! ****************************************************
@@ -1001,16 +516,6 @@
                             wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
                             RHO_TOP_OC,minus_g_cmb, &
                             NSPEC2D_BOTTOM(IREGION_CRUST_MANTLE))
-!     if(SIMULATION_TYPE == 3) then
-!       call compute_coupling_CMB_fluid(b_displ_crust_mantle, &
-!                           b_accel_crust_mantle, &
-!                           ibool_crust_mantle,ibelm_bottom_crust_mantle,  &
-!                           b_accel_outer_core, &
-!                           normal_top_outer_core,jacobian2D_top_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_top_outer_core, &
-!                           RHO_TOP_OC,minus_g_cmb, &
-!                           NSPEC2D_BOTTOM(IREGION_CRUST_MANTLE))
-!     endif
     endif
 
     !---
@@ -1025,16 +530,6 @@
                             wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
                             RHO_BOTTOM_OC,minus_g_icb, &
                             NSPEC2D_TOP(IREGION_INNER_CORE))
-!     if(SIMULATION_TYPE == 3) then
-!       call compute_coupling_ICB_fluid(b_displ_inner_core, &
-!                           b_accel_inner_core, &
-!                           ibool_inner_core,ibelm_top_inner_core,  &
-!                           b_accel_outer_core, &
-!                           normal_bottom_outer_core,jacobian2D_bottom_outer_core, &
-!                           wgllwgll_xy,ibool_outer_core,ibelm_bottom_outer_core, &
-!                           RHO_BOTTOM_OC,minus_g_icb, &
-!                           NSPEC2D_TOP(IREGION_INNER_CORE))
-!     endif
     endif
 
     ! assemble all the contributions between slices using MPI
@@ -1105,8 +600,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, &
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -1147,9 +640,7 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          R_memory_crust_mantle,epsilondev_crust_mantle, &
-!ZN          eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, & !ZN
+          R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,deltat,veloc_crust_mantle, &
           alphaval,betaval,gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
           size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
@@ -1184,8 +675,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
           R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
@@ -1219,8 +708,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          R_memory_inner_core,epsilondev_inner_core, eps_trace_over_3_inner_core,&
-!ZN          one_minus_sum_beta_inner_core, &
           R_memory_inner_core,one_minus_sum_beta_inner_core,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval, &
           factor_common_inner_core, &
@@ -1285,256 +772,6 @@
     endif
 
 ! ------------------- new non blocking implementation -------------------
-
-!   if (SIMULATION_TYPE == 3) then
-
-!     ! assemble all the contributions between slices using MPI
-
-! assemble all the contributions between slices using MPI
-! crust/mantle and inner core handled in the same call
-! in order to reduce the number of MPI messages by 2
-
-!       b_iphase = 1 ! initialize the non blocking communication counter
-!       b_iphase_CC = 1 ! initialize the non blocking communication counter for the central cube
-
-! start the non blocking communications
-!       call assemble_MPI_vector(myrank,b_accel_crust_mantle,b_accel_inner_core, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-!           NGLOB1D_RADIAL(IREGION_INNER_CORE),NCHUNKS_VAL,b_iphase)
-
-!       b_icall = 2 ! now compute all the inner elements in the case of non blocking MPI
-
-!       ! compute internal forces in the solid regions
-
-!       ! for anisotropy and gravity, x y and z contain r theta and phi
-
-!       if( USE_DEVILLE_PRODUCTS_VAL ) then
-!         call compute_forces_crust_mantle_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT, &
-!         hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!       else
-!         call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_crust_mantle,b_accel_crust_mantle, &
-!         xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle, &
-!         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!           is_on_a_slice_edge_crust_mantle,b_icall, &
-!           b_accel_inner_core,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz, &
-!         hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_crust_mantle,kappahstore_crust_mantle,muvstore_crust_mantle, &
-!         muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!         c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
-!         c14store_crust_mantle,c15store_crust_mantle,c16store_crust_mantle, &
-!         c22store_crust_mantle,c23store_crust_mantle,c24store_crust_mantle, &
-!         c25store_crust_mantle,c26store_crust_mantle,c33store_crust_mantle, &
-!         c34store_crust_mantle,c35store_crust_mantle,c36store_crust_mantle, &
-!         c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!         c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!         ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!         b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!         b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
-!         b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
-!         size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
-!         size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5) )
-!       endif
-
-!       ! Deville routine
-!       if( USE_DEVILLE_PRODUCTS_VAL ) then
-!         call compute_forces_inner_core_Dev(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!       else
-!         call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
-!         b_displ_inner_core,b_accel_inner_core, &
-!         xstore_inner_core,ystore_inner_core,zstore_inner_core, &
-!         xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!         etax_inner_core,etay_inner_core,etaz_inner_core, &
-!         gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!           is_on_a_slice_edge_inner_core,b_icall, &
-!           b_accel_crust_mantle,ibool_inner_core,idoubling_inner_core, &
-!           myrank,iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector,b_iphase, &
-!           nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!           npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!           receiver_cube_from_slices,ibelm_bottom_inner_core,NSPEC2D_BOTTOM_IC,INCLUDE_CENTRAL_CUBE,b_iphase_CC, &
-!         hprime_xx,hprime_yy,hprime_zz,hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
-!         wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
-!         kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
-!         c11store_inner_core,c33store_inner_core,c12store_inner_core, &
-!         c13store_inner_core,c44store_inner_core, &
-!         b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
-!         one_minus_sum_beta_inner_core, &
-!         b_alphaval,b_betaval,b_gammaval, &
-!         factor_common_inner_core, &
-!         size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-!         size(factor_common_inner_core,4), size(factor_common_inner_core,5) )
-!       endif
-
-! assemble all the contributions between slices using MPI
-! crust/mantle and inner core handled in the same call
-! in order to reduce the number of MPI messages by 2
-!       do while (b_iphase <= 7) ! make sure the last communications are finished and processed
-!         call assemble_MPI_vector(myrank,b_accel_crust_mantle,b_accel_inner_core, &
-!           iproc_xi,iproc_eta,ichunk,addressing, &
-!           iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
-!           npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
-!           iboolfaces_crust_mantle,iboolcorner_crust_mantle, &
-!           iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
-!           npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
-!           iboolfaces_inner_core,iboolcorner_inner_core, &
-!           iprocfrom_faces,iprocto_faces, &
-!           iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-!           b_buffer_send_faces,b_buffer_received_faces,npoin2D_max_all_CM_IC, &
-!           b_buffer_send_chunkcorn_vector,b_buffer_recv_chunkcorn_vector, &
-!           NUMMSGS_FACES,NCORNERSCHUNKS, &
-!           NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-!           NGLOB1D_RADIAL(IREGION_INNER_CORE),NCHUNKS_VAL,b_iphase)
-!       enddo
-
-!     !---
-!     !---  use buffers to assemble forces with the central cube
-!     !---
-
-!     if(INCLUDE_CENTRAL_CUBE) then
-!         do while (b_iphase_CC <= 4) ! make sure the last communications are finished and processed
-!           call assemble_MPI_central_cube(ichunk,nb_msgs_theor_in_cube,sender_from_slices_to_cube, &
-!             npoin2D_cube_from_slices,b_buffer_all_cube_from_slices,b_buffer_slices,ibool_central_cube, &
-!             receiver_cube_from_slices,ibool_inner_core,idoubling_inner_core, &
-!             ibelm_bottom_inner_core,NSPEC2D_BOTTOM(IREGION_INNER_CORE),b_accel_inner_core,NDIM,b_iphase_CC)
-!         enddo
-!     endif   ! end of assembling forces with the central cube
-
-! ------------------- new non blocking implementation -------------------
-
-!     if(NCHUNKS_VAL /= 6 .and. ABSORBING_CONDITIONS) then
-
-!        do i=1,NGLOB_CRUST_MANTLE
-!           b_accel_crust_mantle(1,i) = b_accel_crust_mantle(1,i)*rmassx_crust_mantle(i) &
-!                + b_two_omega_earth*b_veloc_crust_mantle(2,i)
-!           b_accel_crust_mantle(2,i) = b_accel_crust_mantle(2,i)*rmassy_crust_mantle(i) &
-!                - b_two_omega_earth*b_veloc_crust_mantle(1,i)
-!           b_accel_crust_mantle(3,i) = b_accel_crust_mantle(3,i)*rmassz_crust_mantle(i)
-!        enddo
-
-!     else
-
-!        do i=1,NGLOB_CRUST_MANTLE
-!           b_accel_crust_mantle(1,i) = b_accel_crust_mantle(1,i)*rmassz_crust_mantle(i) &
-!                + b_two_omega_earth*b_veloc_crust_mantle(2,i)
-!           b_accel_crust_mantle(2,i) = b_accel_crust_mantle(2,i)*rmassz_crust_mantle(i) &
-!                - b_two_omega_earth*b_veloc_crust_mantle(1,i)
-!           b_accel_crust_mantle(3,i) = b_accel_crust_mantle(3,i)*rmassz_crust_mantle(i)
-!        enddo
-
-!     endif
-
-!  endif ! SIMULATION_TYPE == 3
-
     ! couples ocean with crust mantle
    if(OCEANS_VAL) then
      call compute_coupling_ocean(accel_crust_mantle, &
@@ -1544,15 +781,6 @@
                                    updated_dof_ocean_load,NGLOB_XY, &
                                    NSPEC2D_TOP(IREGION_CRUST_MANTLE), &
                                    ABSORBING_CONDITIONS)
-!    if(SIMULATION_TYPE == 3) then
-!      call compute_coupling_ocean(b_accel_crust_mantle, &
-!                                  rmassx_crust_mantle,rmassy_crust_mantle,rmassz_crust_mantle, &
-!                                  rmass_ocean_load,normal_top_crust_mantle, &
-!                                  ibool_crust_mantle,ibelm_top_crust_mantle, &
-!                                  updated_dof_ocean_load,NGLOB_XY, &
-!                                  NSPEC2D_TOP(IREGION_CRUST_MANTLE), &
-!                                  ABSORBING_CONDITIONS)
-!    endif
    endif
 
 !-------------------------------------------------------------------------------------------------
@@ -1579,36 +807,6 @@
       veloc_inner_core(:,i) = veloc_inner_core(:,i) + deltatover2*accel_inner_core(:,i)
     enddo
 
-!   if (SIMULATION_TYPE == 3) then
-!     ! mantle
-!     do i=1,NGLOB_CRUST_MANTLE
-!       b_veloc_crust_mantle(:,i) = b_veloc_crust_mantle(:,i) + b_deltatover2*b_accel_crust_mantle(:,i)
-!     enddo
-!     ! inner core
-!     do i=1,NGLOB_INNER_CORE
-!       b_accel_inner_core(1,i) = b_accel_inner_core(1,i)*rmass_inner_core(i) &
-!        + b_two_omega_earth*b_veloc_inner_core(2,i)
-!       b_accel_inner_core(2,i) = b_accel_inner_core(2,i)*rmass_inner_core(i) &
-!        - b_two_omega_earth*b_veloc_inner_core(1,i)
-!       b_accel_inner_core(3,i) = b_accel_inner_core(3,i)*rmass_inner_core(i)
-!       b_veloc_inner_core(:,i) = b_veloc_inner_core(:,i) + b_deltatover2*b_accel_inner_core(:,i)
-!     enddo
-!   endif ! SIMULATION_TYPE == 3
-
-!   ! restores last time snapshot saved for backward/reconstruction of wavefields
-!   ! note: this is done here after the Newmark time scheme, otherwise the indexing for sources
-!   !          and adjoint sources will become more complicated
-!   !          that is, index it for adjoint sources will match index NSTEP - 1 for backward/reconstructed wavefields
-!   if(SIMULATION_TYPE == 3 .and. it == 1) then
-!     call read_forward_arrays(myrank, &
-!                   b_displ_crust_mantle,b_veloc_crust_mantle,b_accel_crust_mantle, &
-!                   b_displ_inner_core,b_veloc_inner_core,b_accel_inner_core, &
-!                   b_displ_outer_core,b_veloc_outer_core,b_accel_outer_core, &
-!                   b_R_memory_crust_mantle,b_R_memory_inner_core, &
-!                   b_epsilondev_crust_mantle,b_epsilondev_inner_core, &
-!                   b_A_array_rotation,b_B_array_rotation,LOCAL_PATH)
-!   endif
-
 ! write the seismograms with time shift
 
 ! store the seismograms only if there is at least one receiver located in this slice
@@ -1623,7 +821,6 @@
 
     else if (SIMULATION_TYPE == 2) then
       call compute_seismograms_adjoint(NSOURCES,nrec_local,displ_crust_mantle, &
-!ZN                    eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
                     nu_source,Mxx,Myy,Mzz,Mxy,Mxz,Myz, &
                     hxir_store,hetar_store,hgammar_store, &
                     hpxir_store,hpetar_store,hpgammar_store, &
@@ -1636,15 +833,6 @@
                     NTSTEP_BETWEEN_OUTPUT_SEISMOS,seismograms,deltat, &
                     ibool_crust_mantle,ispec_selected_source,number_receiver_global, &
                     NSTEP,it,nit_written)
-
-!   else if (SIMULATION_TYPE == 3) then
-!     call compute_seismograms_backward(nrec_local,nrec,b_displ_crust_mantle, &
-!                               nu,hxir_store,hetar_store,hgammar_store, &
-!                               scale_displ,ibool_crust_mantle, &
-!                               ispec_selected_rec,number_receiver_global, &
-!                               seismo_current,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
-!                               seismograms)
-
     endif
   endif ! nrec_local
 
@@ -1674,7 +862,7 @@
                                   NSTEP,NTSTEP_BETWEEN_OUTPUT_SEISMOS,t0,LOCAL_PATH)
         nit_written = it
     endif
-!ZN    seismo_offset = seismo_offset + seismo_current
+!!!    seismo_offset = seismo_offset + seismo_current
     seismo_current = 0
   endif
 else
@@ -1707,268 +895,13 @@
   endif
 endif
 
-!
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------------------------
-!
 
-! kernel calculations
-! if (SIMULATION_TYPE == 3) then
-!   ! crust mantle
-!   call compute_kernels_crust_mantle(ibool_crust_mantle, &
-!                         rho_kl_crust_mantle,beta_kl_crust_mantle, &
-!                         alpha_kl_crust_mantle,cijkl_kl_crust_mantle, &
-!                         accel_crust_mantle,b_displ_crust_mantle, &
-!                         epsilondev_crust_mantle,b_epsilondev_crust_mantle, &
-!                         eps_trace_over_3_crust_mantle,b_eps_trace_over_3_crust_mantle, &
-!                         deltat)
-
-!   ! outer core
-!   call compute_kernels_outer_core(ibool_outer_core, &
-!                       xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!                       etax_outer_core,etay_outer_core,etaz_outer_core, &
-!                       gammax_outer_core,gammay_outer_core,gammaz_outer_core, &
-!                       hprime_xx,hprime_yy,hprime_zz, &
-!                       displ_outer_core,accel_outer_core, &
-!                       b_displ_outer_core,b_accel_outer_core, &
-!                       vector_accel_outer_core,vector_displ_outer_core, &
-!                       b_vector_displ_outer_core, &
-!                       div_displ_outer_core,b_div_displ_outer_core, &
-!                       rhostore_outer_core,kappavstore_outer_core, &
-!                       rho_kl_outer_core,alpha_kl_outer_core, &
-!                       deviatoric_outercore,nspec_beta_kl_outer_core,beta_kl_outer_core, &
-!                       deltat)
-
-!   ! inner core
-!   call compute_kernels_inner_core(ibool_inner_core, &
-!                         rho_kl_inner_core,beta_kl_inner_core, &
-!                         alpha_kl_inner_core, &
-!                         accel_inner_core,b_displ_inner_core, &
-!                         epsilondev_inner_core,b_epsilondev_inner_core, &
-!                         eps_trace_over_3_inner_core,b_eps_trace_over_3_inner_core, &
-!                         deltat)
-
-!   ! NOISE TOMOGRAPHY --- source strength kernel
-!   if (NOISE_TOMOGRAPHY == 3)  &
-!      call compute_kernels_strength_noise(nmovie_points,ibool_crust_mantle, &
-!                         Sigma_kl_crust_mantle,displ_crust_mantle,deltat,it, &
-!                         normal_x_noise,normal_y_noise,normal_z_noise, &
-!                         NSPEC2D_TOP(IREGION_CRUST_MANTLE),noise_surface_movie, &
-!                         ibelm_top_crust_mantle)
-
-!   ! --- boundary kernels ------
-!   if (SAVE_BOUNDARY_MESH) then
-!     fluid_solid_boundary = .false.
-!     iregion_code = IREGION_CRUST_MANTLE
-
-!     ! Moho
-!     if (.not. SUPPRESS_CRUSTAL_MESH .and. HONOR_1D_SPHERICAL_MOHO) then
-!       call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_moho_top,normal_moho,moho_kl_top,fluid_solid_boundary,NSPEC2D_MOHO)
-
-!       call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_bot,ibelm_moho_bot,normal_moho,moho_kl_bot,fluid_solid_boundary,NSPEC2D_MOHO)
-
-!       moho_kl = moho_kl + (moho_kl_top - moho_kl_bot) * deltat
-!     endif
-
-!     ! d400
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_400_top,normal_400,d400_kl_top,fluid_solid_boundary,NSPEC2D_400)
-
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_bot,ibelm_400_bot,normal_400,d400_kl_bot,fluid_solid_boundary,NSPEC2D_400)
-
-!     d400_kl = d400_kl + (d400_kl_top - d400_kl_bot) * deltat
-
-!     ! d670
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_670_top,normal_670,d670_kl_top,fluid_solid_boundary,NSPEC2D_670)
-
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle,muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_bot,ibelm_670_bot,normal_670,d670_kl_bot,fluid_solid_boundary,NSPEC2D_670)
-
-!     d670_kl = d670_kl + (d670_kl_top - d670_kl_bot) * deltat
-
-!     ! CMB
-!     fluid_solid_boundary = .true.
-!     iregion_code = IREGION_CRUST_MANTLE
-!     call compute_boundary_kernel(displ_crust_mantle,accel_crust_mantle, &
-!                b_displ_crust_mantle,nspec_crust_mantle,iregion_code, &
-!                ystore_crust_mantle,zstore_crust_mantle,ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!                xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!                gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_crust_mantle,kappavstore_crust_mantle, muvstore_crust_mantle, &
-!                kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle, &
-!                c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle,c14store_crust_mantle, &
-!                c15store_crust_mantle,c16store_crust_mantle,c22store_crust_mantle, &
-!                c23store_crust_mantle,c24store_crust_mantle,c25store_crust_mantle,c26store_crust_mantle, &
-!                c33store_crust_mantle,c34store_crust_mantle,c35store_crust_mantle, &
-!                c36store_crust_mantle,c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
-!                c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
-!                k_top,ibelm_bottom_crust_mantle,normal_top_outer_core, &
-!                cmb_kl_top,fluid_solid_boundary,NSPEC2D_CMB)
-
-!     iregion_code = IREGION_OUTER_CORE
-!     call compute_boundary_kernel(vector_displ_outer_core,vector_accel_outer_core, &
-!                b_vector_displ_outer_core,nspec_outer_core, &
-!                iregion_code,ystore_outer_core,zstore_outer_core,ibool_outer_core,ispec_is_tiso_outer_core, &
-!                xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!                etax_outer_core,etay_outer_core,etaz_outer_core,&
-!                gammax_outer_core,gammay_outer_core,gammaz_outer_core,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_outer_core,kappavstore_outer_core,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                k_bot,ibelm_top_outer_core,normal_top_outer_core, &
-!                cmb_kl_bot,fluid_solid_boundary,NSPEC2D_CMB)
-
-!     cmb_kl = cmb_kl + (cmb_kl_top - cmb_kl_bot) * deltat
-
-!     ! ICB
-!     fluid_solid_boundary = .true.
-!     call compute_boundary_kernel(vector_displ_outer_core,vector_accel_outer_core, &
-!                b_vector_displ_outer_core,nspec_outer_core, &
-!                iregion_code,ystore_outer_core,zstore_outer_core,ibool_outer_core,ispec_is_tiso_outer_core, &
-!                xix_outer_core,xiy_outer_core,xiz_outer_core, &
-!                etax_outer_core,etay_outer_core,etaz_outer_core,&
-!                gammax_outer_core,gammay_outer_core,gammaz_outer_core,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_outer_core,kappavstore_outer_core,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                k_top,ibelm_bottom_outer_core,normal_bottom_outer_core, &
-!                icb_kl_top,fluid_solid_boundary,NSPEC2D_ICB)
-
-!     iregion_code = IREGION_INNER_CORE
-!     call compute_boundary_kernel(displ_inner_core,accel_inner_core, &
-!                b_displ_inner_core,nspec_inner_core,iregion_code, &
-!                ystore_inner_core,zstore_inner_core,ibool_inner_core,ispec_is_tiso_inner_core, &
-!                xix_inner_core,xiy_inner_core,xiz_inner_core, &
-!                etax_inner_core,etay_inner_core,etaz_inner_core,&
-!                gammax_inner_core,gammay_inner_core,gammaz_inner_core,hprime_xx,hprime_yy,hprime_zz, &
-!                rhostore_inner_core,kappavstore_inner_core,muvstore_inner_core, &
-!                dummy_array,dummy_array,dummy_array, &
-!                c11store_inner_core,c12store_inner_core,c13store_inner_core,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array,dummy_array, &
-!                c33store_inner_core,dummy_array,dummy_array, &
-!                dummy_array,c44store_inner_core,dummy_array,dummy_array, &
-!                dummy_array,dummy_array,dummy_array, &
-!                k_bot,ibelm_top_inner_core,normal_bottom_outer_core, &
-!                icb_kl_bot,fluid_solid_boundary,NSPEC2D_ICB)
-
-!     icb_kl = icb_kl + (icb_kl_top - icb_kl_bot) * deltat
-!   endif
-
-!   ! approximate hessian
-!   if( APPROXIMATE_HESS_KL ) then
-!     call compute_kernels_hessian(ibool_crust_mantle, &
-!                         hess_kl_crust_mantle,&
-!                         accel_crust_mantle,b_accel_crust_mantle, &
-!                         deltat)
-!   endif
-
-! endif ! end of if computing kernels
-
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-!-------------------------------------------------------------------------------------------------
-
   ! first step of noise tomography, i.e., save a surface movie at every time step
   ! modified from the subroutine 'write_movie_surface'
   if ( NOISE_TOMOGRAPHY == 1 ) then
@@ -2003,14 +936,12 @@
       if (MOVIE_VOLUME_TYPE == 1) then  ! output strains
         call  write_movie_volume_strains(myrank,npoints_3dmovie, &
                     LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, &
-!ZN                    it,eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!ZN                    muvstore_crust_mantle_3dmovie, &
                     it,muvstore_crust_mantle_3dmovie, &
-                    mask_3dmovie,nu_3dmovie,& !ZN
+                    mask_3dmovie,nu_3dmovie,&
                     hprime_xx,hprime_yy,hprime_zz,ibool_crust_mantle,&
                     xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
                     etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-                    gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle) !ZN
+                    gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle)
 
       else if (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3) then
         ! output the Time Integral of Strain, or \mu*TIS
@@ -2021,17 +952,17 @@
                     mask_3dmovie,nu_3dmovie)
 
       else if (MOVIE_VOLUME_TYPE == 4) then ! output divergence and curl in whole volume
-!ZN for undo_att this type of MOVIE is not supported 
-!ZN        call write_movie_volume_divcurl(myrank,it,eps_trace_over_3_crust_mantle,&
-!ZN                        div_displ_outer_core, &
-!ZN                        accel_outer_core,kappavstore_outer_core,rhostore_outer_core,ibool_outer_core, &
-!ZN                        eps_trace_over_3_inner_core, &
-!ZN                        epsilondev_crust_mantle,epsilondev_inner_core, &
-!ZN                        LOCAL_PATH, &
-!ZN                        displ_crust_mantle,displ_inner_core,displ_outer_core, &
-!ZN                        veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
-!ZN                        accel_crust_mantle,accel_inner_core, &
-!ZN                        ibool_crust_mantle,ibool_inner_core)
+!!!!!! for undo_att this type of MOVIE is not supported 
+!!!        call write_movie_volume_divcurl(myrank,it,eps_trace_over_3_crust_mantle,&
+!!!                        div_displ_outer_core, &
+!!!                        accel_outer_core,kappavstore_outer_core,rhostore_outer_core,ibool_outer_core, &
+!!!                        eps_trace_over_3_inner_core, &
+!!!                        epsilondev_crust_mantle,epsilondev_inner_core, &
+!!!                        LOCAL_PATH, &
+!!!                        displ_crust_mantle,displ_inner_core,displ_outer_core, &
+!!!                        veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
+!!!                        accel_crust_mantle,accel_inner_core, &
+!!!                        ibool_crust_mantle,ibool_inner_core)
 
       else if (MOVIE_VOLUME_TYPE == 5) then ! output displacement
         scalingval = scale_displ

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_classical.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_classical.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_classical.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -39,10 +39,6 @@
     ! and output timestamp file to check that simulation is running fine
     if(mod(it,NTSTEP_BETWEEN_OUTPUT_INFO) == 0 .or. it == it_begin+4 .or. it == it_end) then
       if (SIMULATION_TYPE == 3) then
-!ZN        call check_simulation_stability(it,b_displ_crust_mantle,b_displ_inner_core,b_displ_outer_core, &
-!ZN                          eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!ZN                          SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
-!ZN                          it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
         call check_simulation_stability(it,b_displ_crust_mantle,b_displ_inner_core,b_displ_outer_core, &
                           SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
                           it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
@@ -141,30 +137,6 @@
                               absorb_zmin_outer_core, &
                               absorb_xmin_outer_core,absorb_xmax_outer_core, &
                               absorb_ymin_outer_core,absorb_ymax_outer_core)
-!      call compute_stacey_outer_core(ichunk,SIMULATION_TYPE,SAVE_FORWARD, &
-!                            NSTEP,it,ibool_outer_core, &
-!                            veloc_outer_core,accel_outer_core,b_accel_outer_core, &
-!                            vp_outer_core,wgllwgll_xz,wgllwgll_yz,wgllwgll_xy, &
-!                            jacobian2D_bottom_outer_core, &
-!                            jacobian2D_xmin_outer_core,jacobian2D_xmax_outer_core, &
-!                            jacobian2D_ymin_outer_core,jacobian2D_ymax_outer_core, &
-!                            ibelm_bottom_outer_core, &
-!                            ibelm_xmin_outer_core,ibelm_xmax_outer_core, &
-!                            ibelm_ymin_outer_core,ibelm_ymax_outer_core, &
-!                            nimin_outer_core,nimax_outer_core, &
-!                            njmin_outer_core,njmax_outer_core, &
-!                            nkmin_xi_outer_core,nkmin_eta_outer_core, &
-!                            NSPEC2D_BOTTOM, &
-!                            nspec2D_xmin_outer_core,nspec2D_xmax_outer_core, &
-!                            nspec2D_ymin_outer_core,nspec2D_ymax_outer_core, &
-!                            reclen_zmin, &
-!                            reclen_xmin_outer_core,reclen_xmax_outer_core, &
-!                            reclen_ymin_outer_core,reclen_ymax_outer_core, &
-!                            nabs_zmin_oc, &
-!                            nabs_xmin_oc,nabs_xmax_oc,nabs_ymin_oc,nabs_ymax_oc, &
-!                            absorb_zmin_outer_core, &
-!                            absorb_xmin_outer_core,absorb_xmax_outer_core, &
-!                            absorb_ymin_outer_core,absorb_ymax_outer_core)
       endif
     endif ! Stacey conditions
 
@@ -350,8 +322,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_veloc_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -392,8 +362,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_displ_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -430,7 +398,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -464,7 +431,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -492,27 +458,6 @@
                               nabs_xmin_cm,nabs_xmax_cm,nabs_ymin_cm,nabs_ymax_cm, &
                               absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
                               absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
-!      call compute_stacey_crust_mantle(ichunk, &
-!                            NSTEP,it,SAVE_FORWARD,ibool_crust_mantle, &
-!                            veloc_crust_mantle,b_accel_crust_mantle, &
-!                            jacobian2D_xmin_crust_mantle,jacobian2D_xmax_crust_mantle, &
-!                            jacobian2D_ymin_crust_mantle,jacobian2D_ymax_crust_mantle, &
-!                            wgllwgll_xz,wgllwgll_yz, &
-!                            normal_xmin_crust_mantle,normal_xmax_crust_mantle, &
-!                            normal_ymin_crust_mantle,normal_ymax_crust_mantle, &
-!                            rho_vp_crust_mantle,rho_vs_crust_mantle, &
-!                            ibelm_xmin_crust_mantle,ibelm_xmax_crust_mantle, &
-!                            ibelm_ymin_crust_mantle,ibelm_ymax_crust_mantle, &
-!                            nimin_crust_mantle,nimax_crust_mantle, &
-!                            njmin_crust_mantle,njmax_crust_mantle, &
-!                            nkmin_xi_crust_mantle,nkmin_eta_crust_mantle, &
-!                            nspec2D_xmin_crust_mantle,nspec2D_xmax_crust_mantle, &
-!                            nspec2D_ymin_crust_mantle,nspec2D_ymax_crust_mantle, &
-!                            reclen_xmin_crust_mantle,reclen_xmax_crust_mantle, &
-!                            reclen_ymin_crust_mantle,reclen_ymax_crust_mantle, &
-!                            nabs_xmin_cm,nabs_xmax_cm,nabs_ymin_cm,nabs_ymax_cm, &
-!                            absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
-!                            absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
       endif
     endif ! Stacey conditions
 
@@ -525,30 +470,6 @@
                                 hdur,xi_source,eta_source,gamma_source,nu_source)
     endif
 
-    ! NOISE_TOMOGRAPHY
-!   if ( NOISE_TOMOGRAPHY == 1 ) then
-!      ! the first step of noise tomography is to use |S(\omega)|^2 as a point force source at one of the receivers.
-!      ! hence, instead of a moment tensor 'sourcearrays', a 'noise_sourcearray' for a point force is needed.
-!      ! furthermore, the CMTSOLUTION needs to be zero, i.e., no earthquakes.
-!      ! now this must be manually set in DATA/CMTSOLUTION, by USERS.
-!      call add_source_master_rec_noise(myrank,nrec, &
-!                               NSTEP,accel_crust_mantle,noise_sourcearray, &
-!                               ibool_crust_mantle,islice_selected_rec,ispec_selected_rec, &
-!                               it,irec_master_noise)
-!   else if ( NOISE_TOMOGRAPHY == 2 ) then
-!      ! second step of noise tomography, i.e., read the surface movie saved at every timestep
-!      ! use the movie to drive the ensemble forward wavefield
-!      call noise_read_add_surface_movie(nmovie_points,accel_crust_mantle, &
-!                             normal_x_noise,normal_y_noise,normal_z_noise,mask_noise, &
-!                             ibelm_top_crust_mantle,ibool_crust_mantle, &
-!                             NSPEC2D_TOP(IREGION_CRUST_MANTLE),noise_surface_movie, &
-!                             NSTEP-it+1,jacobian2D_top_crust_mantle,wgllwgll_xy)
-!       ! be careful, since ensemble forward sources are reversals of generating wavefield "eta"
-!       ! hence the "NSTEP-it+1", i.e., start reading from the last timestep
-!       ! note the ensemble forward sources are generally distributed on the surface of the earth
-!       ! that's to say, the ensemble forward source is kind of a surface force density, not a body force density
-!       ! therefore, we must add it here, before applying the inverse of mass matrix
-!   else
     if ( NOISE_TOMOGRAPHY == 3 ) then
         ! third step of noise tomography, i.e., read the surface movie saved at every timestep
         ! use the movie to reconstruct the ensemble forward wavefield
@@ -677,8 +598,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_veloc_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -719,8 +638,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_displ_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -756,7 +673,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -790,7 +706,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -906,7 +821,6 @@
                     b_displ_inner_core,b_veloc_inner_core,b_accel_inner_core, &
                     b_displ_outer_core,b_veloc_outer_core,b_accel_outer_core, &
                     b_R_memory_crust_mantle,b_R_memory_inner_core, &
-!ZN                    b_epsilondev_crust_mantle,b_epsilondev_inner_core, &
                     b_A_array_rotation,b_B_array_rotation,LOCAL_PATH)
     endif
 
@@ -914,31 +828,6 @@
 
 ! store the seismograms only if there is at least one receiver located in this slice
   if (nrec_local > 0) then
-!   if (SIMULATION_TYPE == 1) then
-!     call compute_seismograms(nrec_local,nrec,displ_crust_mantle, &
-!                               nu,hxir_store,hetar_store,hgammar_store, &
-!                               scale_displ,ibool_crust_mantle, &
-!                               ispec_selected_rec,number_receiver_global, &
-!                               seismo_current,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
-!                               seismograms)
-
-!   else if (SIMULATION_TYPE == 2) then
-!     call compute_seismograms_adjoint(NSOURCES,nrec_local,displ_crust_mantle, &
-!                   eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!                   nu_source,Mxx,Myy,Mzz,Mxy,Mxz,Myz, &
-!                   hxir_store,hetar_store,hgammar_store, &
-!                   hpxir_store,hpetar_store,hpgammar_store, &
-!                   tshift_cmt,hdur_gaussian,DT,t0,scale_displ, &
-!                   hprime_xx,hprime_yy,hprime_zz, &
-!                   xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                   etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!                   gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!                   moment_der,sloc_der,stshift_der,shdur_der, &
-!                   NTSTEP_BETWEEN_OUTPUT_SEISMOS,seismograms,deltat, &
-!                   ibool_crust_mantle,ispec_selected_source,number_receiver_global, &
-!                   NSTEP,it,nit_written)
-
-!   else
     if (SIMULATION_TYPE == 3) then
       call compute_seismograms_backward(nrec_local,nrec,b_displ_crust_mantle, &
                                 nu,hxir_store,hetar_store,hgammar_store, &
@@ -968,12 +857,6 @@
         write(IMAIN,*) ' Total number of time steps written: ', it-it_begin+1
         write(IMAIN,*)
       endif
-!   else ! case of SIMULATION_TYPE == 2
-!     if( nrec_local > 0 ) &
-!       call write_adj_seismograms(seismograms,number_receiver_global, &
-!                                 nrec_local,it,nit_written,DT, &
-!                                 NSTEP,NTSTEP_BETWEEN_OUTPUT_SEISMOS,t0,LOCAL_PATH)
-!       nit_written = it
     endif
     seismo_offset = seismo_offset + seismo_current
     seismo_current = 0

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part2_undo_att.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -39,10 +39,6 @@
     ! and output timestamp file to check that simulation is running fine
     if(mod(it,NTSTEP_BETWEEN_OUTPUT_INFO) == 0 .or. it == it_begin+4 .or. it == it_end) then
       if (SIMULATION_TYPE == 3) then
-!ZN        call check_simulation_stability(it,b_displ_crust_mantle,b_displ_inner_core,b_displ_outer_core, &
-!ZN                          eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!ZN                          SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
-!ZN                          it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
         call check_simulation_stability(it,b_displ_crust_mantle,b_displ_inner_core,b_displ_outer_core, &
                           SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
                           it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
@@ -172,30 +168,6 @@
                               absorb_xmin_outer_core,absorb_xmax_outer_core, &
                               absorb_ymin_outer_core,absorb_ymax_outer_core)
 endif
-!      call compute_stacey_outer_core(ichunk,SIMULATION_TYPE,SAVE_FORWARD, &
-!                            NSTEP,it,ibool_outer_core, &
-!                            veloc_outer_core,accel_outer_core,b_accel_outer_core, &
-!                            vp_outer_core,wgllwgll_xz,wgllwgll_yz,wgllwgll_xy, &
-!                            jacobian2D_bottom_outer_core, &
-!                            jacobian2D_xmin_outer_core,jacobian2D_xmax_outer_core, &
-!                            jacobian2D_ymin_outer_core,jacobian2D_ymax_outer_core, &
-!                            ibelm_bottom_outer_core, &
-!                            ibelm_xmin_outer_core,ibelm_xmax_outer_core, &
-!                            ibelm_ymin_outer_core,ibelm_ymax_outer_core, &
-!                            nimin_outer_core,nimax_outer_core, &
-!                            njmin_outer_core,njmax_outer_core, &
-!                            nkmin_xi_outer_core,nkmin_eta_outer_core, &
-!                            NSPEC2D_BOTTOM, &
-!                            nspec2D_xmin_outer_core,nspec2D_xmax_outer_core, &
-!                            nspec2D_ymin_outer_core,nspec2D_ymax_outer_core, &
-!                            reclen_zmin, &
-!                            reclen_xmin_outer_core,reclen_xmax_outer_core, &
-!                            reclen_ymin_outer_core,reclen_ymax_outer_core, &
-!                            nabs_zmin_oc, &
-!                            nabs_xmin_oc,nabs_xmax_oc,nabs_ymin_oc,nabs_ymax_oc, &
-!                            absorb_zmin_outer_core, &
-!                            absorb_xmin_outer_core,absorb_xmax_outer_core, &
-!                            absorb_ymin_outer_core,absorb_ymax_outer_core)
       endif
     endif ! Stacey conditions
 
@@ -381,8 +353,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_veloc_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -423,8 +393,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_displ_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -461,7 +429,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -495,7 +462,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -546,27 +512,6 @@
                               absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
                               absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
 endif
-!      call compute_stacey_crust_mantle(ichunk, &
-!                            NSTEP,it,SAVE_FORWARD,ibool_crust_mantle, &
-!                            veloc_crust_mantle,b_accel_crust_mantle, &
-!                            jacobian2D_xmin_crust_mantle,jacobian2D_xmax_crust_mantle, &
-!                            jacobian2D_ymin_crust_mantle,jacobian2D_ymax_crust_mantle, &
-!                            wgllwgll_xz,wgllwgll_yz, &
-!                            normal_xmin_crust_mantle,normal_xmax_crust_mantle, &
-!                            normal_ymin_crust_mantle,normal_ymax_crust_mantle, &
-!                            rho_vp_crust_mantle,rho_vs_crust_mantle, &
-!                            ibelm_xmin_crust_mantle,ibelm_xmax_crust_mantle, &
-!                            ibelm_ymin_crust_mantle,ibelm_ymax_crust_mantle, &
-!                            nimin_crust_mantle,nimax_crust_mantle, &
-!                            njmin_crust_mantle,njmax_crust_mantle, &
-!                            nkmin_xi_crust_mantle,nkmin_eta_crust_mantle, &
-!                            nspec2D_xmin_crust_mantle,nspec2D_xmax_crust_mantle, &
-!                            nspec2D_ymin_crust_mantle,nspec2D_ymax_crust_mantle, &
-!                            reclen_xmin_crust_mantle,reclen_xmax_crust_mantle, &
-!                            reclen_ymin_crust_mantle,reclen_ymax_crust_mantle, &
-!                            nabs_xmin_cm,nabs_xmax_cm,nabs_ymin_cm,nabs_ymax_cm, &
-!                            absorb_xmin_crust_mantle5,absorb_xmax_crust_mantle5, &
-!                            absorb_ymin_crust_mantle5,absorb_ymax_crust_mantle5)
       endif
     endif ! Stacey conditions
 
@@ -587,30 +532,6 @@
 endif
     endif
 
-    ! NOISE_TOMOGRAPHY
-!   if ( NOISE_TOMOGRAPHY == 1 ) then
-!      ! the first step of noise tomography is to use |S(\omega)|^2 as a point force source at one of the receivers.
-!      ! hence, instead of a moment tensor 'sourcearrays', a 'noise_sourcearray' for a point force is needed.
-!      ! furthermore, the CMTSOLUTION needs to be zero, i.e., no earthquakes.
-!      ! now this must be manually set in DATA/CMTSOLUTION, by USERS.
-!      call add_source_master_rec_noise(myrank,nrec, &
-!                               NSTEP,accel_crust_mantle,noise_sourcearray, &
-!                               ibool_crust_mantle,islice_selected_rec,ispec_selected_rec, &
-!                               it,irec_master_noise)
-!   else if ( NOISE_TOMOGRAPHY == 2 ) then
-!      ! second step of noise tomography, i.e., read the surface movie saved at every timestep
-!      ! use the movie to drive the ensemble forward wavefield
-!      call noise_read_add_surface_movie(nmovie_points,accel_crust_mantle, &
-!                             normal_x_noise,normal_y_noise,normal_z_noise,mask_noise, &
-!                             ibelm_top_crust_mantle,ibool_crust_mantle, &
-!                             NSPEC2D_TOP(IREGION_CRUST_MANTLE),noise_surface_movie, &
-!                             NSTEP-it+1,jacobian2D_top_crust_mantle,wgllwgll_xy)
-!       ! be careful, since ensemble forward sources are reversals of generating wavefield "eta"
-!       ! hence the "NSTEP-it+1", i.e., start reading from the last timestep
-!       ! note the ensemble forward sources are generally distributed on the surface of the earth
-!       ! that's to say, the ensemble forward source is kind of a surface force density, not a body force density
-!       ! therefore, we must add it here, before applying the inverse of mass matrix
-!   else
 if(.not. UNDO_ATT)then
     if ( NOISE_TOMOGRAPHY == 3 ) then
         ! third step of noise tomography, i.e., read the surface movie saved at every timestep
@@ -741,8 +662,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_veloc_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -783,8 +702,6 @@
           c44store_crust_mantle,c45store_crust_mantle,c46store_crust_mantle, &
           c55store_crust_mantle,c56store_crust_mantle,c66store_crust_mantle, &
           ibool_crust_mantle,ispec_is_tiso_crust_mantle, &
-!ZN          b_R_memory_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN          b_eps_trace_over_3_crust_mantle,one_minus_sum_beta_crust_mantle, &
           b_R_memory_crust_mantle,one_minus_sum_beta_crust_mantle,b_deltat,b_displ_crust_mantle, &
           b_alphaval,b_betaval,b_gammaval,factor_common_crust_mantle, &
           size(factor_common_crust_mantle,2), size(factor_common_crust_mantle,3), &
@@ -820,7 +737,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -854,7 +770,6 @@
           kappavstore_inner_core,muvstore_inner_core,ibool_inner_core,idoubling_inner_core, &
           c11store_inner_core,c33store_inner_core,c12store_inner_core, &
           c13store_inner_core,c44store_inner_core, &
-!ZN          b_R_memory_inner_core,b_epsilondev_inner_core, b_eps_trace_over_3_inner_core,&
           b_R_memory_inner_core,one_minus_sum_beta_inner_core,b_deltat,b_veloc_inner_core, &
           b_alphaval,b_betaval,b_gammaval, &
           factor_common_inner_core, &
@@ -971,7 +886,6 @@
                     b_displ_inner_core,b_veloc_inner_core,b_accel_inner_core, &
                     b_displ_outer_core,b_veloc_outer_core,b_accel_outer_core, &
                     b_R_memory_crust_mantle,b_R_memory_inner_core, &
-!ZN                    b_epsilondev_crust_mantle,b_epsilondev_inner_core, &
                     b_A_array_rotation,b_B_array_rotation,LOCAL_PATH)
     endif
 endif
@@ -980,31 +894,6 @@
 
 ! store the seismograms only if there is at least one receiver located in this slice
   if (nrec_local > 0) then
-!   if (SIMULATION_TYPE == 1) then
-!     call compute_seismograms(nrec_local,nrec,displ_crust_mantle, &
-!                               nu,hxir_store,hetar_store,hgammar_store, &
-!                               scale_displ,ibool_crust_mantle, &
-!                               ispec_selected_rec,number_receiver_global, &
-!                               seismo_current,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
-!                               seismograms)
-
-!   else if (SIMULATION_TYPE == 2) then
-!     call compute_seismograms_adjoint(NSOURCES,nrec_local,displ_crust_mantle, &
-!                   eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
-!                   nu_source,Mxx,Myy,Mzz,Mxy,Mxz,Myz, &
-!                   hxir_store,hetar_store,hgammar_store, &
-!                   hpxir_store,hpetar_store,hpgammar_store, &
-!                   tshift_cmt,hdur_gaussian,DT,t0,scale_displ, &
-!                   hprime_xx,hprime_yy,hprime_zz, &
-!                   xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle, &
-!                   etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle, &
-!                   gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!                   moment_der,sloc_der,stshift_der,shdur_der, &
-!                   NTSTEP_BETWEEN_OUTPUT_SEISMOS,seismograms,deltat, &
-!                   ibool_crust_mantle,ispec_selected_source,number_receiver_global, &
-!                   NSTEP,it,nit_written)
-
-!   else
     if (SIMULATION_TYPE == 3) then
       call compute_seismograms_backward(nrec_local,nrec,b_displ_crust_mantle, &
                                 nu,hxir_store,hetar_store,hgammar_store, &
@@ -1045,12 +934,6 @@
         write(IMAIN,*) ' Total number of time steps written: ', it-it_begin+1
         write(IMAIN,*)
       endif
-!   else ! case of SIMULATION_TYPE == 2
-!     if( nrec_local > 0 ) &
-!       call write_adj_seismograms(seismograms,number_receiver_global, &
-!                                 nrec_local,it,nit_written,DT, &
-!                                 NSTEP,NTSTEP_BETWEEN_OUTPUT_SEISMOS,t0,LOCAL_PATH)
-!       nit_written = it
     endif
     seismo_offset = seismo_offset + seismo_current
     seismo_current = 0

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part3_kernel_computation.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part3_kernel_computation.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/part3_kernel_computation.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -9,8 +9,6 @@
                           rho_kl_crust_mantle,beta_kl_crust_mantle, &
                           alpha_kl_crust_mantle,cijkl_kl_crust_mantle, &
                           accel_crust_mantle,b_displ_crust_mantle, &
-!ZN                          epsilondev_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN                          eps_trace_over_3_crust_mantle,b_eps_trace_over_3_crust_mantle, &
                           deltat,displ_crust_mantle,hprime_xx,hprime_xxT,&
                           xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
                           etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
@@ -37,8 +35,6 @@
                           rho_kl_inner_core,beta_kl_inner_core, &
                           alpha_kl_inner_core, &
                           accel_inner_core,b_displ_inner_core, &
-!ZN                          epsilondev_inner_core,b_epsilondev_inner_core, &
-!ZN                          eps_trace_over_3_inner_core,b_eps_trace_over_3_inner_core, &
                           deltat,displ_inner_core,hprime_xx,hprime_xxT,&
                           xix_inner_core,xiy_inner_core,xiz_inner_core,&
                           etax_inner_core,etay_inner_core,etaz_inner_core,&

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/check_simulation_stability.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/check_simulation_stability.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/check_simulation_stability.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -26,7 +26,6 @@
 !=====================================================================
 
   subroutine check_simulation_stability(it,displ_crust_mantle,displ_inner_core,displ_outer_core, &
-!ZN                          eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
                           SIMULATION_TYPE,OUTPUT_FILES,time_start,DT,t0,NSTEP, &
                           it_begin,it_end,NUMBER_OF_THIS_RUN,NUMBER_OF_RUNS,myrank)
 
@@ -45,11 +44,6 @@
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: displ_inner_core
   real(kind=CUSTOM_REAL), dimension(NGLOB_OUTER_CORE) :: displ_outer_core
 
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STRAIN_ONLY) :: &
-!ZN    eps_trace_over_3_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) ::  &
-!ZN    epsilondev_crust_mantle
-
   integer SIMULATION_TYPE
   character(len=150) OUTPUT_FILES
 
@@ -58,7 +52,6 @@
   ! local parameters
   ! maximum of the norm of the displacement and of the potential in the fluid
   real(kind=CUSTOM_REAL) Usolidnorm,Usolidnorm_all,Ufluidnorm,Ufluidnorm_all
-!ZN  real(kind=CUSTOM_REAL) Strain_norm,Strain_norm_all,strain2_norm,strain2_norm_all
   ! names of the data files for all the processors in MPI
   character(len=150) outputname
   ! timer MPI
@@ -101,15 +94,6 @@
   call MPI_REDUCE(Ufluidnorm,Ufluidnorm_all,1,CUSTOM_MPI_TYPE,MPI_MAX,0, &
                       MPI_COMM_WORLD,ier)
 
-!ZN  if (COMPUTE_AND_STORE_STRAIN) then
-!ZN    Strain_norm = maxval(abs(eps_trace_over_3_crust_mantle))
-!ZN    strain2_norm= maxval(abs(epsilondev_crust_mantle))
-!ZN    call MPI_REDUCE(Strain_norm,Strain_norm_all,1,CUSTOM_MPI_TYPE,MPI_MAX,0, &
-!ZN             MPI_COMM_WORLD,ier)
-!ZN    call MPI_REDUCE(Strain2_norm,Strain2_norm_all,1,CUSTOM_MPI_TYPE,MPI_MAX,0, &
-!ZN             MPI_COMM_WORLD,ier)
-!ZN  endif
-
   if(myrank == 0) then
 
     write(IMAIN,*) 'Time step # ',it
@@ -126,11 +110,6 @@
     endif
 
 !! DK DK UNDO_ATT
-!   if(COMPUTE_AND_STORE_STRAIN) then
-!ZN    if(SIMULATION_TYPE == 1 .and. COMPUTE_AND_STORE_STRAIN) then
-!ZN      write(IMAIN,*) 'Max of strain, eps_trace_over_3_crust_mantle =',Strain_norm_all
-!ZN      write(IMAIN,*) 'Max of strain, epsilondev_crust_mantle  =',Strain2_norm_all
-!ZN    endif
 
     ! information about the current run only
     SHOW_SEPARATE_RUN_INFORMATION = NUMBER_OF_RUNS > 1 .and. NUMBER_OF_THIS_RUN < NUMBER_OF_RUNS

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_element.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_element.F90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_element.F90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -32,8 +32,7 @@
                     wgll_cube, &
                     kappavstore,muvstore, &
                     ibool, &
-!ZN                    R_memory,epsilon_trace_over_3, &
-                    R_memory, & !ZN
+                    R_memory, & 
                     one_minus_sum_beta,vx,vy,vz,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                     dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H)
@@ -73,7 +72,6 @@
   ! memory variables R_ij are stored at the local rather than global level
   ! to allow for optimization of cache access by compiler
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
-!ZN  real(kind=CUSTOM_REAL),dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilon_trace_over_3
 
   integer :: vx,vy,vz,vnspec
   real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec) :: one_minus_sum_beta
@@ -111,7 +109,6 @@
   double precision factor,sx_l,sy_l,sz_l,gxl,gyl,gzl
   double precision Hxxl,Hyyl,Hzzl,Hxyl,Hxzl,Hyzl
 
-!ZN  integer :: ispec_strain
   integer :: i,j,k
   integer :: int_radius
   integer :: iglob1
@@ -160,15 +157,6 @@
         ! compute deviatoric strain
         if (COMPUTE_AND_STORE_STRAIN) then
           templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-!ZN          if(NSPEC_CRUST_MANTLE_STRAIN_ONLY == 1) then
-!ZN            ispec_strain = 1
-!ZN!$OMP CRITICAL
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = templ
-!ZN!$OMP END CRITICAL
-!ZN          else
-!ZN            ispec_strain = ispec
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = templ
-!ZN          endif
           epsilondev_loc(1,i,j,k) = duxdxl - templ
           epsilondev_loc(2,i,j,k) = duydyl - templ
           epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
@@ -359,8 +347,7 @@
                     wgll_cube, &
                     kappavstore,kappahstore,muvstore,muhstore,eta_anisostore, &
                     ibool, &
-!ZN                    R_memory,epsilon_trace_over_3, &
-                    R_memory, & !ZN
+                    R_memory, & 
                     one_minus_sum_beta,vx,vy,vz,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                     dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H)
@@ -402,7 +389,6 @@
   ! memory variables R_ij are stored at the local rather than global level
   ! to allow for optimization of cache access by compiler
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
-!ZN  real(kind=CUSTOM_REAL),dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilon_trace_over_3
 
   integer vx,vy,vz,vnspec
 
@@ -456,7 +442,6 @@
   double precision Hxxl,Hyyl,Hzzl,Hxyl,Hxzl,Hyzl
   real(kind=CUSTOM_REAL) sigma_yx,sigma_zx,sigma_zy
 
-!ZN  integer :: ispec_strain
   integer :: i,j,k
   integer :: int_radius
   integer :: iglob1
@@ -505,15 +490,6 @@
         ! compute deviatoric strain
         if (COMPUTE_AND_STORE_STRAIN) then
           templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-!ZN          if(NSPEC_CRUST_MANTLE_STRAIN_ONLY == 1) then
-!ZN            ispec_strain = 1
-!ZN!$OMP CRITICAL
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = templ
-!ZN!$OMP END CRITICAL
-!ZN          else
-!ZN            ispec_strain = ispec
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = templ
-!ZN          endif
           epsilondev_loc(1,i,j,k) = duxdxl - templ
           epsilondev_loc(2,i,j,k) = duydyl - templ
           epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
@@ -897,7 +873,6 @@
                     c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
                     c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
                     ibool, &
-!ZN                    R_memory,epsilon_trace_over_3, &
                     R_memory, &
                     one_minus_sum_beta,vx,vy,vz,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
@@ -940,7 +915,6 @@
   ! memory variables R_ij are stored at the local rather than global level
   ! to allow for optimization of cache access by compiler
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
-!ZN  real(kind=CUSTOM_REAL),dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilon_trace_over_3
 
   integer vx,vy,vz,vnspec
 
@@ -981,7 +955,6 @@
   double precision Hxxl,Hyyl,Hzzl,Hxyl,Hxzl,Hyzl
   real(kind=CUSTOM_REAL) sigma_yx,sigma_zx,sigma_zy
 
-!ZN  integer :: ispec_strain
   integer :: i,j,k
   integer :: int_radius
   integer :: iglob1
@@ -1030,15 +1003,6 @@
         ! compute deviatoric strain
         if (COMPUTE_AND_STORE_STRAIN) then
           templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-!ZN          if(NSPEC_CRUST_MANTLE_STRAIN_ONLY == 1) then
-!ZN            ispec_strain = 1
-!ZN!$OMP CRITICAL
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = templ
-!ZN!$OMP END CRITICAL
-!ZN          else
-!ZN            ispec_strain = ispec
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = templ
-!ZN          endif
           epsilondev_loc(1,i,j,k) = duxdxl - templ
           epsilondev_loc(2,i,j,k) = duydyl - templ
           epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
@@ -1296,7 +1260,6 @@
                                         vx,vy,vz,vnspec,factor_common, &
                                         alphaval,betaval,gammaval, &
                                         c44store,muvstore, &
-!ZN                                        epsilondev,epsilondev_loc)
                                         epsilondev_loc_nplus1,epsilondev_loc)
 ! crust mantle
 ! update memory variables based upon the Runge-Kutta scheme
@@ -1335,7 +1298,6 @@
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPECMAX_ANISO_MANTLE) :: c44store
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPECMAX_ISO_MANTLE) :: muvstore
 
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilondev
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
 
@@ -1362,9 +1324,6 @@
     endif
 
     do i_memory = 1,5
-!ZN      R_memory(i_memory,i_SLS,:,:,:,ispec) = alphaval(i_SLS) * R_memory(i_memory,i_SLS,:,:,:,ispec) &
-!ZN                + factor_common_c44_muv(:,:,:) &
-!ZN                * (betaval(i_SLS) * epsilondev(i_memory,:,:,:,ispec) + gammaval(i_SLS) * epsilondev_loc(i_memory,:,:,:))
       R_memory(i_memory,i_SLS,:,:,:,ispec) = alphaval(i_SLS) * R_memory(i_memory,i_SLS,:,:,:,ispec) &
                 + factor_common_c44_muv(:,:,:) &
                 * (betaval(i_SLS) * epsilondev_loc(i_memory,:,:,:) + gammaval(i_SLS) * epsilondev_loc_nplus1(i_memory,:,:,:))
@@ -1381,8 +1340,7 @@
                                         vx,vy,vz,vnspec,factor_common, &
                                         alphaval,betaval,gammaval, &
                                         muvstore, &
-!ZN                                        epsilondev,epsilondev_loc)
-                                        epsilondev_loc_nplus1,epsilondev_loc) !ZN
+                                        epsilondev_loc_nplus1,epsilondev_loc) 
 ! inner core
 ! update memory variables based upon the Runge-Kutta scheme
 
@@ -1419,7 +1377,6 @@
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: muvstore
 
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: epsilondev
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1
 
@@ -1441,8 +1398,7 @@
     do i_memory = 1,5
        R_memory(i_memory,i_SLS,:,:,:,ispec) = alphaval(i_SLS) * R_memory(i_memory,i_SLS,:,:,:,ispec) &
             + muvstore(:,:,:,ispec) * factor_common_use(:,:,:) * &
-!ZN            (betaval(i_SLS) * epsilondev(i_memory,:,:,:,ispec) + gammaval(i_SLS) * epsilondev_loc(i_memory,:,:,:))
-            (betaval(i_SLS) * epsilondev_loc_nplus1(i_memory,:,:,:) + gammaval(i_SLS) * epsilondev_loc(i_memory,:,:,:)) !ZN
+            (betaval(i_SLS) * epsilondev_loc_nplus1(i_memory,:,:,:) + gammaval(i_SLS) * epsilondev_loc(i_memory,:,:,:)) 
     enddo
   enddo
 

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_Dev.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_Dev.F90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_Dev.F90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -52,7 +52,6 @@
           c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
           c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
           ibool,ispec_is_tiso, &
-!ZN          R_memory,epsilondev,epsilon_trace_over_3,one_minus_sum_beta, &
           R_memory,one_minus_sum_beta,deltat,veloc_crust_mantle, &
           alphaval,betaval,gammaval,factor_common,vx,vy,vz,vnspec)
 
@@ -103,8 +102,6 @@
   ! memory variables R_ij are stored at the local rather than global level
   ! to allow for optimization of cache access by compiler
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilondev
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilon_trace_over_3
 
   integer :: vx,vy,vz,vnspec
 
@@ -160,7 +157,7 @@
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NGLLZ) :: sum_terms
 
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1 !ZN
+  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1
   real(kind=CUSTOM_REAL) fac1,fac2,fac3
 
   ! for gravity
@@ -414,7 +411,6 @@
                     c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
                     c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
                     ibool, &
-!ZN                    R_memory,epsilon_trace_over_3, &
                     R_memory, &
                     one_minus_sum_beta,vx,vy,vz,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
@@ -429,8 +425,7 @@
                     wgll_cube, &
                     kappavstore,muvstore, &
                     ibool, &
-!ZN                    R_memory,epsilon_trace_over_3, &
-                    R_memory, & !ZN
+                    R_memory, &
                     one_minus_sum_beta,vx,vy,vz,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                     dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H)
@@ -443,8 +438,7 @@
                     wgll_cube, &
                     kappavstore,kappahstore,muvstore,muhstore,eta_anisostore, &
                     ibool, &
-!ZN                    R_memory,epsilon_trace_over_3, &
-                    R_memory, & !ZN
+                    R_memory, & 
                     one_minus_sum_beta,vx,vy,vz,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                     dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H)
@@ -576,15 +570,10 @@
                                       vx,vy,vz,vnspec,factor_common, &
                                       alphaval,betaval,gammaval, &
                                       c44store,muvstore, &
-!ZN                                      epsilondev,epsilondev_loc)
                                       epsilondev_loc_nplus1,epsilondev_loc)
 
     endif
 
-    ! save deviatoric strain for Runge-Kutta scheme
-!ZN    if(COMPUTE_AND_STORE_STRAIN) then
-!ZN      epsilondev(:,:,:,:,ispec) = epsilondev_loc(:,:,:,:)
-!ZN    endif
 ! end ispec loop
    enddo
 !$OMP enddo

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_noDev.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_noDev.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_crust_mantle_noDev.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -52,8 +52,7 @@
           c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
           c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
           ibool,ispec_is_tiso, &
-!ZN          R_memory,epsilondev,epsilon_trace_over_3,one_minus_sum_beta, &
-          R_memory,one_minus_sum_beta,deltat,veloc_crust_mantle, &  !ZN
+          R_memory,one_minus_sum_beta,deltat,veloc_crust_mantle, & 
           alphaval,betaval,gammaval,factor_common,vx,vy,vz,vnspec)
 
   implicit none
@@ -89,7 +88,7 @@
   logical, dimension(NSPEC_CRUST_MANTLE) :: ispec_is_tiso
 
 ! displacement and acceleration
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: displ_crust_mantle,accel_crust_mantle,veloc_crust_mantle !ZN
+  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: displ_crust_mantle,accel_crust_mantle,veloc_crust_mantle
 
 ! memory variables for attenuation
 ! memory variables R_ij are stored at the local rather than global level
@@ -98,13 +97,12 @@
 ! variable sized array variables for one_minus_sum_beta and factor_common
   integer vx, vy, vz, vnspec
 
-  real(kind=CUSTOM_REAL) one_minus_sum_beta_use,minus_sum_beta,deltat !ZN
+  real(kind=CUSTOM_REAL) one_minus_sum_beta_use,minus_sum_beta,deltat 
   real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec) :: one_minus_sum_beta
 
 ! for attenuation
   real(kind=CUSTOM_REAL) R_xx_val,R_yy_val
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilondev
 
 ! [alpha,beta,gamma]val reduced to N_SLS and factor_common to N_SLS*NUM_NODES
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval,betaval,gammaval
@@ -113,7 +111,6 @@
 
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1
-!ZN  real(kind=CUSTOM_REAL),dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilon_trace_over_3
 
 ! arrays with mesh parameters per slice
   integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool
@@ -383,12 +380,10 @@
             else
               ispec_strain = ispec
             endif
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-!ZN            epsilondev_loc(1,i,j,k) = duxdxl - epsilon_trace_over_3(i,j,k,ispec_strain)
-!ZN            epsilondev_loc(2,i,j,k) = duydyl - epsilon_trace_over_3(i,j,k,ispec_strain)
-            templ = ONE_THIRD * (duxdxl + duydyl + duzdzl) !ZN
-            epsilondev_loc(1,i,j,k) = duxdxl - templ !ZN
-            epsilondev_loc(2,i,j,k) = duydyl - templ !ZN
+
+            templ = ONE_THIRD * (duxdxl + duydyl + duzdzl) 
+            epsilondev_loc(1,i,j,k) = duxdxl - templ 
+            epsilondev_loc(2,i,j,k) = duydyl - templ 
             epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
             epsilondev_loc(4,i,j,k) = 0.5 * duzdxl_plus_duxdzl
             epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_Dev.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_Dev.F90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_Dev.F90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -47,7 +47,6 @@
           hprime_xx,hprime_xxT,hprimewgll_xx,hprimewgll_xxT, &
           wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
           kappavstore,muvstore,ibool,idoubling, &
-!ZN          c11store,c33store,c12store,c13store,c44store,R_memory,epsilondev,epsilon_trace_over_3,&
           c11store,c33store,c12store,c13store,c44store,R_memory,one_minus_sum_beta,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval,factor_common, &
           vx,vy,vz,vnspec)
@@ -85,8 +84,6 @@
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval,betaval,gammaval
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ATTENUATION) :: R_memory
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: epsilondev
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: epsilon_trace_over_3
 
   ! array with derivatives of Lagrange polynomials and precalculated products
   double precision, dimension(NGLLX,NGLLY,NGLLZ) :: wgll_cube
@@ -146,7 +143,7 @@
 
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NGLLZ) :: sum_terms
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1 !ZN
+  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1 
 
   real(kind=CUSTOM_REAL) xixl,xiyl,xizl,etaxl,etayl,etazl,gammaxl,gammayl,gammazl,jacobianl
   real(kind=CUSTOM_REAL) duxdxl,duxdyl,duxdzl,duydxl,duydyl,duydzl,duzdxl,duzdyl,duzdzl
@@ -408,21 +405,20 @@
             duzdxl_plus_duxdzl = duzdxl + duxdzl
             duzdyl_plus_duydzl = duzdyl + duydzl
 
-!ZN            ! compute deviatoric strain
-!ZN            if (COMPUTE_AND_STORE_STRAIN) then
-!ZN              if(NSPEC_INNER_CORE_STRAIN_ONLY == 1) then
-!ZN                ispec_strain = 1
-!ZN              else
-!ZN                ispec_strain = ispec
-!ZN              endif
-!ZN              templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-!ZN              epsilon_trace_over_3(i,j,k,ispec_strain) = templ
-!ZN              epsilondev_loc(1,i,j,k) = duxdxl - templ
-!ZN              epsilondev_loc(2,i,j,k) = duydyl - templ
-!ZN              epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
-!ZN              epsilondev_loc(4,i,j,k) = 0.5 * duzdxl_plus_duxdzl
-!ZN              epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl
-!ZN            endif
+            if (COMPUTE_AND_STORE_STRAIN) then
+              if(NSPEC_INNER_CORE_STRAIN_ONLY == 1) then
+                ispec_strain = 1
+              else
+                ispec_strain = ispec
+              endif
+              templ = ONE_THIRD * (duxdxl + duydyl + duzdzl)
+              epsilon_trace_over_3(i,j,k,ispec_strain) = templ
+              epsilondev_loc(1,i,j,k) = duxdxl - templ
+              epsilondev_loc(2,i,j,k) = duydyl - templ
+              epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
+              epsilondev_loc(4,i,j,k) = 0.5 * duzdxl_plus_duxdzl
+              epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl
+            endif
 
             if(ATTENUATION_VAL) then
               minus_sum_beta =  one_minus_sum_beta(i,j,k,ispec) - 1.0
@@ -759,17 +755,11 @@
                                       vx,vy,vz,vnspec,factor_common, &
                                       alphaval,betaval,gammaval, &
                                       muvstore, &
-!ZN                                      epsilondev,epsilondev_loc)
-                                      epsilondev_loc_nplus1,epsilondev_loc) !ZN
+                                      epsilondev_loc_nplus1,epsilondev_loc) 
 
 
       endif
 
-!ZN      ! save deviatoric strain for Runge-Kutta scheme
-!ZN      if(COMPUTE_AND_STORE_STRAIN) then
-!ZN        epsilondev(:,:,:,:,ispec) = epsilondev_loc(:,:,:,:)
-!ZN      endif
-
     endif   ! end test to exclude fictitious elements in central cube
 
   enddo ! spectral element loop

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_noDev.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_noDev.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_forces_inner_core_noDev.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -48,7 +48,6 @@
           hprimewgll_xx,hprimewgll_yy,hprimewgll_zz, &
           wgllwgll_xy,wgllwgll_xz,wgllwgll_yz,wgll_cube, &
           kappavstore,muvstore,ibool,idoubling, &
-!ZN          c11store,c33store,c12store,c13store,c44store,R_memory,epsilondev,epsilon_trace_over_3,&
           c11store,c33store,c12store,c13store,c44store,R_memory,one_minus_sum_beta,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval,factor_common, &
           vx,vy,vz,vnspec)
@@ -82,9 +81,7 @@
   real(kind=CUSTOM_REAL), dimension(NGLLX, NGLLY, NGLLZ) :: factor_common_use
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ATTENUATION) :: R_memory
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: epsilondev
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc,epsilondev_loc_nplus1 !ZN
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: epsilon_trace_over_3
+  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc,epsilondev_loc_nplus1 
 
 ! array with the local to global mapping per slice
   integer, dimension(NSPEC_INNER_CORE) :: idoubling
@@ -341,12 +338,9 @@
             else
               ispec_strain = ispec
             endif
-!ZN            epsilon_trace_over_3(i,j,k,ispec_strain) = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-!ZN            epsilondev_loc(1,i,j,k) = duxdxl - epsilon_trace_over_3(i,j,k,ispec_strain)
-!ZN            epsilondev_loc(2,i,j,k) = duydyl - epsilon_trace_over_3(i,j,k,ispec_strain)
-            templ = ONE_THIRD * (duxdxl + duydyl + duzdzl) !ZN
-            epsilondev_loc(1,i,j,k) = duxdxl - templ !ZN
-            epsilondev_loc(2,i,j,k) = duydyl - templ !ZN
+            templ = ONE_THIRD * (duxdxl + duydyl + duzdzl) 
+            epsilondev_loc(1,i,j,k) = duxdxl - templ 
+            epsilondev_loc(2,i,j,k) = duydyl - templ 
             epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
             epsilondev_loc(4,i,j,k) = 0.5 * duzdxl_plus_duxdzl
             epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl
@@ -663,25 +657,12 @@
                   R_memory(i_memory,i_SLS,:,:,:,ispec) + muvstore(:,:,:,ispec) * &
                   factor_common_use * &
                   (betaval(i_SLS) * &
-!ZN                  epsilondev(i_memory,:,:,:,ispec) + gammaval(i_SLS) * epsilondev_loc(i_memory,:,:,:))
-                  epsilondev_loc_nplus1(i_memory,:,:,:) + gammaval(i_SLS) * epsilondev_loc(i_memory,:,:,:)) !ZN
+                  epsilondev_loc_nplus1(i_memory,:,:,:) + gammaval(i_SLS) * epsilondev_loc(i_memory,:,:,:)) 
         enddo
       enddo
 
     endif
 
-!ZN    if (COMPUTE_AND_STORE_STRAIN) then
-!ZN! save deviatoric strain for Runge-Kutta scheme
-!ZN      !epsilondev(:,:,:,:,ispec) = epsilondev_loc(:,:,:,:)
-!ZN      do k=1,NGLLZ
-!ZN        do j=1,NGLLY
-!ZN          do i=1,NGLLX
-!ZN            epsilondev(:,i,j,k,ispec) = epsilondev_loc(:,i,j,k)
-!ZN          enddo
-!ZN        enddo
-!ZN      enddo
-!ZN    endif
-
   endif   ! end test to exclude fictitious elements in central cube
 
   enddo ! spectral element loop

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_kernels.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_kernels.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_kernels.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -30,8 +30,6 @@
                           rho_kl_crust_mantle,beta_kl_crust_mantle, &
                           alpha_kl_crust_mantle,cijkl_kl_crust_mantle, &
                           accel_crust_mantle,b_displ_crust_mantle, &
-!ZN                          epsilondev_crust_mantle,b_epsilondev_crust_mantle, &
-!ZN                          eps_trace_over_3_crust_mantle,b_eps_trace_over_3_crust_mantle, &
                           deltat,displ_crust_mantle,hprime_xx,hprime_xxT,&
                           xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz)
 
@@ -54,16 +52,6 @@
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE_ADJOINT) :: &
     b_displ_crust_mantle
 
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) :: &
-!ZN     epsilondev_crust_mantle
-!ZN   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ADJOINT) :: &
-!ZN     b_epsilondev_crust_mantle
-
-!ZN   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STRAIN_ONLY) :: &
-!ZN     eps_trace_over_3_crust_mantle
-!ZN   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ADJOINT) :: &
-!ZN     b_eps_trace_over_3_crust_mantle
-
   real(kind=CUSTOM_REAL) deltat
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLX) :: hprime_xx,hprime_xxT
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: &
@@ -114,17 +102,12 @@
              + accel_crust_mantle(2,iglob) * b_displ_crust_mantle(2,iglob) &
              + accel_crust_mantle(3,iglob) * b_displ_crust_mantle(3,iglob) )
 
-!ZN          epsilondev_loc(:) = epsilondev_crust_mantle(:,i,j,k,ispec)
-!ZN          b_epsilondev_loc(:) = b_epsilondev_crust_mantle(:,i,j,k,ispec)
           epsilondev_loc(:) = epsilondev_loc_matrix(:,i,j,k)
           b_epsilondev_loc(:) = b_epsilondev_loc_matrix(:,i,j,k)
 
           ! For anisotropic kernels
           if (ANISOTROPIC_KL) then
 
-!ZN            call compute_strain_product(prod,eps_trace_over_3_crust_mantle(i,j,k,ispec),epsilondev_loc, &
-!ZN                                        b_eps_trace_over_3_crust_mantle(i,j,k,ispec),b_epsilondev_loc)
-
             call compute_strain_product(prod,eps_trace_over_3_loc_matrix(i,j,k),epsilondev_loc, &
                                         b_eps_trace_over_3_loc_matrix(i,j,k),b_epsilondev_loc)
             cijkl_kl_crust_mantle(:,i,j,k,ispec) = cijkl_kl_crust_mantle(:,i,j,k,ispec) + deltat * prod(:)
@@ -142,9 +125,6 @@
 
             ! kernel for bulk modulus, see e.g. Tromp et al. (2005), equation (18)
             ! note: multiplication with kappa(x) will be done after the time loop
-!ZN            alpha_kl_crust_mantle(i,j,k,ispec) = alpha_kl_crust_mantle(i,j,k,ispec) &
-!ZN               + deltat * (9 * eps_trace_over_3_crust_mantle(i,j,k,ispec) &
-!ZN                             * b_eps_trace_over_3_crust_mantle(i,j,k,ispec))
             alpha_kl_crust_mantle(i,j,k,ispec) = alpha_kl_crust_mantle(i,j,k,ispec) &
                + deltat * (9 * eps_trace_over_3_loc_matrix(i,j,k) &
                              * b_eps_trace_over_3_loc_matrix(i,j,k))
@@ -473,8 +453,6 @@
                           rho_kl_inner_core,beta_kl_inner_core, &
                           alpha_kl_inner_core, &
                           accel_inner_core,b_displ_inner_core, &
-!ZN                          epsilondev_inner_core,b_epsilondev_inner_core, &
-!ZN                          eps_trace_over_3_inner_core,b_eps_trace_over_3_inner_core, &
                           deltat,displ_inner_core,hprime_xx,hprime_xxT,&
                           xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz)
 
@@ -494,16 +472,6 @@
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE_ADJOINT) :: &
     b_displ_inner_core
 
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_OR_ATT) :: &
-!ZN    epsilondev_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ADJOINT) :: &
-!ZN    b_epsilondev_inner_core
-
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STRAIN_ONLY) :: &
-!ZN    eps_trace_over_3_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ADJOINT) :: &
-!ZN    b_eps_trace_over_3_inner_core
-
   real(kind=CUSTOM_REAL) deltat
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLX) :: hprime_xx,hprime_xxT
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: &
@@ -542,9 +510,6 @@
              + accel_inner_core(2,iglob) * b_displ_inner_core(2,iglob) &
              + accel_inner_core(3,iglob) * b_displ_inner_core(3,iglob) )
 
-!ZN          epsilondev_loc(:) = epsilondev_inner_core(:,i,j,k,ispec)
-!ZN          b_epsilondev_loc(:) = b_epsilondev_inner_core(:,i,j,k,ispec)
-
           epsilondev_loc(:) = epsilondev_loc_matrix(:,i,j,k)
           b_epsilondev_loc(:) = b_epsilondev_loc_matrix(:,i,j,k)
 
@@ -554,8 +519,6 @@
                 + 2 * (epsilondev_loc(3)*b_epsilondev_loc(3) + epsilondev_loc(4)*b_epsilondev_loc(4) &
                 + epsilondev_loc(5)*b_epsilondev_loc(5)) )
 
-!ZN          alpha_kl_inner_core(i,j,k,ispec) = alpha_kl_inner_core(i,j,k,ispec) &
-!ZN             + deltat * (9 * eps_trace_over_3_inner_core(i,j,k,ispec) * b_eps_trace_over_3_inner_core(i,j,k,ispec))
           alpha_kl_inner_core(i,j,k,ispec) = alpha_kl_inner_core(i,j,k,ispec) &
                 + deltat * (9 * eps_trace_over_3_loc_matrix(i,j,k) * b_eps_trace_over_3_loc_matrix(i,j,k))
         enddo
@@ -1053,327 +1016,3 @@
 
 
   end subroutine compute_kernels_hessian
-
-!=====================================================================
-
-  subroutine compute_strain_crust_mantle(displ_crust_mantle,hprime_xx,hprime_yy,hprime_zz,ibool,&
-          xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz, &
-          epsilondev,epsilon_trace_over_3)
-
-  implicit none
-
-  include "constants.h"
-
-! include values created by the mesher
-! done for performance only using static allocation to allow for loop unrolling
-  include "OUTPUT_FILES/values_from_mesher.h"
-
-! array with derivatives of Lagrange polynomials and precalculated products
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLX) :: hprime_xx
-  real(kind=CUSTOM_REAL), dimension(NGLLY,NGLLY) :: hprime_yy
-  real(kind=CUSTOM_REAL), dimension(NGLLZ,NGLLZ) :: hprime_zz
-
-
-! arrays with mesh parameters per slice
-  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: &
-        xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz
-
-  real(kind=CUSTOM_REAL),dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilon_trace_over_3
-
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilondev
-
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: displ_crust_mantle
-
-!local parameters
-  integer ispec,iglob,ispec_strain
-  integer i,j,k,l
-
-  real(kind=CUSTOM_REAL) tempx1l,tempx2l,tempx3l
-  real(kind=CUSTOM_REAL) tempy1l,tempy2l,tempy3l
-  real(kind=CUSTOM_REAL) tempz1l,tempz2l,tempz3l
-
-  real(kind=CUSTOM_REAL) hp1,hp2,hp3
-
-  real(kind=CUSTOM_REAL) xixl,xiyl,xizl,etaxl,etayl,etazl,gammaxl,gammayl,gammazl,jacobianl
-
-  real(kind=CUSTOM_REAL) duxdxl,duxdyl,duxdzl,duydxl,duydyl,duydzl,duzdxl,duzdyl,duzdzl
-
-  real(kind=CUSTOM_REAL) duxdxl_plus_duydyl,duxdxl_plus_duzdzl,duydyl_plus_duzdzl
-  real(kind=CUSTOM_REAL) duxdyl_plus_duydxl,duzdxl_plus_duxdzl,duzdyl_plus_duydzl
-
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
-
-
-  do ispec = 1,NSPEC_CRUST_MANTLE
-
-    do k=1,NGLLZ
-      do j=1,NGLLY
-        do i=1,NGLLX
-
-          tempx1l = 0._CUSTOM_REAL
-          tempx2l = 0._CUSTOM_REAL
-          tempx3l = 0._CUSTOM_REAL
-
-          tempy1l = 0._CUSTOM_REAL
-          tempy2l = 0._CUSTOM_REAL
-          tempy3l = 0._CUSTOM_REAL
-
-          tempz1l = 0._CUSTOM_REAL
-          tempz2l = 0._CUSTOM_REAL
-          tempz3l = 0._CUSTOM_REAL
-
-          do l=1,NGLLX
-            hp1 = hprime_xx(i,l)
-            iglob = ibool(l,j,k,ispec)
-            tempx1l = tempx1l + displ_crust_mantle(1,iglob)*hp1
-            tempy1l = tempy1l + displ_crust_mantle(2,iglob)*hp1
-            tempz1l = tempz1l + displ_crust_mantle(3,iglob)*hp1
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          enddo
-
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          do l=1,NGLLY
-            hp2 = hprime_yy(j,l)
-            iglob = ibool(i,l,k,ispec)
-            tempx2l = tempx2l + displ_crust_mantle(1,iglob)*hp2
-            tempy2l = tempy2l + displ_crust_mantle(2,iglob)*hp2
-            tempz2l = tempz2l + displ_crust_mantle(3,iglob)*hp2
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          enddo
-
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          do l=1,NGLLZ
-            hp3 = hprime_zz(k,l)
-            iglob = ibool(i,j,l,ispec)
-            tempx3l = tempx3l + displ_crust_mantle(1,iglob)*hp3
-            tempy3l = tempy3l + displ_crust_mantle(2,iglob)*hp3
-            tempz3l = tempz3l + displ_crust_mantle(3,iglob)*hp3
-          enddo
-
-!         get derivatives of ux, uy and uz with respect to x, y and z
-
-          xixl = xix(i,j,k,ispec)
-          xiyl = xiy(i,j,k,ispec)
-          xizl = xiz(i,j,k,ispec)
-          etaxl = etax(i,j,k,ispec)
-          etayl = etay(i,j,k,ispec)
-          etazl = etaz(i,j,k,ispec)
-          gammaxl = gammax(i,j,k,ispec)
-          gammayl = gammay(i,j,k,ispec)
-          gammazl = gammaz(i,j,k,ispec)
-
-! compute the jacobian
-          jacobianl = 1._CUSTOM_REAL / (xixl*(etayl*gammazl-etazl*gammayl) &
-                        - xiyl*(etaxl*gammazl-etazl*gammaxl) &
-                        + xizl*(etaxl*gammayl-etayl*gammaxl))
-
-          duxdxl = xixl*tempx1l + etaxl*tempx2l + gammaxl*tempx3l
-          duxdyl = xiyl*tempx1l + etayl*tempx2l + gammayl*tempx3l
-          duxdzl = xizl*tempx1l + etazl*tempx2l + gammazl*tempx3l
-
-          duydxl = xixl*tempy1l + etaxl*tempy2l + gammaxl*tempy3l
-          duydyl = xiyl*tempy1l + etayl*tempy2l + gammayl*tempy3l
-          duydzl = xizl*tempy1l + etazl*tempy2l + gammazl*tempy3l
-
-          duzdxl = xixl*tempz1l + etaxl*tempz2l + gammaxl*tempz3l
-          duzdyl = xiyl*tempz1l + etayl*tempz2l + gammayl*tempz3l
-          duzdzl = xizl*tempz1l + etazl*tempz2l + gammazl*tempz3l
-
-! precompute some sums to save CPU time
-          duxdxl_plus_duydyl = duxdxl + duydyl
-          duxdxl_plus_duzdzl = duxdxl + duzdzl
-          duydyl_plus_duzdzl = duydyl + duzdzl
-          duxdyl_plus_duydxl = duxdyl + duydxl
-          duzdxl_plus_duxdzl = duzdxl + duxdzl
-          duzdyl_plus_duydzl = duzdyl + duydzl
-
-! compute deviatoric strain
-          if(NSPEC_CRUST_MANTLE_STRAIN_ONLY == 1) then
-            ispec_strain = 1
-          else
-            ispec_strain = ispec
-          endif
-          epsilon_trace_over_3(i,j,k,ispec_strain) = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-          epsilondev_loc(1,i,j,k) = duxdxl - epsilon_trace_over_3(i,j,k,ispec_strain)
-          epsilondev_loc(2,i,j,k) = duydyl - epsilon_trace_over_3(i,j,k,ispec_strain)
-          epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
-          epsilondev_loc(4,i,j,k) = 0.5 * duzdxl_plus_duxdzl
-          epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl
-
-        enddo ! NGLLX
-      enddo ! NGLLY
-    enddo ! NGLLZ
-
-    !epsilondev(:,:,:,:,ispec) = epsilondev_loc(:,:,:,:)
-    do k=1,NGLLZ
-      do j=1,NGLLY
-        do i=1,NGLLX
-          epsilondev(:,i,j,k,ispec) = epsilondev_loc(:,i,j,k)
-        enddo
-      enddo
-    enddo
-
-  enddo   ! spectral element loop NSPEC_CRUST_MANTLE
-
-  end subroutine compute_strain_crust_mantle
-
-
-!=====================================================================
-
-  subroutine compute_strain_inner_core(displ_inner_core,hprime_xx,hprime_yy,hprime_zz,ibool,&
-          xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz, &
-          epsilondev,epsilon_trace_over_3)
-
-  implicit none
-
-  include "constants.h"
-
-! include values created by the mesher
-! done for performance only using static allocation to allow for loop unrolling
-  include "OUTPUT_FILES/values_from_mesher.h"
-
-! array with derivatives of Lagrange polynomials and precalculated products
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLX) :: hprime_xx
-  real(kind=CUSTOM_REAL), dimension(NGLLY,NGLLY) :: hprime_yy
-  real(kind=CUSTOM_REAL), dimension(NGLLZ,NGLLZ) :: hprime_zz
-
-
-! arrays with mesh parameters per slice
-  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: ibool
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: &
-        xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz
-
-  real(kind=CUSTOM_REAL),dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: epsilon_trace_over_3
-
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: epsilondev
-
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: displ_inner_core
-
-!local parameters
-  integer ispec,iglob,ispec_strain
-  integer i,j,k,l
-
-  real(kind=CUSTOM_REAL) tempx1l,tempx2l,tempx3l
-  real(kind=CUSTOM_REAL) tempy1l,tempy2l,tempy3l
-  real(kind=CUSTOM_REAL) tempz1l,tempz2l,tempz3l
-
-  real(kind=CUSTOM_REAL) hp1,hp2,hp3
-
-  real(kind=CUSTOM_REAL) xixl,xiyl,xizl,etaxl,etayl,etazl,gammaxl,gammayl,gammazl,jacobianl
-
-  real(kind=CUSTOM_REAL) duxdxl,duxdyl,duxdzl,duydxl,duydyl,duydzl,duzdxl,duzdyl,duzdzl
-
-  real(kind=CUSTOM_REAL) duxdxl_plus_duydyl,duxdxl_plus_duzdzl,duydyl_plus_duzdzl
-  real(kind=CUSTOM_REAL) duxdyl_plus_duydxl,duzdxl_plus_duxdzl,duzdyl_plus_duydzl
-
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
-
-
-  do ispec = 1,NSPEC_INNER_CORE
-
-    do k=1,NGLLZ
-      do j=1,NGLLY
-        do i=1,NGLLX
-
-          tempx1l = 0._CUSTOM_REAL
-          tempx2l = 0._CUSTOM_REAL
-          tempx3l = 0._CUSTOM_REAL
-
-          tempy1l = 0._CUSTOM_REAL
-          tempy2l = 0._CUSTOM_REAL
-          tempy3l = 0._CUSTOM_REAL
-
-          tempz1l = 0._CUSTOM_REAL
-          tempz2l = 0._CUSTOM_REAL
-          tempz3l = 0._CUSTOM_REAL
-
-          do l=1,NGLLX
-            hp1 = hprime_xx(i,l)
-            iglob = ibool(l,j,k,ispec)
-            tempx1l = tempx1l + displ_inner_core(1,iglob)*hp1
-            tempy1l = tempy1l + displ_inner_core(2,iglob)*hp1
-            tempz1l = tempz1l + displ_inner_core(3,iglob)*hp1
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          enddo
-
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          do l=1,NGLLY
-            hp2 = hprime_yy(j,l)
-            iglob = ibool(i,l,k,ispec)
-            tempx2l = tempx2l + displ_inner_core(1,iglob)*hp2
-            tempy2l = tempy2l + displ_inner_core(2,iglob)*hp2
-            tempz2l = tempz2l + displ_inner_core(3,iglob)*hp2
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          enddo
-
-!!! can merge these loops because NGLLX = NGLLY = NGLLZ          do l=1,NGLLZ
-            hp3 = hprime_zz(k,l)
-            iglob = ibool(i,j,l,ispec)
-            tempx3l = tempx3l + displ_inner_core(1,iglob)*hp3
-            tempy3l = tempy3l + displ_inner_core(2,iglob)*hp3
-            tempz3l = tempz3l + displ_inner_core(3,iglob)*hp3
-          enddo
-
-!         get derivatives of ux, uy and uz with respect to x, y and z
-
-          xixl = xix(i,j,k,ispec)
-          xiyl = xiy(i,j,k,ispec)
-          xizl = xiz(i,j,k,ispec)
-          etaxl = etax(i,j,k,ispec)
-          etayl = etay(i,j,k,ispec)
-          etazl = etaz(i,j,k,ispec)
-          gammaxl = gammax(i,j,k,ispec)
-          gammayl = gammay(i,j,k,ispec)
-          gammazl = gammaz(i,j,k,ispec)
-
-! compute the jacobian
-          jacobianl = 1._CUSTOM_REAL / (xixl*(etayl*gammazl-etazl*gammayl) &
-                        - xiyl*(etaxl*gammazl-etazl*gammaxl) &
-                        + xizl*(etaxl*gammayl-etayl*gammaxl))
-
-          duxdxl = xixl*tempx1l + etaxl*tempx2l + gammaxl*tempx3l
-          duxdyl = xiyl*tempx1l + etayl*tempx2l + gammayl*tempx3l
-          duxdzl = xizl*tempx1l + etazl*tempx2l + gammazl*tempx3l
-
-          duydxl = xixl*tempy1l + etaxl*tempy2l + gammaxl*tempy3l
-          duydyl = xiyl*tempy1l + etayl*tempy2l + gammayl*tempy3l
-          duydzl = xizl*tempy1l + etazl*tempy2l + gammazl*tempy3l
-
-          duzdxl = xixl*tempz1l + etaxl*tempz2l + gammaxl*tempz3l
-          duzdyl = xiyl*tempz1l + etayl*tempz2l + gammayl*tempz3l
-          duzdzl = xizl*tempz1l + etazl*tempz2l + gammazl*tempz3l
-
-! precompute some sums to save CPU time
-          duxdxl_plus_duydyl = duxdxl + duydyl
-          duxdxl_plus_duzdzl = duxdxl + duzdzl
-          duydyl_plus_duzdzl = duydyl + duzdzl
-          duxdyl_plus_duydxl = duxdyl + duydxl
-          duzdxl_plus_duxdzl = duzdxl + duxdzl
-          duzdyl_plus_duydzl = duzdyl + duydzl
-
-! compute deviatoric strain
-          if(NSPEC_INNER_CORE_STRAIN_ONLY == 1) then
-            ispec_strain = 1
-          else
-            ispec_strain = ispec
-          endif
-          epsilon_trace_over_3(i,j,k,ispec_strain) = ONE_THIRD * (duxdxl + duydyl + duzdzl)
-          epsilondev_loc(1,i,j,k) = duxdxl - epsilon_trace_over_3(i,j,k,ispec_strain)
-          epsilondev_loc(2,i,j,k) = duydyl - epsilon_trace_over_3(i,j,k,ispec_strain)
-          epsilondev_loc(3,i,j,k) = 0.5 * duxdyl_plus_duydxl
-          epsilondev_loc(4,i,j,k) = 0.5 * duzdxl_plus_duxdzl
-          epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl
-
-        enddo ! NGLLX
-      enddo ! NGLLY
-    enddo ! NGLLZ
-
-    !epsilondev(:,:,:,:,ispec) = epsilondev_loc(:,:,:,:)
-    do k=1,NGLLZ
-      do j=1,NGLLY
-        do i=1,NGLLX
-          epsilondev(:,i,j,k,ispec) = epsilondev_loc(:,i,j,k)
-        enddo
-      enddo
-    enddo
-
-  enddo   ! spectral element loop NSPEC_CRUST_MANTLE
-
-  end subroutine compute_strain_inner_core
-
-
-

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_seismograms.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_seismograms.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/compute_seismograms.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -191,7 +191,6 @@
 !
 
   subroutine compute_seismograms_adjoint(NSOURCES,nrec_local,displ_crust_mantle, &
-!ZN                    eps_trace_over_3_crust_mantle,epsilondev_crust_mantle, &
                     nu_source,Mxx,Myy,Mzz,Mxy,Mxz,Myz, &
                     hxir_store,hetar_store,hgammar_store, &
                     hpxir_store,hpetar_store,hpgammar_store, &
@@ -213,10 +212,6 @@
 
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: &
     displ_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STRAIN_ONLY) :: &
-!ZN    eps_trace_over_3_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) :: &
-!ZN    epsilondev_crust_mantle
 
   double precision, dimension(NDIM,NDIM,NSOURCES) :: nu_source
   double precision, dimension(NSOURCES) :: Mxx,Myy,Mzz,Mxy,Mxz,Myz
@@ -306,13 +301,6 @@
           uyd = uyd + dble(displ_crust_mantle(2,iglob))*hlagrange
           uzd = uzd + dble(displ_crust_mantle(3,iglob))*hlagrange
 
-!ZN           eps_trace = eps_trace + dble(eps_trace_over_3_crust_mantle(i,j,k,ispec_selected_source(irec)))*hlagrange
-!ZN           dxx = dxx + dble(epsilondev_crust_mantle(1,i,j,k,ispec_selected_source(irec)))*hlagrange
-!ZN           dyy = dyy + dble(epsilondev_crust_mantle(2,i,j,k,ispec_selected_source(irec)))*hlagrange
-!ZN           dxy = dxy + dble(epsilondev_crust_mantle(3,i,j,k,ispec_selected_source(irec)))*hlagrange
-!ZN           dxz = dxz + dble(epsilondev_crust_mantle(4,i,j,k,ispec_selected_source(irec)))*hlagrange
-!ZN           dyz = dyz + dble(epsilondev_crust_mantle(5,i,j,k,ispec_selected_source(irec)))*hlagrange
-
           eps_trace = eps_trace + dble(eps_trace_over_3_loc_crust_mantle(i,j,k))*hlagrange
           dxx = dxx + dble(epsilondev_loc_crust_mantle(1,i,j,k))*hlagrange
           dyy = dyy + dble(epsilondev_loc_crust_mantle(2,i,j,k))*hlagrange

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/read_forward_arrays.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/read_forward_arrays.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/read_forward_arrays.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -32,13 +32,11 @@
                     displ_inner_core,veloc_inner_core,accel_inner_core, &
                     displ_outer_core,veloc_outer_core,accel_outer_core, &
                     R_memory_crust_mantle,R_memory_inner_core, &
-!ZN                    epsilondev_crust_mantle,epsilondev_inner_core, &
                     A_array_rotation,B_array_rotation, &
                     b_displ_crust_mantle,b_veloc_crust_mantle,b_accel_crust_mantle, &
                     b_displ_inner_core,b_veloc_inner_core,b_accel_inner_core, &
                     b_displ_outer_core,b_veloc_outer_core,b_accel_outer_core, &
                     b_R_memory_crust_mantle,b_R_memory_inner_core, &
-!ZN                    b_epsilondev_crust_mantle,b_epsilondev_inner_core, &
                     b_A_array_rotation,b_B_array_rotation,LOCAL_PATH)
 
 ! reads in saved wavefields
@@ -63,12 +61,8 @@
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: &
     R_memory_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) :: &
-!ZN    epsilondev_crust_mantle
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ATTENUATION) :: &
     R_memory_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_OR_ATT) :: &
-!ZN    epsilondev_inner_core
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE_ROTATION) :: &
     A_array_rotation,B_array_rotation
@@ -82,13 +76,9 @@
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_AND_ATT) :: &
     b_R_memory_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ADJOINT) :: &
-!ZN    b_epsilondev_crust_mantle
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_AND_ATT) :: &
     b_R_memory_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ADJOINT) :: &
-!ZN    b_epsilondev_inner_core
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE_ROT_ADJOINT) :: &
     b_A_array_rotation,b_B_array_rotation
@@ -125,8 +115,6 @@
     read(55) displ_outer_core
     read(55) veloc_outer_core
     read(55) accel_outer_core
-!ZN    read(55) epsilondev_crust_mantle
-!ZN    read(55) epsilondev_inner_core
     read(55) A_array_rotation
     read(55) B_array_rotation
     read(55) R_memory_crust_mantle
@@ -145,8 +133,6 @@
     b_displ_outer_core = 0._CUSTOM_REAL
     b_veloc_outer_core = 0._CUSTOM_REAL
     b_accel_outer_core = 0._CUSTOM_REAL
-!ZN    b_epsilondev_crust_mantle = 0._CUSTOM_REAL
-!ZN    b_epsilondev_inner_core = 0._CUSTOM_REAL
     if (ROTATION_VAL) then
       b_A_array_rotation = 0._CUSTOM_REAL
       b_B_array_rotation = 0._CUSTOM_REAL
@@ -168,7 +154,6 @@
                     b_displ_inner_core,b_veloc_inner_core,b_accel_inner_core, &
                     b_displ_outer_core,b_veloc_outer_core,b_accel_outer_core, &
                     b_R_memory_crust_mantle,b_R_memory_inner_core, &
-!ZN                    b_epsilondev_crust_mantle,b_epsilondev_inner_core, &
                     b_A_array_rotation,b_B_array_rotation,LOCAL_PATH)
 
 ! reads in saved wavefields
@@ -190,13 +175,9 @@
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_AND_ATT) :: &
     b_R_memory_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ADJOINT) :: &
-!ZN    b_epsilondev_crust_mantle
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_AND_ATT) :: &
     b_R_memory_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ADJOINT) :: &
-!ZN    b_epsilondev_inner_core
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE_ROT_ADJOINT) :: &
     b_A_array_rotation,b_B_array_rotation
@@ -217,8 +198,6 @@
   read(55) b_displ_outer_core
   read(55) b_veloc_outer_core
   read(55) b_accel_outer_core
-!ZN  read(55) b_epsilondev_crust_mantle
-!ZN  read(55) b_epsilondev_inner_core
   if (ROTATION_VAL) then
     read(55) b_A_array_rotation
     read(55) b_B_array_rotation

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/save_forward_arrays.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/save_forward_arrays.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/save_forward_arrays.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -31,7 +31,6 @@
                     displ_inner_core,veloc_inner_core,accel_inner_core, &
                     displ_outer_core,veloc_outer_core,accel_outer_core, &
                     R_memory_crust_mantle,R_memory_inner_core, &
-!ZN                    epsilondev_crust_mantle,epsilondev_inner_core, &
                     A_array_rotation,B_array_rotation, &
                     LOCAL_PATH)
 
@@ -55,12 +54,8 @@
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: &
     R_memory_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) :: &
-!ZN    epsilondev_crust_mantle
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ATTENUATION) :: &
     R_memory_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_OR_ATT) :: &
-!ZN    epsilondev_inner_core
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE_ROTATION) :: &
     A_array_rotation,B_array_rotation
@@ -84,8 +79,6 @@
     write(55) displ_outer_core
     write(55) veloc_outer_core
     write(55) accel_outer_core
-!ZN    write(55) epsilondev_crust_mantle
-!ZN    write(55) epsilondev_inner_core
     write(55) A_array_rotation
     write(55) B_array_rotation
     write(55) R_memory_crust_mantle
@@ -106,8 +99,6 @@
     write(55) displ_outer_core
     write(55) veloc_outer_core
     write(55) accel_outer_core
-!ZN    write(55) epsilondev_crust_mantle
-!ZN    write(55) epsilondev_inner_core
     if (ROTATION_VAL) then
       write(55) A_array_rotation
       write(55) B_array_rotation

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/specfem3D.F90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/specfem3D.F90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -395,25 +395,17 @@
   real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT5) :: factor_common_inner_core
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) :: epsilondev_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STRAIN_ONLY) :: eps_trace_over_3_crust_mantle
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_crust_mantle
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ) :: eps_trace_over_3_loc_crust_mantle
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ATTENUATION) :: R_memory_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_OR_ATT) :: epsilondev_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STRAIN_ONLY) :: eps_trace_over_3_inner_core
 
 ! ADJOINT
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: b_alphaval, b_betaval, b_gammaval
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_AND_ATT) :: b_R_memory_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ADJOINT) :: b_epsilondev_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ADJOINT) :: b_eps_trace_over_3_crust_mantle
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_AND_ATT) :: b_R_memory_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ADJOINT) :: b_epsilondev_inner_core
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ADJOINT) :: b_eps_trace_over_3_inner_core
 
 ! for matching with central cube in inner core
   integer, dimension(:), allocatable :: sender_from_slices_to_cube
@@ -2033,18 +2025,6 @@
     beta_kl_outer_core(:,:,:,:) = 0._CUSTOM_REAL
   endif
 
-  ! initialize to be on the save side for adjoint runs SIMULATION_TYPE==2
-!ZN  eps_trace_over_3_crust_mantle(:,:,:,:) = 0._CUSTOM_REAL
-!ZN  epsilondev_crust_mantle(:,:,:,:,:) = 0._CUSTOM_REAL
-!ZN  eps_trace_over_3_inner_core(:,:,:,:) = 0._CUSTOM_REAL
-!ZN  epsilondev_inner_core(:,:,:,:,:) = 0._CUSTOM_REAL
-!ZN  if(FIX_UNDERFLOW_PROBLEM) then
-!ZN    eps_trace_over_3_crust_mantle(:,:,:,:) = VERYSMALLVAL
-!ZN    epsilondev_crust_mantle(:,:,:,:,:) = VERYSMALLVAL
-!ZN    eps_trace_over_3_inner_core(:,:,:,:) = VERYSMALLVAL
-!ZN    epsilondev_inner_core(:,:,:,:,:) = VERYSMALLVAL
-!ZN  endif
-
   if (COMPUTE_AND_STORE_STRAIN) then
     if(MOVIE_VOLUME .and. (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3)) then
       Iepsilondev_crust_mantle(:,:,:,:,:) = 0._CUSTOM_REAL
@@ -2089,13 +2069,11 @@
                     displ_inner_core,veloc_inner_core,accel_inner_core, &
                     displ_outer_core,veloc_outer_core,accel_outer_core, &
                     R_memory_crust_mantle,R_memory_inner_core, &
-!ZN                    epsilondev_crust_mantle,epsilondev_inner_core, &
                     A_array_rotation,B_array_rotation, &
                     b_displ_crust_mantle,b_veloc_crust_mantle,b_accel_crust_mantle, &
                     b_displ_inner_core,b_veloc_inner_core,b_accel_inner_core, &
                     b_displ_outer_core,b_veloc_outer_core,b_accel_outer_core, &
                     b_R_memory_crust_mantle,b_R_memory_inner_core, &
-!ZN                    b_epsilondev_crust_mantle,b_epsilondev_inner_core, &
                     b_A_array_rotation,b_B_array_rotation,LOCAL_PATH)
 endif
 
@@ -2318,30 +2296,6 @@
 
         include "part1_undo_att.f90"
 
-!ZN        call compute_strain_crust_mantle(displ_crust_mantle,hprime_xx,hprime_yy,hprime_zz,ibool_crust_mantle,&
-!ZN                                         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
-!ZN                                         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!ZN                                         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!ZN                                         epsilondev_crust_mantle,eps_trace_over_3_crust_mantle)
-
-!ZN         call compute_strain_crust_mantle(b_displ_crust_mantle,hprime_xx,hprime_yy,hprime_zz,ibool_crust_mantle,&
-!ZN                                         xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
-!ZN                                         etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-!ZN                                         gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle, &
-!ZN                                         b_epsilondev_crust_mantle,b_eps_trace_over_3_crust_mantle)
-
-!ZN         call  compute_strain_inner_core(displ_inner_core,hprime_xx,hprime_yy,hprime_zz,ibool_inner_core,&
-!ZN                                        xix_inner_core,xiy_inner_core,xiz_inner_core,&
-!ZN                                        etax_inner_core,etay_inner_core,etaz_inner_core,&
-!ZN                                        gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!ZN                                        epsilondev_inner_core,eps_trace_over_3_inner_core)
-
-!ZN         call  compute_strain_inner_core(b_displ_inner_core,hprime_xx,hprime_yy,hprime_zz,ibool_inner_core,&
-!ZN                                        xix_inner_core,xiy_inner_core,xiz_inner_core,&
-!ZN                                        etax_inner_core,etay_inner_core,etaz_inner_core,&
-!ZN                                        gammax_inner_core,gammay_inner_core,gammaz_inner_core, &
-!ZN                                        b_epsilondev_inner_core,b_eps_trace_over_3_inner_core)
-
         include "part3_kernel_computation.f90"
 
       enddo

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/write_movie_volume.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/write_movie_volume.f90	2013-06-15 22:36:58 UTC (rev 22317)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/undo_att/src/specfem3D/write_movie_volume.f90	2013-06-16 06:27:22 UTC (rev 22318)
@@ -254,17 +254,12 @@
  end subroutine write_movie_volume_mesh
 
 ! ---------------------------------------------
-
-!ZN  subroutine write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, &
-!ZN                    it,eps_trace_over_3_crust_mantle,epsilondev_crust_mantle,muvstore_crust_mantle_3dmovie, &
-!ZN                    mask_3dmovie,nu_3dmovie)
-
-  subroutine write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, & !ZN
-                    it,muvstore_crust_mantle_3dmovie,mask_3dmovie,nu_3dmovie,& !ZN
+  subroutine write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, & 
+                    it,muvstore_crust_mantle_3dmovie,mask_3dmovie,nu_3dmovie,& 
                     hprime_xx,hprime_yy,hprime_zz,ibool_crust_mantle,&
                     xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
                     etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
-                    gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,displ_crust_mantle) !ZN
+                    gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,displ_crust_mantle) 
 
 
   implicit none
@@ -274,8 +269,6 @@
 
   ! input
   integer :: myrank,npoints_3dmovie,MOVIE_VOLUME_TYPE,it
-!ZN  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: eps_trace_over_3_crust_mantle
-!ZN  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilondev_crust_mantle
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ) :: eps_trace_over_3_loc_crust_mantle
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_crust_mantle
@@ -345,13 +338,6 @@
       if(mask_3dmovie(i,j,k,ispec)) then
        ipoints_3dmovie=ipoints_3dmovie+1
        muv_3dmovie=muvstore_crust_mantle_3dmovie(i,j,k,ispec)
-!ZN       eps_loc(1,1)=eps_trace_over_3_crust_mantle(i,j,k,ispec) + epsilondev_crust_mantle(1,i,j,k,ispec)
-!ZN       eps_loc(2,2)=eps_trace_over_3_crust_mantle(i,j,k,ispec) + epsilondev_crust_mantle(2,i,j,k,ispec)
-!ZN       eps_loc(3,3)=eps_trace_over_3_crust_mantle(i,j,k,ispec)- &
-!ZN                 epsilondev_crust_mantle(1,i,j,k,ispec) - epsilondev_crust_mantle(2,i,j,k,ispec)
-!ZN       eps_loc(1,2)=epsilondev_crust_mantle(3,i,j,k,ispec)
-!ZN       eps_loc(1,3)=epsilondev_crust_mantle(4,i,j,k,ispec)
-!ZN       eps_loc(2,3)=epsilondev_crust_mantle(5,i,j,k,ispec)
 
        eps_loc(1,1)=eps_trace_over_3_loc_crust_mantle(i,j,k) + epsilondev_loc_crust_mantle(1,i,j,k)
        eps_loc(2,2)=eps_trace_over_3_loc_crust_mantle(i,j,k) + epsilondev_loc_crust_mantle(2,i,j,k)



More information about the CIG-COMMITS mailing list