[cig-commits] r22528 - in seismo/3D/SPECFEM3D_GLOBE/trunk/src: auxiliaries compute_optimized_dumping_undo_att create_header_file meshfem3D shared specfem3D

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Sun Jul 7 09:59:31 PDT 2013


Author: dkomati1
Date: 2013-07-07 09:59:31 -0700 (Sun, 07 Jul 2013)
New Revision: 22528

Modified:
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_1D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_2D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_corners_chunks.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_faces_chunks.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/combine_AVS_DX.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_GMT_global.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/compute_optimized_dumping_undo_att/compute_optimized_dumping_undo_att.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_attenuation.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/broadcast_computed_parameters.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_attenuation.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/rules.mk
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
Log:
to save a lot of memory, now save the 1D attenuation arrays in (1,1,1) format instead of (NGLLX,NGLLY,NGLLZ) and set ATT1 = ATT2 = ATT3 = 1


Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_1D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_1D.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_1D.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -61,7 +61,8 @@
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS, &
           NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE,REFERENCE_1D_MODEL, &
-          THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -162,7 +163,8 @@
          SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
 ! get the base pathname for output files
   call get_value_string(OUTPUT_FILES, 'OUTPUT_FILES', 'OUTPUT_FILES')

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_2D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_2D.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_2D.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -66,7 +66,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -164,7 +165,8 @@
          SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
 ! get the base pathname for output files
   call get_value_string(OUTPUT_FILES, 'OUTPUT_FILES', 'OUTPUT_FILES')

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_corners_chunks.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_corners_chunks.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_corners_chunks.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -58,7 +58,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -154,7 +155,8 @@
          SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   print *
   print *,'There are ',NPROCTOT,' slices numbered from 0 to ',NPROCTOT-1

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_faces_chunks.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_faces_chunks.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/check_buffers_faces_chunks.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -62,7 +62,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -154,7 +155,8 @@
          SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
 ! get the base pathname for output files
   call get_value_string(OUTPUT_FILES, 'OUTPUT_FILES', 'OUTPUT_FILES')

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/combine_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/combine_AVS_DX.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/combine_AVS_DX.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -130,7 +130,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -235,7 +236,8 @@
                  SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   if(.not. SAVE_MESH_FILES) stop 'AVS or DX files were not saved by the mesher'
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_AVS_DX.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -776,7 +776,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -861,7 +862,8 @@
          SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   if(MOVIE_COARSE) stop 'create_movie_AVS_DX does not work with MOVIE_COARSE'
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_GMT_global.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_GMT_global.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/auxiliaries/create_movie_GMT_global.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -107,7 +107,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -213,7 +214,8 @@
          PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   if(.not. MOVIE_SURFACE) stop 'movie frames were not saved by the solver'
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/compute_optimized_dumping_undo_att/compute_optimized_dumping_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/compute_optimized_dumping_undo_att/compute_optimized_dumping_undo_att.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/compute_optimized_dumping_undo_att/compute_optimized_dumping_undo_att.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -43,7 +43,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NSOURCES,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -148,7 +149,8 @@
          SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
 ! optimal dumping interval calculation can only be done when SIMULATION_TYPE == 3 in the Par_file,
 ! thus set it to that value here in this serial code even if it has a different value in the Par_file
@@ -183,7 +185,7 @@
                    NGLOB_CRUST_MANTLE_ADJOINT,NGLOB_OUTER_CORE_ADJOINT, &
                    NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
                    NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
-                   NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION,static_memory_size)
+                   NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION,ATT1,ATT2,ATT3,static_memory_size)
 
   NGLOB1D_RADIAL_TEMP(:) = &
   (/maxval(NGLOB1D_RADIAL_CORNER(1,:)),maxval(NGLOB1D_RADIAL_CORNER(2,:)),maxval(NGLOB1D_RADIAL_CORNER(3,:))/)

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -42,7 +42,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NSOURCES,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -151,7 +152,8 @@
          SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
 ! count the total number of sources in the CMTSOLUTION file
   call count_number_of_sources(NSOURCES)
@@ -184,7 +186,7 @@
                    NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
                    NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
                    NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
-                   static_memory_size)
+                   ATT1,ATT2,ATT3,static_memory_size)
 
   NGLOB1D_RADIAL_TEMP(:) = &
   (/maxval(NGLOB1D_RADIAL_CORNER(1,:)),maxval(NGLOB1D_RADIAL_CORNER(2,:)),maxval(NGLOB1D_RADIAL_CORNER(3,:))/)
@@ -213,7 +215,8 @@
                   NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
                   NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
                   NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
-                  SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY)
+                  SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
+                  ATT1,ATT2,ATT3,ATT4,ATT5)
 
   print *
   print *,'edit file OUTPUT_FILES/values_from_mesher.h to see'

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -37,7 +37,7 @@
                          c11store,c12store,c13store,c14store,c15store,c16store,c22store, &
                          c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
                          c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
-                         nspec_ani,nspec_stacey,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source,&
+                         nspec_ani,nspec_stacey,ATT1,ATT2,ATT3,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source,&
                          rho_vp,rho_vs,ACTUALLY_STORE_ARRAYS,&
                          xigll,yigll,zigll,ispec_is_tiso,USE_FULL_TISO_MANTLE)
 
@@ -48,7 +48,7 @@
   !include "constants.h"
 
 ! correct number of spectral elements in each block depending on chunk type
-  integer ispec,nspec,nspec_stacey
+  integer ispec,nspec,nspec_stacey,ATT1,ATT2,ATT3
 
   logical ABSORBING_CONDITIONS,ACTUALLY_STORE_ARRAYS,USE_FULL_TISO_MANTLE
 
@@ -100,15 +100,15 @@
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013: BEWARE, declared real(kind=CUSTOM_REAL) in trunk and
-!! DK DK to Daniel, Jul 2013: double precision in branch, let us check which one is right.
-!! DK DK to Daniel, Jul 2013 I think real custom is better, it works fine in the trunk and these arrays are really huge
+!! DK DK to Daniel, Jul 2013: double precision in branch.
+!! DK DK to Daniel, Jul 2013 real custom is better, it works fine in the trunk and these arrays are really huge
 !! DK DK to Daniel, Jul 2013 in the crust_mantle region, thus let us not double their size
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
-  double precision, dimension(N_SLS)                  :: tau_s
+  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,nspec_att) :: tau_e_store
+  double precision, dimension(N_SLS) :: tau_s
   double precision :: T_c_source
 
   ! Parameters used to calculate Jacobian based upon 125 GLL points
@@ -199,7 +199,6 @@
   call compute_element_GLL_locations(xelm,yelm,zelm,ispec,nspec, &
                                     xstore,ystore,zstore,shape3D)
 
-
   ! computes model's velocity/density/... values for the chosen Earth model
   call get_model(myrank,iregion_code,ispec,nspec,idoubling(ispec), &
                       kappavstore,kappahstore,muvstore,muhstore,eta_anisostore, &
@@ -212,10 +211,9 @@
                       rmin,rmax,RCMB,RICB,R670,RMOHO,RTOPDDOUBLEPRIME,R600,R220, &
                       R771,R400,R120,R80,RMIDDLE_CRUST,ROCEAN, &
                       tau_s,tau_e_store,Qmu_store,T_c_source, &
-                      size(tau_e_store,2),size(tau_e_store,3),size(tau_e_store,4),size(tau_e_store,5), &
+                      ATT1,ATT2,ATT3,size(tau_e_store,5), &
                       ABSORBING_CONDITIONS,elem_in_crust,elem_in_mantle)
 
-
   ! either use GLL points or anchor points to capture TOPOGRAPHY and ELLIPTICITY
   ! note:  using gll points to capture them results in a slightly more accurate mesh.
   !           however, it introduces more deformations to the elements which might lead to

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -41,7 +41,7 @@
                         c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
                         nspec_ani,nspec_stacey,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source, &
                         rho_vp,rho_vs,ABSORBING_CONDITIONS,ACTUALLY_STORE_ARRAYS,xigll,yigll,zigll, &
-                        ispec_is_tiso,USE_FULL_TISO_MANTLE)
+                        ispec_is_tiso,USE_FULL_TISO_MANTLE,ATT1,ATT2,ATT3)
 
 ! creates the inner core cube of the mesh
 
@@ -56,7 +56,7 @@
 
   integer NEX_XI,NEX_PER_PROC_XI,NEX_PER_PROC_ETA
 
-  integer NPROC_XI,NPROC_ETA
+  integer NPROC_XI,NPROC_ETA,ATT1,ATT2,ATT3
 
   double precision R_CENTRAL_CUBE,RICB,RCMB,R670,RMOHO,RTOPDDOUBLEPRIME,&
     R600,R220,R771,R400,R120,R80,RMIDDLE_CRUST,ROCEAN,RMOHO_FICTITIOUS_IN_MESHER
@@ -119,16 +119,16 @@
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013: BEWARE, declared real(kind=CUSTOM_REAL) in trunk and
-!! DK DK to Daniel, Jul 2013: double precision in branch, let us check which one is right.
-!! DK DK to Daniel, Jul 2013 I think real custom is better, it works fine in the trunk and these arrays are really huge
+!! DK DK to Daniel, Jul 2013: double precision in branch.
+!! DK DK to Daniel, Jul 2013 real custom is better, it works fine in the trunk and these arrays are really huge
 !! DK DK to Daniel, Jul 2013 in the crust_mantle region, thus let us not double their size
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
-  double precision, dimension(N_SLS)                  :: tau_s
+  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,nspec_att) :: tau_e_store
+  double precision, dimension(N_SLS) :: tau_s
   double precision  T_c_source
 
   logical :: ACTUALLY_STORE_ARRAYS,ABSORBING_CONDITIONS,USE_FULL_TISO_MANTLE
@@ -280,7 +280,7 @@
                          c11store,c12store,c13store,c14store,c15store,c16store,c22store, &
                          c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
                          c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
-                         nspec_ani,nspec_stacey,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source, &
+                         nspec_ani,nspec_stacey,ATT1,ATT2,ATT3,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source, &
                          rho_vp,rho_vs,ACTUALLY_STORE_ARRAYS, &
                          xigll,yigll,zigll,ispec_is_tiso,USE_FULL_TISO_MANTLE)
       enddo

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -52,7 +52,7 @@
                     ispec2D_moho_top,ispec2D_moho_bot,ispec2D_400_top,&
                     ispec2D_400_bot,ispec2D_670_top,ispec2D_670_bot, &
                     CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA,offset_proc_xi,offset_proc_eta, &
-                    ispec_is_tiso,USE_FULL_TISO_MANTLE)
+                    ispec_is_tiso,USE_FULL_TISO_MANTLE,ATT1,ATT2,ATT3)
 
 ! adds doubling elements to the different regions of the mesh
 
@@ -64,7 +64,7 @@
   ! code for the four regions of the mesh
   integer iregion_code
   ! correct number of spectral elements in each block depending on chunk type
-  integer nspec,NCHUNKS,NUMBER_OF_MESH_LAYERS
+  integer nspec,NCHUNKS,NUMBER_OF_MESH_LAYERS,ATT1,ATT2,ATT3
   integer NPROC_XI,NPROC_ETA,NEX_PER_PROC_XI,NEX_PER_PROC_ETA
 
   integer, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: ner,ratio_sampling_array
@@ -129,16 +129,16 @@
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013: BEWARE, declared real(kind=CUSTOM_REAL) in trunk and
-!! DK DK to Daniel, Jul 2013: double precision in branch, let us check which one is right.
-!! DK DK to Daniel, Jul 2013 I think real custom is better, it works fine in the trunk and these arrays are really huge
+!! DK DK to Daniel, Jul 2013: double precision in branch.
+!! DK DK to Daniel, Jul 2013 real custom is better, it works fine in the trunk and these arrays are really huge
 !! DK DK to Daniel, Jul 2013 in the crust_mantle region, thus let us not double their size
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
-  double precision, dimension(N_SLS)                  :: tau_s
+  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,nspec_att) :: tau_e_store
+  double precision, dimension(N_SLS) :: tau_s
   double precision  T_c_source
 
 ! rotation matrix from Euler angles
@@ -356,7 +356,7 @@
                          c11store,c12store,c13store,c14store,c15store,c16store,c22store, &
                          c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
                          c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
-                         nspec_ani,nspec_stacey,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source,&
+                         nspec_ani,nspec_stacey,ATT1,ATT2,ATT3,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source,&
                          rho_vp,rho_vs,ACTUALLY_STORE_ARRAYS, &
                          xigll,yigll,zigll,ispec_is_tiso,USE_FULL_TISO_MANTLE)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -42,7 +42,8 @@
                           RTOPDDOUBLEPRIME,R600,R220,R771,R400,R120,R80,RMIDDLE_CRUST,ROCEAN, &
                           ner,ratio_sampling_array,doubling_index,r_bottom,r_top, &
                           this_region_has_a_doubling,ipass,ratio_divide_central_cube, &
-                          CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA,offset_proc_xi,offset_proc_eta,USE_FULL_TISO_MANTLE)
+                          CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA,offset_proc_xi,offset_proc_eta,USE_FULL_TISO_MANTLE, &
+                          ATT1,ATT2,ATT3)
 
 ! creates the different regions of the mesh
 
@@ -67,7 +68,7 @@
   integer, dimension(:), allocatable :: perm_layer
 
   ! correct number of spectral elements in each block depending on chunk type
-  integer nspec,nspec_tiso,nspec_stacey,nspec_actually,nspec_att
+  integer nspec,nspec_tiso,nspec_stacey,nspec_actually,nspec_att,ATT1,ATT2,ATT3
 
   integer NEX_XI,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,NCHUNKS
 
@@ -200,9 +201,9 @@
   double precision, dimension(NDIM,NDIM) :: rotation_matrix
 
   ! attenuation
-  real(kind=CUSTOM_REAL), dimension(:,:,:,:),   allocatable :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: Qmu_store
   real(kind=CUSTOM_REAL), dimension(:,:,:,:,:), allocatable :: tau_e_store
-  double precision, dimension(N_SLS)                  :: tau_s
+  double precision, dimension(N_SLS) :: tau_s
   double precision  T_c_source
 
   integer, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: doubling_index
@@ -263,8 +264,8 @@
   else
     nspec_att = 1
   endif
-  allocate(Qmu_store(NGLLX,NGLLY,NGLLZ,nspec_att), &
-          tau_e_store(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att),stat=ier)
+  allocate(Qmu_store(ATT1,ATT2,ATT3,nspec_att), &
+          tau_e_store(N_SLS,ATT1,ATT2,ATT3,nspec_att),stat=ier)
   if(ier /= 0) stop 'error in allocate 1'
 
   ! Gauss-Lobatto-Legendre points of integration
@@ -282,7 +283,7 @@
   ! 3D shape functions and their derivatives
   allocate(shape3D(NGNOD,NGLLX,NGLLY,NGLLZ), &
           dershape3D(NDIM,NGNOD,NGLLX,NGLLY,NGLLZ),stat=ier)
-  if(ier /= 0) stop 'error in allocat 4'
+  if(ier /= 0) stop 'error in allocate 4'
 
   ! 2D shape functions and their derivatives
   allocate(shape2D_x(NGNOD2D,NGLLY,NGLLZ), &
@@ -561,7 +562,7 @@
                     normal_moho,normal_400,normal_670,jacobian2D_moho,jacobian2D_400,jacobian2D_670, &
                     ispec2D_moho_top,ispec2D_moho_bot,ispec2D_400_top,&
                     ispec2D_400_bot,ispec2D_670_top,ispec2D_670_bot,&
-                    ispec_is_tiso,USE_FULL_TISO_MANTLE)
+                    ispec_is_tiso,USE_FULL_TISO_MANTLE,ATT1,ATT2,ATT3)
 
     ! mesh doubling elements
     if( this_region_has_a_doubling(ilayer) ) &
@@ -592,7 +593,7 @@
                     ispec2D_moho_top,ispec2D_moho_bot,ispec2D_400_top,&
                     ispec2D_400_bot,ispec2D_670_top,ispec2D_670_bot, &
                     CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA,offset_proc_xi,offset_proc_eta, &
-                    ispec_is_tiso,USE_FULL_TISO_MANTLE)
+                    ispec_is_tiso,USE_FULL_TISO_MANTLE,ATT1,ATT2,ATT3)
 
   enddo ! of ilayer_loop
 
@@ -614,7 +615,7 @@
                         c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
                         nspec_ani,nspec_stacey,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source,&
                         rho_vp,rho_vs,ABSORBING_CONDITIONS,ACTUALLY_STORE_ARRAYS,xigll,yigll,zigll, &
-                        ispec_is_tiso,USE_FULL_TISO_MANTLE)
+                        ispec_is_tiso,USE_FULL_TISO_MANTLE,ATT1,ATT2,ATT3)
 
   ! check total number of spectral elements created
   if(ispec /= nspec) call exit_MPI(myrank,'ispec should equal nspec')
@@ -744,11 +745,6 @@
               RICB,RCMB,RTOPDDOUBLEPRIME,R600,R670,R220,R771,R400,R120,R80,RMOHO, &
               RMIDDLE_CRUST,ROCEAN,iregion_code)
 
-      !> Hejun
-      ! Output material information for all GLL points
-      ! Can be use to check the mesh
-      !    call write_AVS_DX_global_data_gll(prname,nspec,xstore,ystore,zstore,&
-      !                rhostore,kappavstore,muvstore,Qmu_store,ATTENUATION)
     endif
 
     deallocate(locval,stat=ier); if(ier /= 0) stop 'error in deallocate'
@@ -1054,7 +1050,7 @@
                   TRANSVERSE_ISOTROPY,HETEROGEN_3D_MANTLE,ANISOTROPIC_3D_MANTLE, &
                   ANISOTROPIC_INNER_CORE,OCEANS, &
                   tau_s,tau_e_store,Qmu_store,T_c_source,ATTENUATION, &
-                  size(tau_e_store,2),size(tau_e_store,3),size(tau_e_store,4),size(tau_e_store,5),&
+                  ATT1,ATT2,ATT3,size(tau_e_store,5),&
                   NCHUNKS,ABSORBING_CONDITIONS,SAVE_MESH_FILES,ispec_is_tiso,myrank)
 #ifdef USE_SERIAL_CASCADE_FOR_IOs
     you_can_start_doing_IOs = .true.

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -53,7 +53,7 @@
                     normal_moho,normal_400,normal_670,jacobian2D_moho,jacobian2D_400,jacobian2D_670, &
                     ispec2D_moho_top,ispec2D_moho_bot,ispec2D_400_top, &
                     ispec2D_400_bot,ispec2D_670_top,ispec2D_670_bot, &
-                    ispec_is_tiso,USE_FULL_TISO_MANTLE)
+                    ispec_is_tiso,USE_FULL_TISO_MANTLE,ATT1,ATT2,ATT3)
 
 ! adds a regular spectral element to the different regions of the mesh
 
@@ -66,7 +66,7 @@
   integer iregion_code
   ! correct number of spectral elements in each block depending on chunk type
   integer nspec,NCHUNKS,NUMBER_OF_MESH_LAYERS
-  integer NPROC_XI,NPROC_ETA,NEX_PER_PROC_XI,NEX_PER_PROC_ETA
+  integer NPROC_XI,NPROC_ETA,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ATT1,ATT2,ATT3
 
   integer :: ner_without_doubling
   integer, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: ner,ratio_sampling_array
@@ -134,17 +134,17 @@
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013: BEWARE, declared real(kind=CUSTOM_REAL) in trunk and
-!! DK DK to Daniel, Jul 2013: double precision in branch, let us check which one is right.
-!! DK DK to Daniel, Jul 2013 I think real custom is better, it works fine in the trunk and these arrays are really huge
+!! DK DK to Daniel, Jul 2013: double precision in branch.
+!! DK DK to Daniel, Jul 2013 real custom is better, it works fine in the trunk and these arrays are really huge
 !! DK DK to Daniel, Jul 2013 in the crust_mantle region, thus let us not double their size
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
-  double precision, dimension(N_SLS)                  :: tau_s
-  double precision  T_c_source
+  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,nspec_att) :: tau_e_store
+  double precision, dimension(N_SLS) :: tau_s
+  double precision T_c_source
 
 ! rotation matrix from Euler angles
   double precision, dimension(NDIM,NDIM) :: rotation_matrix
@@ -275,7 +275,7 @@
                          c11store,c12store,c13store,c14store,c15store,c16store,c22store, &
                          c23store,c24store,c25store,c26store,c33store,c34store,c35store, &
                          c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
-                         nspec_ani,nspec_stacey,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source, &
+                         nspec_ani,nspec_stacey,ATT1,ATT2,ATT3,nspec_att,Qmu_store,tau_e_store,tau_s,T_c_source, &
                          rho_vp,rho_vs,ACTUALLY_STORE_ARRAYS, &
                          xigll,yigll,zigll,ispec_is_tiso,USE_FULL_TISO_MANTLE)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -35,7 +35,7 @@
                       xstore,ystore,zstore, &
                       rmin,rmax,RCMB,RICB,R670,RMOHO,RTOPDDOUBLEPRIME,R600,R220, &
                       R771,R400,R120,R80,RMIDDLE_CRUST,ROCEAN, &
-                      tau_s,tau_e_store,Qmu_store,T_c_source,vx,vy,vz,vnspec, &
+                      tau_s,tau_e_store,Qmu_store,T_c_source,ATT1,ATT2,ATT3,vnspec, &
                       ABSORBING_CONDITIONS,elem_in_crust,elem_in_mantle)
 
   use meshfem3D_models_par
@@ -63,22 +63,22 @@
     RTOPDDOUBLEPRIME,R600,R220,R771,R400,R120,R80,RMIDDLE_CRUST,ROCEAN
 
   ! attenuation values
-  integer :: vx,vy,vz,vnspec
-  double precision, dimension(N_SLS)                     :: tau_s
+  integer :: ATT1,ATT2,ATT3,vnspec
+  double precision, dimension(N_SLS) :: tau_s
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013: BEWARE, declared real(kind=CUSTOM_REAL) in trunk and
-!! DK DK to Daniel, Jul 2013: double precision in branch, let us check which one is right.
-!! DK DK to Daniel, Jul 2013 I think real custom is better, it works fine in the trunk and these arrays are really huge
+!! DK DK to Daniel, Jul 2013: double precision in branch.
+!! DK DK to Daniel, Jul 2013 real custom is better, it works fine in the trunk and these arrays are really huge
 !! DK DK to Daniel, Jul 2013 in the crust_mantle region, thus let us not double their size
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
-  real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec)        :: Qmu_store
-  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,vnspec) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,vnspec) :: tau_e_store
   double precision :: T_c_source
 
   logical ABSORBING_CONDITIONS
@@ -317,13 +317,16 @@
             c66store(i,j,k,ispec) = c66
           endif
 
-        endif !CUSTOM_REAL
+        endif ! of CUSTOM_REAL
 
-        !> Hejun
-        ! No matter 1D or 3D attenuation, we save all gll point values
         if(ATTENUATION) then
-          tau_e_store(:,i,j,k,ispec) = tau_e(:)
-          Qmu_store(i,j,k,ispec)     = Qmu
+          if(ATTENUATION_3D) then
+            tau_e_store(:,i,j,k,ispec) = tau_e(:)
+            Qmu_store(i,j,k,ispec)     = Qmu
+          else
+            tau_e_store(:,1,1,1,ispec) = tau_e(:)
+            Qmu_store(1,1,1,ispec)     = Qmu
+          endif
         endif
 
       enddo

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -350,7 +350,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NSOURCES,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY
+          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -550,7 +551,8 @@
           PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
   endif
 
   ! distributes parameters from master to all processes
@@ -589,7 +591,8 @@
                 SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   ! check that the code is running with the requested number of processes
   if(sizeprocs /= NPROCTOT) call exit_MPI(myrank,'wrong number of MPI processes')
@@ -689,7 +692,6 @@
     ! create all the regions of the mesh
     ! perform two passes in this part to be able to save memory
     do ipass = 1,2
-
       call create_regions_mesh(iregion_code,ibool,idoubling,is_on_a_slice_edge, &
                           xstore,ystore,zstore,rmins,rmaxs, &
                           iproc_xi,iproc_eta,ichunk,NSPEC(iregion_code),nspec_tiso, &
@@ -708,8 +710,8 @@
                           ner,ratio_sampling_array,doubling_index,r_bottom,r_top,&
                           this_region_has_a_doubling,ipass,ratio_divide_central_cube, &
                           CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA, &
-                          mod(iproc_xi_slice(myrank),2),mod(iproc_eta_slice(myrank),2),USE_FULL_TISO_MANTLE)
-
+                          mod(iproc_xi_slice(myrank),2),mod(iproc_eta_slice(myrank),2),USE_FULL_TISO_MANTLE, &
+                          ATT1,ATT2,ATT3)
     enddo
 
     ! checks number of anisotropic elements found in the mantle
@@ -844,7 +846,7 @@
                    NGLOB_CRUST_MANTLE_ADJOINT,NGLOB_OUTER_CORE_ADJOINT, &
                    NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
                    NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
-                   NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION,static_memory_size)
+                   NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION,ATT1,ATT2,ATT3,static_memory_size)
 
     NGLOB1D_RADIAL_TEMP(:) = &
       (/maxval(NGLOB1D_RADIAL_CORNER(1,:)),maxval(NGLOB1D_RADIAL_CORNER(2,:)),maxval(NGLOB1D_RADIAL_CORNER(3,:))/)
@@ -872,7 +874,8 @@
                     NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
                     NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
                     NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
-                    SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY)
+                    SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
+                    ATT1,ATT2,ATT3,ATT4,ATT5)
 
   endif   ! end of section executed by main process only
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_attenuation.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_attenuation.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_attenuation.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -1297,209 +1297,3 @@
 
   end subroutine qsort_local
 
-
-!
-!-------------------------------------------------------------------------------------------------
-!
-! unused routines...
-!
-!
-!  subroutine model_attenuation_1D_PREM(x, Qmu)
-!
-!! x is the radius from 0 to 1 where 0 is the center and 1 is the surface
-!! This version is for 1D PREM.
-!
-!  implicit none
-!
-!  include 'constants.h'
-!!  integer iflag
-!  double precision r, x, Qmu,RICB,RCMB, &
-!      RTOPDDOUBLEPRIME,R600,R670,R220,R771,R400,R80, ROCEAN, RMOHO, RMIDDLE_CRUST
-!  double precision Qkappa
-!
-!  r = x * R_EARTH
-!
-!  ROCEAN = 6368000.d0
-!  RMIDDLE_CRUST = 6356000.d0
-!  RMOHO = 6346600.d0
-!  R80  = 6291000.d0
-!  R220 = 6151000.d0
-!  R400 = 5971000.d0
-!  R600 = 5771000.d0
-!  R670 = 5701000.d0
-!  R771 = 5600000.d0
-!  RTOPDDOUBLEPRIME = 3630000.d0
-!  RCMB = 3480000.d0
-!  RICB = 1221000.d0
-!
-!! PREM
-!!
-!!--- inner core
-!!
-!  if(r >= 0.d0 .and. r <= RICB) then
-!     Qmu=84.6d0
-!     Qkappa=1327.7d0
-!!
-!!--- outer core
-!!
-!  else if(r > RICB .and. r <= RCMB) then
-!     Qmu=0.0d0
-!     Qkappa=57827.0d0
-!     if(RCMB - r < r - RICB) then
-!        Qmu = 312.0d0  ! CMB
-!     else
-!        Qmu = 84.6d0   ! ICB
-!     endif
-!!
-!!--- D" at the base of the mantle
-!!
-!  else if(r > RCMB .and. r <= RTOPDDOUBLEPRIME) then
-!     Qmu=312.0d0
-!     Qkappa=57827.0d0
-!!
-!!--- mantle: from top of D" to d670
-!!
-!  else if(r > RTOPDDOUBLEPRIME .and. r <= R771) then
-!     Qmu=312.0d0
-!     Qkappa=57827.0d0
-!  else if(r > R771 .and. r <= R670) then
-!     Qmu=312.0d0
-!     Qkappa=57827.0d0
-!!
-!!--- mantle: above d670
-!!
-!  else if(r > R670 .and. r <= R600) then
-!     Qmu=143.0d0
-!     Qkappa=57827.0d0
-!  else if(r > R600 .and. r <= R400) then
-!     Qmu=143.0d0
-!     Qkappa=57827.0d0
-!  else if(r > R400 .and. r <= R220) then
-!     Qmu=143.0d0
-!     Qkappa=57827.0d0
-!  else if(r > R220 .and. r <= R80) then
-!     Qmu=80.0d0
-!     Qkappa=57827.0d0
-!  else if(r > R80) then
-!     Qmu=600.0d0
-!     Qkappa=57827.0d0
-!  endif
-!
-!! Since R80 may be changed, we use radius to decide the attenuation region
-!! rather than doubling flag
-!
-!  ! We determine the attenuation value here dependent on the doubling flag and
-!  ! which region we are sitting in. The radius reported is not accurate for
-!  ! determination of which region we are actually in, whereas the idoubling flag is
-!!  if(iflag == IFLAG_INNER_CORE_NORMAL .or. iflag == IFLAG_MIDDLE_CENTRAL_CUBE .or. &
-!!       iflag == IFLAG_BOTTOM_CENTRAL_CUBE .or. iflag == IFLAG_TOP_CENTRAL_CUBE .or. &
-!!       iflag == IFLAG_IN_FICTITIOUS_CUBE) then
-!!     Qmu =  84.6d0
-!!     Qkappa = 1327.7d0
-!!  else if(iflag == IFLAG_OUTER_CORE_NORMAL) then
-!!     Qmu = 0.0d0
-!!     Qkappa = 57827.0d0
-!!  else if(iflag == IFLAG_MANTLE_NORMAL) then ! D'' to 670 km
-!!     Qmu = 312.0d0
-!!     Qkappa = 57827.0d0
-!!  else if(iflag == IFLAG_670_220) then
-!!     Qmu=143.0d0
-!!     Qkappa = 57827.0d0
-!!  else if(iflag == IFLAG_220_80) then
-!!     Qmu=80.0d0
-!!     Qkappa = 57827.0d0
-!!  else if(iflag == IFLAG_80_MOHO) then
-!!     Qmu=600.0d0
-!!     Qkappa = 57827.0d0
-!!  else if(iflag == IFLAG_CRUST) then
-!!     Qmu=600.0d0
-!!     Qkappa = 57827.0d0
-!!  else
-!!     write(*,*)'iflag:',iflag
-!!     call exit_MPI_without_rank('Invalid idoubling flag in attenuation_model_1D_prem from get_model()')
-!!  endif
-!
-!  end subroutine model_attenuation_1D_PREM
-!
-!!
-!!-------------------------------------------------------------------------------------------------
-!!
-!
-!! get 1D REF attenuation model according to radius
-!  subroutine model_attenuation_1D_REF(x, Qmu)
-!
-!! x in the radius from 0 to 1 where 0 is the center and 1 is the surface
-!! This version is for 1D REF.
-!
-!  implicit none
-!
-!  include 'constants.h'
-!
-!  double precision r, x, Qmu,RICB,RCMB, &
-!      RTOPDDOUBLEPRIME,R600,R670,R220,R771,R400,R80, ROCEAN, RMOHO, RMIDDLE_CRUST
-!  double precision Qkappa
-!
-!  r = x * R_EARTH
-!
-!  ROCEAN = 6368000.d0
-!  RMIDDLE_CRUST = 6356000.d0
-!  RMOHO = 6346600.d0
-!  R80  = 6291000.d0
-!  R220 = 6151000.d0
-!  R400 = 5961000.d0
-!  R600 = 5771000.d0
-!  R670 = 5721000.d0
-!  R771 = 5600000.d0
-!  RTOPDDOUBLEPRIME = 3630000.d0
-!  RCMB = 3479958.d0
-!  RICB = 1221491.d0
-!
-!! REF model
-!!
-!!--- inner core
-!!
-!  if(r >= 0.d0 .and. r <= RICB) then
-!     Qmu=104.0d0
-!     Qkappa=1327.6d0
-!
-!!--- outer core
-!!
-!  else if(r > RICB .and. r <= RCMB) then
-!     Qmu=0.0d0
-!     Qkappa=57822.5d0
-!     if(RCMB - r < r - RICB) then
-!        Qmu = 355.0d0  ! CMB
-!     else
-!        Qmu = 104.0d0   ! ICB
-!     endif
-!
-!!--- D" at the base of the mantle
-!!
-!  else if(r > RCMB .and. r <= RTOPDDOUBLEPRIME) then
-!     Qmu=355.0d0
-!     Qkappa=57822.5d0
-!
-!!--- mantle: from top of D" to d670
-!!
-!  else if(r > RTOPDDOUBLEPRIME .and. r <= R670) then
-!     Qmu=355.0d0
-!     Qkappa=57822.5d0
-!
-!!--- mantle: above d670
-!!
-!  else if(r > R670 .and. r <= R220) then
-!     Qmu=165.0d0
-!     Qkappa=943.0d0
-!  else if(r > R220 .and. r <= R80) then
-!     Qmu=70.0d0
-!     Qkappa=943.0d0
-!  else if(r > R80.and. r<=RMOHO) then
-!     Qmu=191.0d0
-!     Qkappa=943.0d0
-!  else if (r > RMOHO) then
-!     Qmu=300.0d0
-!     Qkappa=57822.5d0
-!  endif
-!
-!  end subroutine model_attenuation_1D_REF
-!

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -43,7 +43,7 @@
                     NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX,NSPEC2D_BOTTOM,NSPEC2D_TOP, &
                     TRANSVERSE_ISOTROPY,HETEROGEN_3D_MANTLE,ANISOTROPIC_3D_MANTLE, &
                     ANISOTROPIC_INNER_CORE,OCEANS, &
-                    tau_s,tau_e_store,Qmu_store,T_c_source,ATTENUATION,vx,vy,vz,vnspec, &
+                    tau_s,tau_e_store,Qmu_store,T_c_source,ATTENUATION,ATT1,ATT2,ATT3,vnspec, &
                     NCHUNKS,ABSORBING_CONDITIONS,SAVE_MESH_FILES,ispec_is_tiso,myrank)
 
   implicit none
@@ -127,11 +127,11 @@
   integer nspec2D_xmin,nspec2D_xmax,nspec2D_ymin,nspec2D_ymax
 
 ! attenuation
-  integer vx, vy, vz, vnspec
+  integer ATT1,ATT2,ATT3,vnspec
   double precision  T_c_source
-  double precision, dimension(N_SLS)                     :: tau_s
-  real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec)        :: Qmu_store
-  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: tau_e_store
+  double precision, dimension(N_SLS) :: tau_s
+  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,vnspec) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,vnspec) :: tau_e_store
 
   logical ABSORBING_CONDITIONS,SAVE_MESH_FILES
 
@@ -377,13 +377,10 @@
 
   close(27)
 
-!> Hejun
-! No matter 1D or 3D Attenuation, we save value for gll points
   if(ATTENUATION) then
     open(unit=27, file=prname(1:len_trim(prname))//'attenuation.bin', &
           status='unknown', form='unformatted',action='write',iostat=ier)
     if( ier /= 0 ) call exit_mpi(myrank,'error opening attenuation.bin file')
-
     write(27) tau_s
     write(27) tau_e_store
     write(27) Qmu_store

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/broadcast_computed_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/broadcast_computed_parameters.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/broadcast_computed_parameters.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -60,7 +60,8 @@
                 SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   use mpi
 
@@ -80,7 +81,8 @@
           NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NSOURCES,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
-          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION
+          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
           CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -134,7 +136,7 @@
 
   ! local parameters
   double precision, dimension(32) :: bcast_double_precision
-  integer, dimension(40) :: bcast_integer
+  integer, dimension(45) :: bcast_integer
   logical, dimension(51) :: bcast_logical
   integer ier
 
@@ -155,7 +157,8 @@
             NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,&
             SIMULATION_TYPE,REFERENCE_1D_MODEL,THREE_D_MODEL,NPROC,NPROCTOT, &
             NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube,&
-            MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NSOURCES,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION/)
+            MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NSOURCES,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION, &
+            ATT1,ATT2,ATT3,ATT4,ATT5/)
 
     bcast_logical = (/TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
             CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE,HETEROGEN_3D_MANTLE, &
@@ -181,7 +184,7 @@
   endif
 
   ! broadcasts the information read on the master to the nodes
-  call MPI_BCAST(bcast_integer,40,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
+  call MPI_BCAST(bcast_integer,45,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(bcast_double_precision,32,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(bcast_logical,51,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
 
@@ -257,6 +260,11 @@
     NSOURCES = bcast_integer(38)
     NOISE_TOMOGRAPHY = bcast_integer(39)
     NT_DUMP_ATTENUATION = bcast_integer(40)
+    ATT1 = bcast_integer(41)
+    ATT2 = bcast_integer(42)
+    ATT3 = bcast_integer(43)
+    ATT4 = bcast_integer(44)
+    ATT5 = bcast_integer(45)
 
     ! logicals
     TRANSVERSE_ISOTROPY = bcast_logical(1)
@@ -349,69 +357,3 @@
 
   end subroutine broadcast_computed_parameters
 
-
-!-------------------------------------------------------------------------------------------------
-!> Broadcast the parameters relative to GPU computing settings.
-!! \param myrank The rank of the MPI process in COMM_WORLD
-!! \param GPU_MODE Flag to indicate that GPU computing is ON or OFF.
-  subroutine broadcast_gpu_parameters(myrank,GPU_MODE)
-
-  use mpi
-
-  implicit none
-
-  include "constants.h"
-  include "precision.h"
-
-  integer:: myrank
-  logical:: GPU_MODE
-  ! local parameters
-  integer :: ier
-
-  call MPI_BCAST(GPU_MODE,1,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
-  if( ier /= 0 ) call exit_MPI(myrank,'error broadcasting GPU_MODE')
-
-  end subroutine broadcast_gpu_parameters
-
-!-------------------------------------------------------------------------------------------------
-!> Broadcast the parameters relative to ADIOS output settings.
-!! \param myrank The rank of the MPI process in COMM_WORLD
-!! \param ADIOS_ENABLED Flag to indicate ADIOS output for seismograms.
-!! \param ADIOS_FOR_FORWARD_ARRAYS Flag to indicate that intermediate and
-!!        forward arrays are stored with the help of ADIOS.
-subroutine broadcast_adios_parameters(myrank,ADIOS_ENABLED,  &
-    ADIOS_FOR_FORWARD_ARRAYS, ADIOS_FOR_MPI_ARRAYS, &
-    ADIOS_FOR_ARRAYS_SOLVER, ADIOS_FOR_SOLVER_MESHFILES, &
-    ADIOS_FOR_AVS_DX)
-
-  use mpi
-
-  implicit none
-
-  include "constants.h"
-  include "precision.h"
-
-  integer:: myrank
-  logical:: ADIOS_ENABLED, ADIOS_FOR_FORWARD_ARRAYS, ADIOS_FOR_MPI_ARRAYS, &
-      ADIOS_FOR_ARRAYS_SOLVER, ADIOS_FOR_SOLVER_MESHFILES, ADIOS_FOR_AVS_DX
-  ! local parameters
-  integer :: ier
-  call MPI_BCAST(ADIOS_ENABLED,1,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
-  if( ier /= 0 ) call exit_MPI(myrank,'error broadcasting ADIOS_ENABLED')
-  call MPI_BCAST(ADIOS_FOR_FORWARD_ARRAYS,1,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
-  if( ier /= 0 ) call exit_MPI(myrank, &
-      'error broadcasting ADIOS_FOR_FORWARD_ARRAYS')
-  call MPI_BCAST(ADIOS_FOR_MPI_ARRAYS,1,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
-  if( ier /= 0 ) call exit_MPI(myrank, &
-      'error broadcasting ADIOS_FOR_MPI_ARRAYS')
-  call MPI_BCAST(ADIOS_FOR_ARRAYS_SOLVER,1,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
-  if( ier /= 0 ) call exit_MPI(myrank, &
-      'error broadcasting ADIOS_FOR_ARRAYS_SOLVER')
-  call MPI_BCAST(ADIOS_FOR_SOLVER_MESHFILES,1,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
-  if( ier /= 0 ) call exit_MPI(myrank, &
-      'error broadcasting ADIOS_FOR_SOLVER_MESHFILES')
-  call MPI_BCAST(ADIOS_FOR_AVS_DX,1,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
-  if( ier /= 0 ) call exit_MPI(myrank, &
-      'error broadcasting ADIOS_FOR_AVS_DX')
-
-end subroutine broadcast_adios_parameters

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -45,7 +45,7 @@
                          NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
                          NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
                          NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
-                         static_memory_size)
+                         ATT1,ATT2,ATT3,static_memory_size)
 
   implicit none
 
@@ -58,7 +58,7 @@
              MOVIE_VOLUME,SAVE_FORWARD
   integer, dimension(MAX_NUM_REGIONS), intent(in) :: NSPEC, nglob
 
-  integer, intent(in) :: NEX_PER_PROC_XI,NEX_PER_PROC_ETA,SIMULATION_TYPE
+  integer, intent(in) :: NEX_PER_PROC_XI,NEX_PER_PROC_ETA,SIMULATION_TYPE,ATT1,ATT2,ATT3
   integer, dimension(MAX_NUMBER_OF_MESH_LAYERS), intent(in) :: doubling_index
   logical, dimension(MAX_NUMBER_OF_MESH_LAYERS), intent(in) :: this_region_has_a_doubling
   integer, dimension(MAX_NUMBER_OF_MESH_LAYERS), intent(in) :: ner,ratio_sampling_array
@@ -224,24 +224,24 @@
     dble(NGLLY)*dble(NGLLZ)*NSPEC_CRUST_MANTLE_ATTENUAT*dble(CUSTOM_REAL)
 
 ! one_minus_sum_beta_crust_mantle, factor_scale_crust_mantle
-  static_memory_size = static_memory_size + 2.d0*dble(NGLLX)* &
-    dble(NGLLY)*dble(NGLLZ)*NSPEC_CRUST_MANTLE_ATTENUAT*dble(CUSTOM_REAL)
+  static_memory_size = static_memory_size + 2.d0*dble(ATT1)* &
+    dble(ATT2)*dble(ATT3)*NSPEC_CRUST_MANTLE_ATTENUAT*dble(CUSTOM_REAL)
 
 ! factor_common_crust_mantle
-  static_memory_size = static_memory_size + dble(N_SLS)*dble(NGLLX)* &
-    dble(NGLLY)*dble(NGLLZ)*NSPEC_CRUST_MANTLE_ATTENUAT*dble(CUSTOM_REAL)
+  static_memory_size = static_memory_size + dble(N_SLS)*dble(ATT1)* &
+    dble(ATT2)*dble(ATT3)*NSPEC_CRUST_MANTLE_ATTENUAT*dble(CUSTOM_REAL)
 
 ! R_memory_inner_core
   static_memory_size = static_memory_size + 5.d0*dble(N_SLS)*dble(NGLLX)* &
     dble(NGLLY)*dble(NGLLZ)*NSPEC_INNER_CORE_ATTENUATION*dble(CUSTOM_REAL)
 
 ! one_minus_sum_beta_inner_core, factor_scale_inner_core
-  static_memory_size = static_memory_size + 2.d0*dble(NGLLX)* &
-    dble(NGLLY)*dble(NGLLZ)*NSPEC_INNER_CORE_ATTENUATION*dble(CUSTOM_REAL)
+  static_memory_size = static_memory_size + 2.d0*dble(ATT1)* &
+    dble(ATT2)*dble(ATT3)*NSPEC_INNER_CORE_ATTENUATION*dble(CUSTOM_REAL)
 
 ! factor_common_inner_core
-  static_memory_size = static_memory_size + dble(N_SLS)*dble(NGLLX)* &
-    dble(NGLLY)*dble(NGLLZ)*NSPEC_INNER_CORE_ATTENUATION*dble(CUSTOM_REAL)
+  static_memory_size = static_memory_size + dble(N_SLS)*dble(ATT1)* &
+    dble(ATT2)*dble(ATT3)*NSPEC_INNER_CORE_ATTENUATION*dble(CUSTOM_REAL)
 
 ! xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle
 ! etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -62,7 +62,8 @@
                         SAVE_REGULAR_KL,PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   implicit none
 
@@ -72,7 +73,8 @@
   integer NTSTEP_BETWEEN_OUTPUT_SEISMOS,NTSTEP_BETWEEN_READ_ADJSRC,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
           MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP, &
-          NEX_XI_read,NEX_ETA_read,NPROC_XI_read,NPROC_ETA_read,NOISE_TOMOGRAPHY
+          NEX_XI_read,NEX_ETA_read,NPROC_XI_read,NPROC_ETA_read,NOISE_TOMOGRAPHY, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,&
           CENTER_LONGITUDE_IN_DEGREES,CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,&
@@ -362,6 +364,28 @@
                         last_doubling_layer, cut_doubling, nglob_int_surf_xi, nglob_int_surf_eta,nglob_ext_surf,&
                         normal_doubling, nglob_center_edge, nglob_corner_edge, nglob_border_edge)
 
+  if(ATTENUATION) then
+!! DK DK July 2013: to save a huge amount of memory, when 3D attenuation is off it is sufficient to save a single point
+!! DK DK July 2013: per spectral element because the Q attenuation factor is then constant per layer of the geological model
+    if(ATTENUATION_3D) then
+      ATT1     = NGLLX
+      ATT2     = NGLLY
+      ATT3     = NGLLZ
+    else
+      ATT1     = 1
+      ATT2     = 1
+      ATT3     = 1
+    endif
+    ATT4     = NSPEC(IREGION_CRUST_MANTLE)
+    ATT5     = NSPEC(IREGION_INNER_CORE)
+  else
+     ATT1 = 1
+     ATT2 = 1
+     ATT3 = 1
+     ATT4 = 1
+     ATT5 = 1
+  endif
+
   end subroutine read_compute_parameters
 
 !

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -51,7 +51,8 @@
                         NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
                         NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
                         NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
-                        SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY)
+                        SIMULATION_TYPE,SAVE_FORWARD,MOVIE_VOLUME,SAVE_REGULAR_KL,NOISE_TOMOGRAPHY, &
+                        ATT1,ATT2,ATT3,ATT4,ATT5)
 
   implicit none
 
@@ -104,7 +105,7 @@
   double precision rotation_matrix(3,3)
   double precision vector_ori(3),vector_rotated(3)
   double precision r_corner,theta_corner,phi_corner,lat,long,colat_corner
-  integer :: att1,att2,att3,att4,att5
+  integer :: ATT1,ATT2,ATT3,ATT4,ATT5
   integer :: ier
   character(len=150) HEADER_FILE
 
@@ -477,33 +478,11 @@
   write(IOUT,*) 'integer, parameter :: NUMMSGS_FACES_VAL = ',NPROC_XI*NUM_FACES*NUM_MSG_TYPES
   write(IOUT,*) 'integer, parameter :: NCORNERSCHUNKS_VAL = ',NCORNERSCHUNKS
 
-  if(ATTENUATION) then
-!! DK DK July 2013: to save a huge amount of memory, when 3D attenuation is off it is sufficient to save a single point
-!! DK DK July 2013: per spectral element because the Q attenuation factor is then constant per layer of the geological model
-    if(ATTENUATION_3D) then
-      att1     = NGLLX
-      att2     = NGLLY
-      att3     = NGLLZ
-    else
-      att1     = 1
-      att2     = 1
-      att3     = 1
-    endif
-    att4     = NSPEC(IREGION_CRUST_MANTLE)
-    att5     = NSPEC(IREGION_INNER_CORE)
-  else
-     att1 = 1
-     att2 = 1
-     att3 = 1
-     att4 = 1
-     att5 = 1
-  endif
-
-  write(IOUT,*) 'integer, parameter :: ATT1 = ',att1
-  write(IOUT,*) 'integer, parameter :: ATT2 = ',att2
-  write(IOUT,*) 'integer, parameter :: ATT3 = ',att3
-  write(IOUT,*) 'integer, parameter :: ATT4 = ',att4
-  write(IOUT,*) 'integer, parameter :: ATT5 = ',att5
+  write(IOUT,*) 'integer, parameter :: ATT1_VAL = ',ATT1
+  write(IOUT,*) 'integer, parameter :: ATT2_VAL = ',ATT2
+  write(IOUT,*) 'integer, parameter :: ATT3_VAL = ',ATT3
+  write(IOUT,*) 'integer, parameter :: ATT4_VAL = ',ATT4
+  write(IOUT,*) 'integer, parameter :: ATT5_VAL = ',ATT5
   write(IOUT,*)
 
   write(IOUT,*) 'integer, parameter :: NSPEC2DMAX_XMIN_XMAX_CM = ',NSPEC2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE)

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_element.F90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -33,7 +33,7 @@
                     kappavstore,muvstore, &
                     ibool, &
                     R_memory, &
-                    one_minus_sum_beta,vx,vy,vz,vnspec, &
+                    one_minus_sum_beta,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                     dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H,PARTIAL_PHYS_DISPERSION_ONLY)
 
@@ -67,7 +67,7 @@
         kappavstore,muvstore
 
   ! variable sized array variables
-  integer :: vx,vy,vz,vnspec
+  integer :: vnspec
 
   ! attenuation
   ! memory variables for attenuation
@@ -75,7 +75,7 @@
   ! 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
 
-  real(kind=CUSTOM_REAL), dimension(vx,vy,vz,vnspec) :: one_minus_sum_beta
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
 
   ! gravity
   double precision, dimension(NRAD_GRAVITY) :: minus_gravity_table,density_table,minus_deriv_gravity_table
@@ -173,8 +173,10 @@
         endif
 
        ! precompute terms for attenuation if needed
-        if(ATTENUATION_VAL) then
+        if(ATTENUATION_3D_VAL) then
           one_minus_sum_beta_use = one_minus_sum_beta(i,j,k,ispec)
+        else if(ATTENUATION_VAL) then
+          one_minus_sum_beta_use = one_minus_sum_beta(1,1,1,ispec)
         endif
 
         !
@@ -351,7 +353,7 @@
                     kappavstore,kappahstore,muvstore,muhstore,eta_anisostore, &
                     ibool, &
                     R_memory, &
-                    one_minus_sum_beta,vx,vy,vz,vnspec, &
+                    one_minus_sum_beta,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                     dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H,PARTIAL_PHYS_DISPERSION_ONLY)
 
@@ -393,10 +395,10 @@
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
 
   ! variable sized array variables
-  integer :: vx,vy,vz,vnspec
+  integer :: vnspec
 
   ! [alpha,beta,gamma]val reduced to N_SLS  to N_SLS*NUM_NODES
-  real(kind=CUSTOM_REAL), dimension(vx,vy,vz,vnspec) :: one_minus_sum_beta
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
 
   ! gravity
   double precision, dimension(NRAD_GRAVITY) :: minus_gravity_table,density_table,minus_deriv_gravity_table
@@ -506,8 +508,10 @@
         endif
 
         ! precompute terms for attenuation if needed
-        if(ATTENUATION_VAL) then
+        if(ATTENUATION_3D_VAL) then
           one_minus_sum_beta_use = one_minus_sum_beta(i,j,k,ispec)
+        else if(ATTENUATION_VAL) then
+          one_minus_sum_beta_use = one_minus_sum_beta(1,1,1,ispec)
         endif
 
         !
@@ -881,7 +885,7 @@
                     c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
                     ibool, &
                     R_memory, &
-                    one_minus_sum_beta,vx,vy,vz,vnspec, &
+                    one_minus_sum_beta,vnspec, &
                     tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                     dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H,PARTIAL_PHYS_DISPERSION_ONLY)
 
@@ -923,10 +927,10 @@
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
 
   ! variable sized array variables
-  integer :: vx,vy,vz,vnspec
+  integer :: vnspec
 
   ! [alpha,beta,gamma]val reduced to N_SLS  to N_SLS*NUM_NODES
-  real(kind=CUSTOM_REAL), dimension(vx,vy,vz,vnspec) :: one_minus_sum_beta
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
 
   ! gravity
   double precision, dimension(NRAD_GRAVITY) :: minus_gravity_table,density_table,minus_deriv_gravity_table
@@ -1025,9 +1029,12 @@
         endif
 
         ! precompute terms for attenuation if needed
-        if(ATTENUATION_VAL) then
+        if(ATTENUATION_3D_VAL) then
           one_minus_sum_beta_use = one_minus_sum_beta(i,j,k,ispec)
           minus_sum_beta =  one_minus_sum_beta_use - 1.0
+        else if(ATTENUATION_VAL) then
+          one_minus_sum_beta_use = one_minus_sum_beta(1,1,1,ispec)
+          minus_sum_beta =  one_minus_sum_beta_use - 1.0
         endif
 
         !
@@ -1271,7 +1278,7 @@
 !
 
   subroutine compute_element_att_memory_cr(ispec,R_memory, &
-                                        vx,vy,vz,vnspec,factor_common, &
+                                        vnspec,factor_common, &
                                         alphaval,betaval,gammaval, &
                                         c44store,muvstore, &
                                         epsilondev_loc_nplus1,epsilondev_loc,&
@@ -1307,9 +1314,9 @@
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
 
   ! variable sized array variables
-  integer :: vx,vy,vz,vnspec
+  integer :: vnspec
 
-  real(kind=CUSTOM_REAL), dimension(N_SLS,vx,vy,vz,vnspec) :: factor_common
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval,betaval,gammaval
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPECMAX_ANISO_MANTLE) :: c44store
@@ -1322,7 +1329,7 @@
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ) :: factor_common_c44_muv
   integer :: i_SLS
 
-  integer :: i_memory
+  integer :: i_memory,i,j,k
 
 ! for LDDRK
   integer :: istage
@@ -1338,9 +1345,27 @@
   ! IMPROVE we should probably use an average value instead
 
   do i_SLS = 1,N_SLS
+
     ! reformatted R_memory to handle large factor_common and reduced [alpha,beta,gamma]val
-    factor_common_c44_muv(:,:,:) = factor_common(i_SLS,:,:,:,ispec)
 
+    if(ATTENUATION_3D_VAL) then
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_c44_muv(i,j,k) = factor_common(i_SLS,i,j,k,ispec)
+          enddo
+        enddo
+      enddo
+    else
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_c44_muv(i,j,k) = factor_common(i_SLS,1,1,1,ispec)
+          enddo
+        enddo
+      enddo
+    endif
+
     if(ANISOTROPIC_3D_MANTLE_VAL) then
       factor_common_c44_muv(:,:,:) = factor_common_c44_muv(:,:,:) * c44store(:,:,:,ispec)
     else
@@ -1371,7 +1396,7 @@
 !
 
   subroutine compute_element_att_memory_ic(ispec,R_memory, &
-                                        vx,vy,vz,vnspec,factor_common, &
+                                        vnspec,factor_common, &
                                         alphaval,betaval,gammaval, &
                                         muvstore, &
                                         epsilondev_loc_nplus1,epsilondev_loc,&
@@ -1407,9 +1432,9 @@
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_ATTENUATION) :: R_memory
 
   ! variable sized array variables
-  integer :: vx,vy,vz,vnspec
+  integer :: vnspec
 
-  real(kind=CUSTOM_REAL), dimension(N_SLS,vx,vy,vz,vnspec) :: factor_common
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval,betaval,gammaval
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: muvstore
@@ -1422,7 +1447,7 @@
 
   integer :: i_SLS
 
-  integer :: i_memory
+  integer :: i_memory,i,j,k
 
 ! for LDDRK
   integer :: istage
@@ -1438,8 +1463,25 @@
   ! IMPROVE we should probably use an average value instead
 
   do i_SLS = 1,N_SLS
-    factor_common_use(:,:,:) = factor_common(i_SLS,:,:,:,ispec)
 
+    if(ATTENUATION_3D_VAL) then
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_use(i,j,k) = factor_common(i_SLS,i,j,k,ispec)
+          enddo
+        enddo
+      enddo
+    else
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_use(i,j,k) = factor_common(i_SLS,1,1,1,ispec)
+          enddo
+        enddo
+      enddo
+    endif
+
     if(USE_LDDRK)then
       do i_memory = 1,5
         R_memory_lddrk(i_memory,i_SLS,:,:,:,ispec) = ALPHA_LDDRK(istage) * R_memory_lddrk(i_memory,i_SLS,:,:,:,ispec) + &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_Dev.F90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -53,7 +53,7 @@
           c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
           ibool,ispec_is_tiso, &
           R_memory,one_minus_sum_beta,deltat,veloc_crust_mantle, &
-          alphaval,betaval,gammaval,factor_common,vx,vy,vz,vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
+          alphaval,betaval,gammaval,factor_common,vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
 
 ! this routine is optimized for NGLLX = NGLLY = NGLLZ = 5 using the Deville et al. (2002) inlined matrix-matrix products
@@ -104,11 +104,11 @@
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory
   logical :: PARTIAL_PHYS_DISPERSION_ONLY
 
-  integer :: vx,vy,vz,vnspec
+  integer :: vnspec
 
   ! [alpha,beta,gamma]val reduced to N_SLS and factor_common to N_SLS*NUM_NODES
-  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: factor_common
-  real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec) :: one_minus_sum_beta
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval,betaval,gammaval
 
   ! array with the local to global mapping per slice
@@ -377,7 +377,7 @@
             c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
             ibool, &
             R_memory, &
-            one_minus_sum_beta,vx,vy,vz,vnspec, &
+            one_minus_sum_beta,vnspec, &
             tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
             dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H,PARTIAL_PHYS_DISPERSION_ONLY)
     else
@@ -391,7 +391,7 @@
                kappavstore,muvstore, &
                ibool, &
                R_memory, &
-               one_minus_sum_beta,vx,vy,vz,vnspec, &
+               one_minus_sum_beta,vnspec, &
                tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H,PARTIAL_PHYS_DISPERSION_ONLY)
        else
@@ -405,7 +405,7 @@
                kappavstore,kappahstore,muvstore,muhstore,eta_anisostore, &
                ibool, &
                R_memory, &
-               one_minus_sum_beta,vx,vy,vz,vnspec, &
+               one_minus_sum_beta,vnspec, &
                tempx1,tempx2,tempx3,tempy1,tempy2,tempy3,tempz1,tempz2,tempz3, &
                dummyx_loc,dummyy_loc,dummyz_loc,epsilondev_loc,rho_s_H,PARTIAL_PHYS_DISPERSION_ONLY)
        endif ! .not. ispec_is_tiso
@@ -533,7 +533,7 @@
                                           xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz,epsilondev_loc_nplus1)
       ! updates R_memory
       call compute_element_att_memory_cr(ispec,R_memory, &
-                                         vx,vy,vz,vnspec,factor_common, &
+                                         vnspec,factor_common, &
                                          alphaval,betaval,gammaval, &
                                          c44store,muvstore, &
                                          epsilondev_loc_nplus1,epsilondev_loc,&

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_crust_mantle_noDev.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -53,7 +53,7 @@
           c36store,c44store,c45store,c46store,c55store,c56store,c66store, &
           ibool,ispec_is_tiso, &
           R_memory,one_minus_sum_beta,deltat,veloc_crust_mantle, &
-          alphaval,betaval,gammaval,factor_common,vx,vy,vz,vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
+          alphaval,betaval,gammaval,factor_common,vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
 
   implicit none
@@ -75,10 +75,10 @@
 ! to allow for optimization of cache access by compiler
   integer i_SLS,i_memory
 ! variable sized array variables for one_minus_sum_beta and factor_common
-  integer vx, vy, vz, vnspec
+  integer vnspec
 
   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
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
 
 ! for attenuation
   real(kind=CUSTOM_REAL) R_xx_val,R_yy_val
@@ -87,8 +87,8 @@
 
 ! [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
-  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: factor_common
-  real(kind=CUSTOM_REAL), dimension(NGLLX, NGLLY, NGLLZ) :: factor_common_c44_muv
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ) :: factor_common_c44_muv
 
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_nplus1
@@ -382,9 +382,12 @@
           endif
 
           ! precompute terms for attenuation if needed
-          if(ATTENUATION_VAL) then
+          if(ATTENUATION_3D_VAL) then
             one_minus_sum_beta_use = one_minus_sum_beta(i,j,k,ispec)
             minus_sum_beta =  one_minus_sum_beta_use - 1.0
+          else if(ATTENUATION_VAL) then
+            one_minus_sum_beta_use = one_minus_sum_beta(1,1,1,ispec)
+            minus_sum_beta =  one_minus_sum_beta_use - 1.0
           endif
 
         !
@@ -916,7 +919,25 @@
 ! IMPROVE we should probably use an average value instead
 
           ! reformatted R_memory to handle large factor_common and reduced [alpha,beta,gamma]val
-          factor_common_c44_muv = factor_common(i_SLS,:,:,:,ispec)
+
+    if(ATTENUATION_3D_VAL) then
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_c44_muv(i,j,k) = factor_common(i_SLS,i,j,k,ispec)
+          enddo
+        enddo
+      enddo
+    else
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_c44_muv(i,j,k) = factor_common(i_SLS,1,1,1,ispec)
+          enddo
+        enddo
+      enddo
+    endif
+
           if(ANISOTROPIC_3D_MANTLE_VAL) then
             factor_common_c44_muv = factor_common_c44_muv * c44store(:,:,:,ispec)
           else

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_Dev.F90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -49,7 +49,7 @@
           kappavstore,muvstore,ibool,idoubling, &
           c11store,c33store,c12store,c13store,c44store,R_memory,one_minus_sum_beta,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval,factor_common, &
-          vx,vy,vz,vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
+          vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
 
 ! this routine is optimized for NGLLX = NGLLY = NGLLZ = 5 using the Deville et al. (2002) inlined matrix-matrix products
@@ -78,9 +78,9 @@
   ! memory variables R_ij are stored at the local rather than global level
   ! to allow for optimization of cache access by compiler
   ! variable lengths for factor_common and one_minus_sum_beta
-  integer vx, vy, vz, vnspec
-  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: factor_common
-  real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec) :: one_minus_sum_beta
+  integer vnspec
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
 
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval,betaval,gammaval
 
@@ -425,8 +425,10 @@
               epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl
             endif
 
-            if(ATTENUATION_VAL) then
+            if(ATTENUATION_3D_VAL) then
               minus_sum_beta =  one_minus_sum_beta(i,j,k,ispec) - 1.0
+            else if(ATTENUATION_VAL) then
+              minus_sum_beta =  one_minus_sum_beta(1,1,1,ispec) - 1.0
             endif
 
             if(ANISOTROPIC_INNER_CORE_VAL) then
@@ -476,8 +478,10 @@
               mul = muvstore(i,j,k,ispec)
 
               ! use unrelaxed parameters if attenuation
-              if(ATTENUATION_VAL) then
+              if(ATTENUATION_3D_VAL) then
                 mul = mul * one_minus_sum_beta(i,j,k,ispec)
+              else if(ATTENUATION_VAL) then
+                mul = mul * one_minus_sum_beta(1,1,1,ispec)
               endif
 
               lambdalplus2mul = kappal + FOUR_THIRDS * mul
@@ -757,7 +761,7 @@
                                             xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz,epsilondev_loc_nplus1)
         ! updates R_memory
         call compute_element_att_memory_ic(ispec,R_memory, &
-                                      vx,vy,vz,vnspec,factor_common, &
+                                      vnspec,factor_common, &
                                       alphaval,betaval,gammaval, &
                                       muvstore, &
                                       epsilondev_loc_nplus1,epsilondev_loc,&

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_inner_core_noDev.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -50,7 +50,7 @@
           kappavstore,muvstore,ibool,idoubling, &
           c11store,c33store,c12store,c13store,c44store,R_memory,one_minus_sum_beta,deltat,veloc_inner_core,&
           alphaval,betaval,gammaval,factor_common, &
-          vx,vy,vz,vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
+          vnspec,PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
 
   implicit none
@@ -73,13 +73,13 @@
   real(kind=CUSTOM_REAL) R_xx_val,R_yy_val
 
 ! variable lengths for factor_common and one_minus_sum_beta
-  integer vx, vy, vz, vnspec
+  integer vnspec
 
-  real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec) :: one_minus_sum_beta
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: one_minus_sum_beta
 
-  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: factor_common
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval,betaval,gammaval
-  real(kind=CUSTOM_REAL), dimension(NGLLX, NGLLY, NGLLZ) :: factor_common_use
+  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
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc,epsilondev_loc_nplus1
@@ -359,8 +359,10 @@
             epsilondev_loc(5,i,j,k) = 0.5 * duzdyl_plus_duydzl
           endif
 
-          if(ATTENUATION_VAL) then
+          if(ATTENUATION_3D_VAL) then
             minus_sum_beta =  one_minus_sum_beta(i,j,k,ispec) - 1.0
+          else if(ATTENUATION_VAL) then
+            minus_sum_beta =  one_minus_sum_beta(1,1,1,ispec) - 1.0
           endif
 
           if(ANISOTROPIC_INNER_CORE_VAL) then
@@ -412,8 +414,10 @@
             mul = muvstore(i,j,k,ispec)
 
             ! use unrelaxed parameters if attenuation
-            if(ATTENUATION_VAL) then
+            if(ATTENUATION_3D_VAL) then
               mul = mul * one_minus_sum_beta(i,j,k,ispec)
+            else if(ATTENUATION_VAL) then
+              mul = mul * one_minus_sum_beta(1,1,1,ispec)
             endif
 
             lambdalplus2mul = kappal + FOUR_THIRDS * mul
@@ -663,7 +667,25 @@
                                              xix,xiy,xiz,etax,etay,etaz,gammax,gammay,gammaz,epsilondev_loc_nplus1)
 
       do i_SLS = 1,N_SLS
-        factor_common_use = factor_common(i_SLS,:,:,:,ispec)
+
+    if(ATTENUATION_3D_VAL) then
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_use(i,j,k) = factor_common(i_SLS,i,j,k,ispec)
+          enddo
+        enddo
+      enddo
+    else
+      do k = 1,NGLLZ
+        do j = 1,NGLLZ
+          do i = 1,NGLLZ
+            factor_common_use(i,j,k) = factor_common(i_SLS,1,1,1,ispec)
+          enddo
+        enddo
+      enddo
+    endif
+
         if(USE_LDDRK) then
           do i_memory = 1,5
             R_memory_lddrk(i_memory,i_SLS,:,:,:,ispec) = ALPHA_LDDRK(istage) * R_memory_lddrk(i_memory,i_SLS,:,:,:,ispec) + &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_attenuation.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_attenuation.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_attenuation.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -34,6 +34,9 @@
 
   include 'constants.h'
 
+! include values created by the mesher
+  include "OUTPUT_FILES/values_from_mesher.h"
+
   integer :: myrank
 
   integer :: vnspec
@@ -43,15 +46,15 @@
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013: BEWARE, declared real(kind=CUSTOM_REAL) in trunk and
-!! DK DK to Daniel, Jul 2013: double precision in branch, let us check which one is right.
-!! DK DK to Daniel, Jul 2013 I think real custom is better, it works fine in the trunk and these arrays are really huge
+!! DK DK to Daniel, Jul 2013: double precision in branch.
+!! DK DK to Daniel, Jul 2013 real custom is better, it works fine in the trunk and these arrays are really huge
 !! DK DK to Daniel, Jul 2013 in the crust_mantle region, thus let us not double their size
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
 !! DK DK to Daniel, Jul 2013
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,vnspec)       :: one_minus_sum_beta, scale_factor
-  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,vnspec) :: factor_common
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec)       :: one_minus_sum_beta, scale_factor
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,vnspec) :: factor_common
 
   double precision, dimension(N_SLS)                 :: tau_s
 
@@ -80,9 +83,9 @@
   T_c_source               = T_c_source / scale_t
 
     do ispec = 1, vnspec
-      do k = 1, NGLLZ
-        do j = 1, NGLLY
-          do i = 1, NGLLX
+      do k = 1, ATT3_VAL
+        do j = 1, ATT2_VAL
+          do i = 1, ATT1_VAL
             tau_e(:) = factor_common(:,i,j,k,ispec)
             Q_mu     = scale_factor(i,j,k,ispec)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -58,7 +58,8 @@
                 PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   use mpi
 
@@ -77,7 +78,8 @@
           NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NSOURCES,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,SIMULATION_TYPE, &
-          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION
+          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ROCEAN,RMIDDLE_CRUST, &
           RMOHO,R80,R220,R400,R600,R670,R771,RTOPDDOUBLEPRIME,RCMB,RICB, &
@@ -104,7 +106,6 @@
 
   ! mesh model parameters
   logical TOPOGRAPHY,HONOR_1D_SPHERICAL_MOHO,ONE_CRUST
-  !logical COMPUTE_AND_STORE_STRAIN
 
   ! for ellipticity
   integer nspl
@@ -214,7 +215,8 @@
          PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   endif
 
@@ -255,7 +257,8 @@
                 PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
   ! get the base pathname for output files
   call get_value_string(OUTPUT_FILES, 'OUTPUT_FILES', 'OUTPUT_FILES')

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -319,8 +319,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     else
       call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -360,8 +359,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     endif
 
@@ -397,8 +395,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     else
       call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -431,8 +428,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     endif
 
@@ -615,8 +611,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -656,8 +651,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
 
@@ -693,8 +687,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -727,8 +720,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -348,8 +348,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     else
       call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -389,8 +388,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     endif
 
@@ -426,8 +424,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     else
       call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -460,8 +457,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
     endif
 
@@ -640,8 +636,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -681,8 +676,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
 
@@ -718,8 +712,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -752,8 +745,7 @@
           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), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_classical.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -328,8 +328,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -369,8 +368,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
     endif
@@ -407,8 +405,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -441,8 +438,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
     endif
@@ -608,8 +604,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         else
           call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -649,8 +644,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         endif
 
@@ -686,8 +680,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         else
           call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -720,8 +713,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         endif
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part2_undo_att.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -359,8 +359,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -400,8 +399,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
     endif
@@ -438,8 +436,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       else
         call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -472,8 +469,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
       endif
     endif
@@ -673,8 +669,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         else
           call compute_forces_crust_mantle(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -714,8 +709,7 @@
           ibool_crust_mantle,ispec_is_tiso_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), &
-          size(factor_common_crust_mantle,4), size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_crust_mantle,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_crust_mantle_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         endif
 
@@ -751,8 +745,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         else
           call compute_forces_inner_core(minus_gravity_table,density_table,minus_deriv_gravity_table, &
@@ -785,8 +778,7 @@
           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, &
-          size(factor_common_inner_core,2), size(factor_common_inner_core,3), &
-          size(factor_common_inner_core,4), size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
+          size(factor_common_inner_core,5),PARTIAL_PHYS_DISPERSION_ONLY,&
           istage,R_memory_inner_core_lddrk,tau_sigma_CUSTOM_REAL,USE_LDDRK)
         endif
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -559,10 +559,12 @@
   integer myrank
 
   ! memory variables and standard linear solids for attenuation
-  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT4) :: one_minus_sum_beta_crust_mantle, factor_scale_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT5) :: one_minus_sum_beta_inner_core, factor_scale_inner_core
-  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT4) :: factor_common_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT5) :: factor_common_inner_core
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT4_VAL) :: &
+         one_minus_sum_beta_crust_mantle, factor_scale_crust_mantle
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT5_VAL) :: &
+         one_minus_sum_beta_inner_core, factor_scale_inner_core
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT4_VAL) :: factor_common_crust_mantle
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT5_VAL) :: factor_common_inner_core
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPECMAX_ANISO_MANTLE) :: &
       c11store_crust_mantle,c12store_crust_mantle,c13store_crust_mantle, &
@@ -635,8 +637,13 @@
     do k=1,NGLLZ
       do j=1,NGLLY
         do i=1,NGLLX
-          scale_factor = factor_scale_crust_mantle(i,j,k,ispec)
 
+          if(ATTENUATION_3D_VAL) then
+            scale_factor = factor_scale_crust_mantle(i,j,k,ispec)
+          else
+            scale_factor = factor_scale_crust_mantle(1,1,1,ispec)
+          endif
+
           if(ANISOTROPIC_3D_MANTLE_VAL) then
             scale_factor_minus_one = scale_factor - 1.d0
 
@@ -684,8 +691,13 @@
     do k=1,NGLLZ
       do j=1,NGLLY
         do i=1,NGLLX
-          scale_factor_minus_one = factor_scale_inner_core(i,j,k,ispec) - 1.0
 
+          if(ATTENUATION_3D_VAL) then
+            scale_factor_minus_one = factor_scale_inner_core(i,j,k,ispec) - 1.0
+          else
+            scale_factor_minus_one = factor_scale_inner_core(1,1,1,ispec) - 1.0
+          endif
+
           if(ANISOTROPIC_INNER_CORE_VAL) then
             mul = muvstore_inner_core(i,j,k,ispec)
             c11store_inner_core(i,j,k,ispec) = c11store_inner_core(i,j,k,ispec) &
@@ -700,7 +712,11 @@
                     + scale_factor_minus_one * mul
           endif
 
-          muvstore_inner_core(i,j,k,ispec) = muvstore_inner_core(i,j,k,ispec) * factor_scale_inner_core(i,j,k,ispec)
+          if(ATTENUATION_3D_VAL) then
+            muvstore_inner_core(i,j,k,ispec) = muvstore_inner_core(i,j,k,ispec) * factor_scale_inner_core(i,j,k,ispec)
+          else
+            muvstore_inner_core(i,j,k,ispec) = muvstore_inner_core(i,j,k,ispec) * factor_scale_inner_core(1,1,1,ispec)
+          endif
 
         enddo
       enddo

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/rules.mk
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/rules.mk	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/rules.mk	2013-07-07 16:59:31 UTC (rev 22528)
@@ -231,7 +231,7 @@
 $O/define_derivation_matrices.o: ${SETUP}/constants.h $S/define_derivation_matrices.f90
 	${FCCOMPILE_CHECK} -c -o $O/define_derivation_matrices.o ${FCFLAGS_f90} $S/define_derivation_matrices.f90
 
-$O/get_attenuation.o: ${SETUP}/constants.h $S/get_attenuation.f90
+$O/get_attenuation.o: ${SETUP}/constants.h ${OUTPUT}/values_from_mesher.h $S/get_attenuation.f90
 	${FCCOMPILE_CHECK} -c -o $O/get_attenuation.o ${FCFLAGS_f90} $S/get_attenuation.f90
 
 $O/get_backazimuth.o: ${SETUP}/constants.h $S/get_backazimuth.f90

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90	2013-07-06 23:10:12 UTC (rev 22527)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90	2013-07-07 16:59:31 UTC (rev 22528)
@@ -383,12 +383,14 @@
 ! Its second time derivative is called accel_outer_core.
 
 ! memory variables and standard linear solids for attenuation
-  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT4) :: one_minus_sum_beta_crust_mantle, factor_scale_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT5) :: one_minus_sum_beta_inner_core, factor_scale_inner_core
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT4_VAL) :: &
+           one_minus_sum_beta_crust_mantle, factor_scale_crust_mantle
+  real(kind=CUSTOM_REAL), dimension(ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT5_VAL) :: &
+           one_minus_sum_beta_inner_core, factor_scale_inner_core
 
   real(kind=CUSTOM_REAL), dimension(N_SLS) :: alphaval, betaval, gammaval
-  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT4) :: factor_common_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT5) :: factor_common_inner_core
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT4_VAL) :: factor_common_crust_mantle
+  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1_VAL,ATT2_VAL,ATT3_VAL,ATT5_VAL) :: factor_common_inner_core
 
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory_crust_mantle
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_crust_mantle
@@ -862,7 +864,8 @@
           NTSTEP_BETWEEN_OUTPUT_SEISMOS,&
           NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NSOURCES,NTSTEP_BETWEEN_FRAMES, &
           NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,SIMULATION_TYPE, &
-          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION
+          MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP,NOISE_TOMOGRAPHY,NT_DUMP_ATTENUATION, &
+          ATT1,ATT2,ATT3,ATT4,ATT5
 
   double precision DT,ROCEAN,RMIDDLE_CRUST, &
           RMOHO,R80,R220,R400,R600,R670,R771,RTOPDDOUBLEPRIME,RCMB,RICB, &
@@ -1072,7 +1075,8 @@
                 PARTIAL_PHYS_DISPERSION_ONLY,UNDO_ATTENUATION,NT_DUMP_ATTENUATION, &
           USE_LDDRK,INCREASE_CFL_FOR_LDDRK,ANISOTROPIC_KL,SAVE_TRANSVERSE_KL,APPROXIMATE_HESS_KL, &
           USE_FULL_TISO_MANTLE,SAVE_SOURCE_MASK,GPU_MODE,ADIOS_ENABLED,ADIOS_FOR_FORWARD_ARRAYS, &
-          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT)
+          ADIOS_FOR_MPI_ARRAYS,ADIOS_FOR_ARRAYS_SOLVER,ADIOS_FOR_AVS_DX,RATIO_BY_WHICH_TO_INCREASE_IT, &
+          ATT1,ATT2,ATT3,ATT4,ATT5)
 
 ! to switch between simulation type 1 mode and simulation type 3 mode
 ! in exact undoing of attenuation



More information about the CIG-COMMITS mailing list