[cig-commits] r20548 - in seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER: EXAMPLES/global_s362ani_small/DATA src/auxiliaries src/create_header_file src/cuda src/meshfem3D src/shared src/specfem3D

danielpeter at geodynamics.org danielpeter at geodynamics.org
Fri Jul 27 07:58:30 PDT 2012


Author: danielpeter
Date: 2012-07-27 07:58:30 -0700 (Fri, 27 Jul 2012)
New Revision: 20548

Modified:
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/EXAMPLES/global_s362ani_small/DATA/Par_file
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/auxiliaries/create_movie_AVS_DX.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/create_header_file/create_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/compute_coupling_cuda.cu
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/it_update_displacement_cuda.cu
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/specfem3D_gpu_cuda_method_stubs.c
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/assemble_MPI_central_cube_mesh.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_MPI_interfaces.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_chunk_buffers.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_mass_matrices.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_regions_mesh.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/finalize_mesher.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_models.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_par.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_MPI_interfaces.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_color_perm.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_inner_outer.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/test_MPI_interfaces.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/memory_eval.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/save_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/compute_stacey_crust_mantle.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/initialize_simulation.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/prepare_timerun.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/read_topography_bathymetry.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D.F90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D_par.F90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_output.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_volume.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_seismograms.f90
Log:
cleans up header file and mesher variables; separates OCEANS and TOPOGRAPHY

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/EXAMPLES/global_s362ani_small/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/EXAMPLES/global_s362ani_small/DATA/Par_file	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/EXAMPLES/global_s362ani_small/DATA/Par_file	2012-07-27 14:58:30 UTC (rev 20548)
@@ -35,12 +35,12 @@
 MODEL                           = s362ani
 
 # parameters describing the Earth model
-OCEANS                          = .true.
-ELLIPTICITY                     = .true.
-TOPOGRAPHY                      = .true.
-GRAVITY                         = .true.
-ROTATION                        = .true.
-ATTENUATION                     = .true.
+OCEANS                          = .false.
+ELLIPTICITY                     = .false.
+TOPOGRAPHY                      = .false.
+GRAVITY                         = .false.
+ROTATION                        = .false.
+ATTENUATION                     = .false.
 ATTENUATION_NEW                 = .false.
 
 # absorbing boundary conditions for a regional simulation

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/auxiliaries/create_movie_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/auxiliaries/create_movie_AVS_DX.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/auxiliaries/create_movie_AVS_DX.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -848,8 +848,7 @@
 
 ! this for all the regions
   integer, dimension(MAX_NUM_REGIONS) :: NSPEC, &
-               NSPEC2D_XI, &
-               NSPEC2D_ETA, &
+               NSPEC2D_XI,NSPEC2D_ETA, &
                NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
                NSPEC2D_BOTTOM,NSPEC2D_TOP, &
                NSPEC1D_RADIAL,NGLOB1D_RADIAL, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/create_header_file/create_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/create_header_file/create_header_file.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/create_header_file/create_header_file.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -101,7 +101,6 @@
   integer, dimension(NB_SQUARE_CORNERS,NB_CUT_CASE) :: DIFF_NSPEC1D_RADIAL
   integer, dimension(NB_SQUARE_EDGES_ONEDIR,NB_CUT_CASE) :: DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA
   integer, dimension(MAX_NUM_REGIONS,NB_SQUARE_CORNERS) :: NGLOB1D_RADIAL_CORNER
-  integer, dimension(MAX_NUM_REGIONS) :: NGLOB1D_RADIAL_TEMP
 
 ! ************** PROGRAM STARTS HERE **************
 
@@ -176,18 +175,17 @@
                    NSPEC2D_BOTTOM,NSPEC2D_TOP, &
                    static_memory_size)
 
-  NGLOB1D_RADIAL_TEMP(:) = &
-  (/maxval(NGLOB1D_RADIAL_CORNER(1,:)),maxval(NGLOB1D_RADIAL_CORNER(2,:)),maxval(NGLOB1D_RADIAL_CORNER(3,:))/)
 
 ! create include file for the solver
   call save_header_file(NSPEC,nglob,NEX_XI,NEX_ETA,NPROC,NPROCTOT, &
                   TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
-                  ELLIPTICITY,GRAVITY,ROTATION,TOPOGRAPHY,OCEANS,ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D, &
+                  ELLIPTICITY,GRAVITY,ROTATION,TOPOGRAPHY, &
+                  OCEANS,ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D, &
                   ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,NCHUNKS, &
                   INCLUDE_CENTRAL_CUBE,CENTER_LONGITUDE_IN_DEGREES, &
                   CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,NSOURCES,NSTEP,&
-                  static_memory_size,NGLOB1D_RADIAL_TEMP,&
-                  NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NSPEC2D_TOP,NSPEC2D_BOTTOM, &
+                  static_memory_size, &
+                  NSPEC2D_TOP,NSPEC2D_BOTTOM, &
                   NSPEC2DMAX_YMIN_YMAX,NSPEC2DMAX_XMIN_XMAX, &
                   NPROC_XI,NPROC_ETA, &
                   NSPECMAX_ANISO_IC,NSPECMAX_ISO_MANTLE,NSPECMAX_TISO_MANTLE, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/compute_coupling_cuda.cu
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/compute_coupling_cuda.cu	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/compute_coupling_cuda.cu	2012-07-27 14:58:30 UTC (rev 20548)
@@ -610,8 +610,8 @@
       // we divide by rmass() which is 1 / M
       // we use the total force which includes the Coriolis term above
       force_normal_comp = accel_crust_mantle[iglob*3]*nx / rmassx_crust_mantle[iglob]
-                     + accel_crust_mantle[iglob*3+1]*ny / rmassy_crust_mantle[iglob]
-                           + accel_crust_mantle[iglob*3+2]*nz / rmassz_crust_mantle[iglob];
+                        + accel_crust_mantle[iglob*3+1]*ny / rmassy_crust_mantle[iglob]
+                        + accel_crust_mantle[iglob*3+2]*nz / rmassz_crust_mantle[iglob];
 
       additional_term_x = (rmass_ocean_load[iglob] - rmassx_crust_mantle[iglob]) * force_normal_comp;
       additional_term_y = (rmass_ocean_load[iglob] - rmassy_crust_mantle[iglob]) * force_normal_comp;
@@ -630,7 +630,7 @@
 extern "C"
 void FC_FUNC_(compute_coupling_ocean_cuda,
               COMPUTE_COUPLING_OCEAN_CUDA)(long* Mesh_pointer_f,
-             int* NCHUNKS_VAL) {
+                                           int* NCHUNKS_VAL) {
 
   TRACE("compute_coupling_ocean_cuda");
 
@@ -656,61 +656,61 @@
 
   if( *NCHUNKS_VAL != 6 && mp->absorbing_conditions){
     compute_coupling_ocean_cuda_kernel<<<grid,threads>>>(mp->d_accel_crust_mantle,
-               mp->d_rmassx_crust_mantle,
-               mp->d_rmassy_crust_mantle,
-               mp->d_rmassz_crust_mantle,
-               mp->d_rmass_ocean_load,
-               mp->d_normal_top_crust_mantle,
-               mp->d_ibool_crust_mantle,
-               mp->d_ibelm_top_crust_mantle,
-               mp->d_updated_dof_ocean_load,
-               mp->nspec2D_top_crust_mantle);
+                                                         mp->d_rmassx_crust_mantle,
+                                                         mp->d_rmassy_crust_mantle,
+                                                         mp->d_rmassz_crust_mantle,
+                                                         mp->d_rmass_ocean_load,
+                                                         mp->d_normal_top_crust_mantle,
+                                                         mp->d_ibool_crust_mantle,
+                                                         mp->d_ibelm_top_crust_mantle,
+                                                         mp->d_updated_dof_ocean_load,
+                                                         mp->nspec2D_top_crust_mantle);
 
     // for backward/reconstructed potentials
     if( mp->simulation_type == 3 ) {
       // re-initializes array
       print_CUDA_error_if_any(cudaMemset(mp->d_updated_dof_ocean_load,0,
-           sizeof(int)*mp->NGLOB_CRUST_MANTLE_OCEANS),88502);
+                                         sizeof(int)*mp->NGLOB_CRUST_MANTLE_OCEANS),88502);
 
       compute_coupling_ocean_cuda_kernel<<<grid,threads>>>(mp->d_b_accel_crust_mantle,
-                 mp->d_rmassx_crust_mantle,
-                 mp->d_rmassy_crust_mantle,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmass_ocean_load,
-                 mp->d_normal_top_crust_mantle,
-                 mp->d_ibool_crust_mantle,
-                 mp->d_ibelm_top_crust_mantle,
-                 mp->d_updated_dof_ocean_load,
-                 mp->nspec2D_top_crust_mantle);
+                                                           mp->d_rmassx_crust_mantle,
+                                                           mp->d_rmassy_crust_mantle,
+                                                           mp->d_rmassz_crust_mantle,
+                                                           mp->d_rmass_ocean_load,
+                                                           mp->d_normal_top_crust_mantle,
+                                                           mp->d_ibool_crust_mantle,
+                                                           mp->d_ibelm_top_crust_mantle,
+                                                           mp->d_updated_dof_ocean_load,
+                                                           mp->nspec2D_top_crust_mantle);
     }
   }else{
     compute_coupling_ocean_cuda_kernel<<<grid,threads>>>(mp->d_accel_crust_mantle,
-               mp->d_rmassz_crust_mantle,
-               mp->d_rmassz_crust_mantle,
-               mp->d_rmassz_crust_mantle,
-               mp->d_rmass_ocean_load,
-               mp->d_normal_top_crust_mantle,
-               mp->d_ibool_crust_mantle,
-               mp->d_ibelm_top_crust_mantle,
-               mp->d_updated_dof_ocean_load,
-               mp->nspec2D_top_crust_mantle);
+                                                         mp->d_rmassz_crust_mantle,
+                                                         mp->d_rmassz_crust_mantle,
+                                                         mp->d_rmassz_crust_mantle,
+                                                         mp->d_rmass_ocean_load,
+                                                         mp->d_normal_top_crust_mantle,
+                                                         mp->d_ibool_crust_mantle,
+                                                         mp->d_ibelm_top_crust_mantle,
+                                                         mp->d_updated_dof_ocean_load,
+                                                         mp->nspec2D_top_crust_mantle);
 
     // for backward/reconstructed potentials
     if( mp->simulation_type == 3 ) {
       // re-initializes array
       print_CUDA_error_if_any(cudaMemset(mp->d_updated_dof_ocean_load,0,
-           sizeof(int)*mp->NGLOB_CRUST_MANTLE_OCEANS),88502);
+                                         sizeof(int)*mp->NGLOB_CRUST_MANTLE_OCEANS),88502);
 
       compute_coupling_ocean_cuda_kernel<<<grid,threads>>>(mp->d_b_accel_crust_mantle,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmass_ocean_load,
-                 mp->d_normal_top_crust_mantle,
-                 mp->d_ibool_crust_mantle,
-                 mp->d_ibelm_top_crust_mantle,
-                 mp->d_updated_dof_ocean_load,
-                 mp->nspec2D_top_crust_mantle);
+                                                           mp->d_rmassz_crust_mantle,
+                                                           mp->d_rmassz_crust_mantle,
+                                                           mp->d_rmassz_crust_mantle,
+                                                           mp->d_rmass_ocean_load,
+                                                           mp->d_normal_top_crust_mantle,
+                                                           mp->d_ibool_crust_mantle,
+                                                           mp->d_ibelm_top_crust_mantle,
+                                                           mp->d_updated_dof_ocean_load,
+                                                           mp->nspec2D_top_crust_mantle);
     }
   }
 

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/it_update_displacement_cuda.cu
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/it_update_displacement_cuda.cu	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/it_update_displacement_cuda.cu	2012-07-27 14:58:30 UTC (rev 20548)
@@ -388,39 +388,39 @@
 
     if( *NCHUNKS_VAL != 6 && mp->absorbing_conditions){
       kernel_3_cuda_device<<< grid, threads>>>(mp->d_veloc_crust_mantle,
-                 mp->d_accel_crust_mantle,
-                 mp->NGLOB_CRUST_MANTLE,
-                 deltatover2,
-                 mp->d_rmassx_crust_mantle,
-                 mp->d_rmassy_crust_mantle,
-                 mp->d_rmassz_crust_mantle);
+                                               mp->d_accel_crust_mantle,
+                                               mp->NGLOB_CRUST_MANTLE,
+                                               deltatover2,
+                                               mp->d_rmassx_crust_mantle,
+                                               mp->d_rmassy_crust_mantle,
+                                               mp->d_rmassz_crust_mantle);
 
       if(SIMULATION_TYPE == 3){
-  kernel_3_cuda_device<<< grid, threads>>>(mp->d_b_veloc_crust_mantle,
-             mp->d_b_accel_crust_mantle,
-             mp->NGLOB_CRUST_MANTLE,
-             b_deltatover2,
-             mp->d_rmassx_crust_mantle,
-             mp->d_rmassy_crust_mantle,
-             mp->d_rmassz_crust_mantle);
+        kernel_3_cuda_device<<< grid, threads>>>(mp->d_b_veloc_crust_mantle,
+                                                 mp->d_b_accel_crust_mantle,
+                                                 mp->NGLOB_CRUST_MANTLE,
+                                                 b_deltatover2,
+                                                 mp->d_rmassx_crust_mantle,
+                                                 mp->d_rmassy_crust_mantle,
+                                                 mp->d_rmassz_crust_mantle);
       }
     }else{
       kernel_3_cuda_device<<< grid, threads>>>(mp->d_veloc_crust_mantle,
-                 mp->d_accel_crust_mantle,
-                 mp->NGLOB_CRUST_MANTLE,
-                 deltatover2,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmassz_crust_mantle);
+                                               mp->d_accel_crust_mantle,
+                                               mp->NGLOB_CRUST_MANTLE,
+                                               deltatover2,
+                                               mp->d_rmassz_crust_mantle,
+                                               mp->d_rmassz_crust_mantle,
+                                               mp->d_rmassz_crust_mantle);
 
       if(SIMULATION_TYPE == 3){
-  kernel_3_cuda_device<<< grid, threads>>>(mp->d_b_veloc_crust_mantle,
-             mp->d_b_accel_crust_mantle,
-             mp->NGLOB_CRUST_MANTLE,
-             b_deltatover2,
-             mp->d_rmassz_crust_mantle,
-             mp->d_rmassz_crust_mantle,
-             mp->d_rmassz_crust_mantle);
+        kernel_3_cuda_device<<< grid, threads>>>(mp->d_b_veloc_crust_mantle,
+                                                 mp->d_b_accel_crust_mantle,
+                                                 mp->NGLOB_CRUST_MANTLE,
+                                                 b_deltatover2,
+                                                 mp->d_rmassz_crust_mantle,
+                                                 mp->d_rmassz_crust_mantle,
+                                                 mp->d_rmassz_crust_mantle);
       }
     }
 
@@ -429,31 +429,31 @@
 
     if( *NCHUNKS_VAL != 6 && mp->absorbing_conditions){
       kernel_3_accel_cuda_device<<< grid, threads>>>(mp->d_accel_crust_mantle,
-                 mp->NGLOB_CRUST_MANTLE,
-                 mp->d_rmassx_crust_mantle,
-                 mp->d_rmassy_crust_mantle,
-                 mp->d_rmassz_crust_mantle);
+                                                     mp->NGLOB_CRUST_MANTLE,
+                                                     mp->d_rmassx_crust_mantle,
+                                                     mp->d_rmassy_crust_mantle,
+                                                     mp->d_rmassz_crust_mantle);
 
       if(SIMULATION_TYPE == 3) {
-  kernel_3_accel_cuda_device<<< grid, threads>>>(mp->d_b_accel_crust_mantle,
-                   mp->NGLOB_CRUST_MANTLE,
-                   mp->d_rmassx_crust_mantle,
-                   mp->d_rmassy_crust_mantle,
-                   mp->d_rmassz_crust_mantle);
+        kernel_3_accel_cuda_device<<< grid, threads>>>(mp->d_b_accel_crust_mantle,
+                                                       mp->NGLOB_CRUST_MANTLE,
+                                                       mp->d_rmassx_crust_mantle,
+                                                       mp->d_rmassy_crust_mantle,
+                                                       mp->d_rmassz_crust_mantle);
       }
     }else{
       kernel_3_accel_cuda_device<<< grid, threads>>>(mp->d_accel_crust_mantle,
-                 mp->NGLOB_CRUST_MANTLE,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmassz_crust_mantle,
-                 mp->d_rmassz_crust_mantle);
+                                                     mp->NGLOB_CRUST_MANTLE,
+                                                     mp->d_rmassz_crust_mantle,
+                                                     mp->d_rmassz_crust_mantle,
+                                                     mp->d_rmassz_crust_mantle);
 
       if(SIMULATION_TYPE == 3) {
-  kernel_3_accel_cuda_device<<< grid, threads>>>(mp->d_b_accel_crust_mantle,
-                   mp->NGLOB_CRUST_MANTLE,
-                   mp->d_rmassz_crust_mantle,
-                   mp->d_rmassz_crust_mantle,
-                   mp->d_rmassz_crust_mantle);
+        kernel_3_accel_cuda_device<<< grid, threads>>>(mp->d_b_accel_crust_mantle,
+                                                       mp->NGLOB_CRUST_MANTLE,
+                                                       mp->d_rmassz_crust_mantle,
+                                                       mp->d_rmassz_crust_mantle,
+                                                       mp->d_rmassz_crust_mantle);
       }
     }
   }

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/specfem3D_gpu_cuda_method_stubs.c
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/specfem3D_gpu_cuda_method_stubs.c	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/cuda/specfem3D_gpu_cuda_method_stubs.c	2012-07-27 14:58:30 UTC (rev 20548)
@@ -174,7 +174,7 @@
 
 void FC_FUNC_(compute_coupling_ocean_cuda,
               COMPUTE_COUPLING_OCEAN_CUDA)(long* Mesh_pointer_f,
-             int* NCHUNKS_VAL) {} 
+                                           int* NCHUNKS_VAL) {} 
 
 
 //

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/assemble_MPI_central_cube_mesh.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/assemble_MPI_central_cube_mesh.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/assemble_MPI_central_cube_mesh.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -178,7 +178,11 @@
         do ipoin = 1,npoin2D_cube_from_slices
           if(NPROC_XI==1) then
             if(ibool_central_cube(imsg,ipoin) > 0 ) then
-              array_central_cube(ibool_central_cube(imsg,ipoin)) = buffer_all_cube_from_slices(imsg,ipoin,idimension)
+              if(CUSTOM_REAL == SIZE_REAL) then
+                array_central_cube(ibool_central_cube(imsg,ipoin)) = sngl(buffer_all_cube_from_slices(imsg,ipoin,idimension))
+              else
+                array_central_cube(ibool_central_cube(imsg,ipoin)) = buffer_all_cube_from_slices(imsg,ipoin,idimension)
+              endif
             endif
           else
             if(CUSTOM_REAL == SIZE_REAL) then
@@ -196,9 +200,15 @@
         if(NPROC_XI==1) then
           if( ibool_central_cube(nb_msgs_theor_in_cube,ipoin) > 0 ) then
             if (.not. mask(ibool_central_cube(nb_msgs_theor_in_cube,ipoin))) then
-              array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) = &
-              array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) + &
-              buffer_all_cube_from_slices(nb_msgs_theor_in_cube,ipoin,idimension)
+              if(CUSTOM_REAL == SIZE_REAL) then
+                array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) = &
+                  array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) + &
+                  sngl(buffer_all_cube_from_slices(nb_msgs_theor_in_cube,ipoin,idimension))
+              else
+                array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) = &
+                  array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) + &
+                  buffer_all_cube_from_slices(nb_msgs_theor_in_cube,ipoin,idimension)
+              endif
             endif
             mask(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) = .true.
           endif
@@ -206,12 +216,12 @@
           if (.not. mask(ibool_central_cube(nb_msgs_theor_in_cube,ipoin))) then
             if(CUSTOM_REAL == SIZE_REAL) then
               array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) = &
-              array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) + &
-              sngl(buffer_all_cube_from_slices(nb_msgs_theor_in_cube,ipoin,idimension))
+                array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) + &
+                sngl(buffer_all_cube_from_slices(nb_msgs_theor_in_cube,ipoin,idimension))
             else
               array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) = &
-              array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) + &
-              buffer_all_cube_from_slices(nb_msgs_theor_in_cube,ipoin,idimension)
+                array_central_cube(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) + &
+                buffer_all_cube_from_slices(nb_msgs_theor_in_cube,ipoin,idimension)
             endif
           endif
           mask(ibool_central_cube(nb_msgs_theor_in_cube,ipoin)) = .true.

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_MPI_interfaces.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_MPI_interfaces.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_MPI_interfaces.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -31,7 +31,7 @@
 
   implicit none
   integer,intent(in):: iregion_code
-  
+
   ! sets up arrays
   call cmi_allocate_addressing(iregion_code)
 
@@ -56,8 +56,8 @@
     NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX, &
     NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
     NSPEC2D_BOTTOM,NSPEC2D_TOP,NSPEC,NGLOB, &
-    NCHUNKS,myrank,NGLOB1D_RADIAL,NUMCORNERS_SHARED,NPROC_XI,NGLLX,NGLLY,NGLLZ,LOCAL_PATH
-    
+    NCHUNKS,myrank,NGLOB1D_RADIAL,NUMCORNERS_SHARED,NPROC_XI,NGLLX,NGLLY,NGLLZ
+
   use create_MPI_interfaces_par
   use MPI_crust_mantle_par
   use MPI_outer_core_par
@@ -65,7 +65,7 @@
   implicit none
 
   integer,intent(in):: iregion_code
-  
+
   ! local parameters
   integer :: NUM_FACES,NPROC_ONE_DIRECTION
   integer :: ier
@@ -108,13 +108,13 @@
 
   NSPEC_CRUST_MANTLE = 0
   NGLOB_CRUST_MANTLE = 0
-  
+
   NSPEC_OUTER_CORE = 0
   NGLOB_OUTER_CORE = 0
 
   NSPEC_INNER_CORE = 0
   NGLOB_INNER_CORE = 0
-  
+
   select case( iregion_code )
   case( IREGION_CRUST_MANTLE )
     NGLOB2DMAX_XMIN_XMAX_CM = NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE)
@@ -152,10 +152,10 @@
     NSPEC_INNER_CORE = NSPEC(IREGION_INNER_CORE)
     NGLOB_INNER_CORE = NGLOB(IREGION_INNER_CORE)
 
-  case default 
+  case default
     stop 'error iregion_code value not recognized'
   end select
-  
+
   ! allocates arrays
   allocate(iprocfrom_faces(NUMMSGS_FACES), &
           iprocto_faces(NUMMSGS_FACES), &
@@ -167,7 +167,7 @@
           iproc_worker1_corners(NCORNERSCHUNKS), &
           iproc_worker2_corners(NCORNERSCHUNKS),stat=ier)
   if( ier /= 0 ) call exit_mpi(myrank,'error allocating iproc corner arrays')
-  
+
   allocate(buffer_send_chunkcorn_scalar(NGLOB1D_RADIAL_CM), &
           buffer_recv_chunkcorn_scalar(NGLOB1D_RADIAL_CM))
 
@@ -175,7 +175,7 @@
           buffer_recv_chunkcorn_vector(NDIM,NGLOB1D_RADIAL_CM + NGLOB1D_RADIAL_IC))
 
   select case( iregion_code )
-  case( IREGION_CRUST_MANTLE )  
+  case( IREGION_CRUST_MANTLE )
     ! crust mantle
     allocate(iboolcorner_crust_mantle(NGLOB1D_RADIAL_CM,NUMCORNERS_SHARED))
     allocate(iboolleft_xi_crust_mantle(NGLOB2DMAX_XMIN_XMAX_CM), &
@@ -267,7 +267,7 @@
 
   use meshfem3D_par,only: &
     myrank,LOCAL_PATH
-    
+
   use create_MPI_interfaces_par
   use MPI_crust_mantle_par
   use MPI_outer_core_par
@@ -275,10 +275,10 @@
   implicit none
 
   integer,intent(in):: iregion_code
-  
+
   ! read coordinates of the mesh
   select case( iregion_code )
-  case( IREGION_CRUST_MANTLE )  
+  case( IREGION_CRUST_MANTLE )
     ! crust mantle
     ibool_crust_mantle(:,:,:,:) = -1
     call cmi_read_solver_data(myrank,IREGION_CRUST_MANTLE, &
@@ -340,15 +340,15 @@
     NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
     NPROCTOT,NPROC_XI,NPROC_ETA,LOCAL_PATH,NCHUNKS,OUTPUT_FILES,IIN,INCLUDE_CENTRAL_CUBE, &
     iproc_xi,iproc_eta,ichunk,addressing
-    
+
   use create_MPI_interfaces_par
   use MPI_crust_mantle_par
   use MPI_outer_core_par
-  use MPI_inner_core_par  
+  use MPI_inner_core_par
   implicit none
 
   integer,intent(in):: iregion_code
-  
+
   ! local parameters
   integer :: ier
   integer njunk1,njunk2
@@ -369,7 +369,7 @@
     ! initializes
     npoin2D_xi_crust_mantle(:) = 0
     npoin2D_eta_crust_mantle(:) = 0
-    
+
     call read_arrays_buffers_mesher(IREGION_CRUST_MANTLE,myrank,iboolleft_xi_crust_mantle, &
                iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
                npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
@@ -414,10 +414,10 @@
     if(myrank == 0) then
       write(IMAIN,*)
       write(IMAIN,*) 'outer core region:'
-    endif    
+    endif
     npoin2D_xi_outer_core(:) = 0
     npoin2D_eta_outer_core(:) = 0
-    
+
     call read_arrays_buffers_mesher(IREGION_OUTER_CORE,myrank, &
                iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
                npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
@@ -462,7 +462,7 @@
       write(IMAIN,*) 'inner core region:'
     endif
     npoin2D_xi_inner_core(:) = 0
-    npoin2D_eta_inner_core(:) = 0    
+    npoin2D_eta_inner_core(:) = 0
     call read_arrays_buffers_mesher(IREGION_INNER_CORE,myrank, &
                iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
                npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
@@ -596,8 +596,8 @@
                                 maxval(npoin2D_eta_inner_core(:)))
 
   end select
-  
 
+
   end subroutine cmi_read_buffers
 
 !
@@ -609,16 +609,16 @@
 
   use meshfem3D_par,only: &
     myrank,LOCAL_PATH
-    
+
   use create_MPI_interfaces_par
   use MPI_crust_mantle_par
   use MPI_outer_core_par
   use MPI_inner_core_par
-  
+
   implicit none
 
   integer,intent(in):: iregion_code
-  
+
   select case( iregion_code )
   case( IREGION_CRUST_MANTLE )
     ! crust mantle
@@ -669,11 +669,11 @@
   use create_MPI_interfaces_par
   use MPI_crust_mantle_par
   use MPI_outer_core_par
-  use MPI_inner_core_par  
+  use MPI_inner_core_par
   implicit none
 
   integer,intent(in):: iregion_code
-  
+
   ! free memory
   deallocate(iprocfrom_faces,iprocto_faces,imsg_type)
   deallocate(iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners)
@@ -697,7 +697,7 @@
     deallocate(idoubling_crust_mantle,ibool_crust_mantle)
 
     deallocate(is_on_a_slice_edge_crust_mantle)
-    
+
   case( IREGION_OUTER_CORE )
     ! outer core
     deallocate(iboolcorner_outer_core)
@@ -714,7 +714,7 @@
     deallocate(idoubling_outer_core,ibool_outer_core)
 
     deallocate(is_on_a_slice_edge_outer_core)
-    
+
   case( IREGION_INNER_CORE )
     ! inner core
     deallocate(ibelm_xmin_inner_core, &
@@ -738,9 +738,9 @@
     deallocate(num_elem_colors_inner_core)
 
     deallocate(is_on_a_slice_edge_inner_core)
-    
+
   end select
-  
+
   end subroutine cmi_free_MPI_arrays
 
 !

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_chunk_buffers.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_chunk_buffers.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_chunk_buffers.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -63,7 +63,7 @@
 
   integer NGLOB1D_RADIAL_MAX
   integer, dimension(MAX_NUM_REGIONS,NB_SQUARE_CORNERS) :: NGLOB1D_RADIAL_CORNER
-    
+
   integer NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX
 
   integer myrank

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_mass_matrices.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_mass_matrices.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_mass_matrices.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -141,7 +141,11 @@
   rmassz(:) = 0._CUSTOM_REAL
 
   ! use the non-dimensional time step to make the mass matrix correction
-  deltat = DT*dsqrt(PI*GRAV*RHOAV)
+  if(CUSTOM_REAL == SIZE_REAL) then
+    deltat = sngl(DT*dsqrt(PI*GRAV*RHOAV))
+  else
+    deltat = DT*dsqrt(PI*GRAV*RHOAV)
+  endif
 
   ! distinguish between single and double precision for reals
   if(CUSTOM_REAL == SIZE_REAL) then
@@ -288,10 +292,12 @@
             ! get geographic latitude and longitude in degrees
             lat = 90.0d0 - colat*180.0d0/PI
             lon = phival*180.0d0/PI
-            elevation = 0.d0
 
             ! compute elevation at current point
-            call get_topo_bathy(lat,lon,elevation,ibathy_topo)
+            elevation = 0.d0
+            if( TOPOGRAPHY ) then
+              call get_topo_bathy(lat,lon,elevation,ibathy_topo)
+            endif
 
             ! non-dimensionalize the elevation, which is in meters
             ! and suppress positive elevation, which means no oceans

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_regions_mesh.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_regions_mesh.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/create_regions_mesh.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -45,23 +45,15 @@
     myrank,LOCAL_PATH, &
     IREGION_CRUST_MANTLE,IREGION_OUTER_CORE,IREGION_INNER_CORE,IFLAG_IN_FICTITIOUS_CUBE, &
     NPROC,NPROCTOT,NPROC_XI,NPROC_ETA,NCHUNKS, &
-    SAVE_MESH_FILES,INCLUDE_CENTRAL_CUBE,ABSORBING_CONDITIONS, &
-    R_CENTRAL_CUBE,RICB,RHO_OCEANS,RCMB,R670,RMOHO,RMOHO_FICTITIOUS_IN_MESHER,&
-    RTOPDDOUBLEPRIME,R600,R220,R771,R400,R120,R80,RMIDDLE_CRUST,ROCEAN, &
+    SAVE_MESH_FILES,ABSORBING_CONDITIONS, &
+    R_CENTRAL_CUBE,RICB,RHO_OCEANS,RCMB, &
     MAX_NUMBER_OF_MESH_LAYERS,MAX_NUM_REGIONS,NB_SQUARE_EDGES_ONEDIR,NB_SQUARE_CORNERS, &
-    rmins,rmaxs,iproc_xi,iproc_eta,ichunk,NEX_XI, &
-    rotation_matrix,ANGULAR_WIDTH_XI_RAD,ANGULAR_WIDTH_ETA_RAD, &
-    ratio_sampling_array,doubling_index,this_region_has_a_doubling, &
-    ratio_divide_central_cube,CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA, &
-    NSPEC1D_RADIAL_CORNER,NGLOB1D_RADIAL_CORNER, &
-    ner,r_bottom,r_top
+    NGLOB1D_RADIAL_CORNER
 
   use meshfem3D_models_par,only: &
     ATTENUATION,ANISOTROPIC_INNER_CORE,ANISOTROPIC_3D_MANTLE, &
-    SAVE_BOUNDARY_MESH,ONE_CRUST,CASE_3D,SUPPRESS_CRUSTAL_MESH,REGIONAL_MOHO_MESH, &
-    OCEANS,TRANSVERSE_ISOTROPY,HETEROGEN_3D_MANTLE,HONOR_1D_SPHERICAL_MOHO, &
-    ELLIPTICITY,ISOTROPIC_3D_MANTLE, &
-    AM_V,nspl,rspl,espl,espl2
+    SAVE_BOUNDARY_MESH,SUPPRESS_CRUSTAL_MESH,REGIONAL_MOHO_MESH, &
+    OCEANS,TRANSVERSE_ISOTROPY,HETEROGEN_3D_MANTLE
 
   use create_regions_mesh_par
   use create_regions_mesh_par2
@@ -182,7 +174,7 @@
 
       deallocate(nimin,nimax,njmin,njmax,nkmin_xi,nkmin_eta)
     endif
-    
+
   ! only create mass matrix and save all the final arrays in the second pass
   case( 2 )
     ! precomputes jacobian for 2d absorbing boundary surfaces
@@ -340,7 +332,7 @@
     call sync_all()
     if( myrank == 0) then
       write(IMAIN,*) '  ...preparing MPI interfaces'
-    endif    
+    endif
     call create_MPI_interfaces(iregion_code)
 
     ! sets up inner/outer element arrays
@@ -349,7 +341,7 @@
       write(IMAIN,*) '  ...element inner/outer separation '
     endif
     call setup_inner_outer(iregion_code)
-    
+
     ! sets up mesh coloring
     call sync_all()
     if( myrank == 0) then
@@ -429,7 +421,7 @@
   deallocate(rho_vp,rho_vs)
   deallocate(Qmu_store)
   deallocate(tau_e_store)
-  
+
   deallocate(ibelm_moho_top,ibelm_moho_bot)
   deallocate(ibelm_400_top,ibelm_400_bot)
   deallocate(ibelm_670_top,ibelm_670_bot)
@@ -451,7 +443,7 @@
                                 ipass)
 
   use meshfem3D_par,only: &
-    myrank,NGLLX,NGLLY,NGLLZ,NDIM, &
+    NGLLX,NGLLY,NGLLZ,NDIM, &
     IREGION_CRUST_MANTLE,IREGION_OUTER_CORE,IREGION_INNER_CORE, &
     NCHUNKS
 
@@ -589,7 +581,7 @@
             nkmin_eta(2,NSPEC2DMAX_YMIN_YMAX),stat=ier)
     if(ier /= 0) stop 'error in allocate 14'
   endif
-  
+
   ! MPI cut-planes parameters along xi and along eta
   allocate(iMPIcut_xi(2,nspec), &
           iMPIcut_eta(2,nspec),stat=ier)
@@ -752,12 +744,11 @@
 ! creates the different regions of the mesh
 
   use meshfem3D_par,only: &
-    IMAIN,volume_total,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice, &
-    myrank,LOCAL_PATH, &
+    IMAIN,myrank, &
     IREGION_CRUST_MANTLE,IREGION_OUTER_CORE,IREGION_INNER_CORE,IFLAG_IN_FICTITIOUS_CUBE, &
-    NPROC,NPROCTOT,NPROC_XI,NPROC_ETA,NCHUNKS, &
-    SAVE_MESH_FILES,INCLUDE_CENTRAL_CUBE,ABSORBING_CONDITIONS, &
-    R_CENTRAL_CUBE,RICB,RHO_OCEANS,RCMB,R670,RMOHO,RMOHO_FICTITIOUS_IN_MESHER,&
+    NPROC_XI,NPROC_ETA,NCHUNKS, &
+    INCLUDE_CENTRAL_CUBE,ABSORBING_CONDITIONS, &
+    R_CENTRAL_CUBE,RICB,RCMB,R670,RMOHO,RMOHO_FICTITIOUS_IN_MESHER,&
     RTOPDDOUBLEPRIME,R600,R220,R771,R400,R120,R80,RMIDDLE_CRUST,ROCEAN, &
     MAX_NUMBER_OF_MESH_LAYERS,MAX_NUM_REGIONS,NB_SQUARE_EDGES_ONEDIR,NB_SQUARE_CORNERS, &
     rmins,rmaxs,iproc_xi,iproc_eta,ichunk,NEX_XI, &
@@ -767,11 +758,8 @@
     ner,r_top,r_bottom
 
   use meshfem3D_models_par,only: &
-    ATTENUATION,ANISOTROPIC_INNER_CORE,ANISOTROPIC_3D_MANTLE, &
-    SAVE_BOUNDARY_MESH,ONE_CRUST,CASE_3D,SUPPRESS_CRUSTAL_MESH,REGIONAL_MOHO_MESH, &
-    OCEANS,TRANSVERSE_ISOTROPY,HETEROGEN_3D_MANTLE,HONOR_1D_SPHERICAL_MOHO, &
-    ELLIPTICITY,ISOTROPIC_3D_MANTLE, &
-    AM_V,nspl,rspl,espl,espl2
+    SAVE_BOUNDARY_MESH,SUPPRESS_CRUSTAL_MESH,REGIONAL_MOHO_MESH, &
+    TRANSVERSE_ISOTROPY
 
   use create_regions_mesh_par
   use create_regions_mesh_par2
@@ -933,7 +921,7 @@
   deallocate(stretch_tab)
   deallocate(perm_layer)
   deallocate(jacobian2D_moho,jacobian2D_400,jacobian2D_670)
-      
+
   if(myrank == 0 ) write(IMAIN,*)
 
   ! define central cube in inner core

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/finalize_mesher.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/finalize_mesher.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/finalize_mesher.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -119,18 +119,16 @@
                    NSPEC2D_BOTTOM,NSPEC2D_TOP, &
                    static_memory_size)
 
-    NGLOB1D_RADIAL_TEMP(:) = &
-      (/maxval(NGLOB1D_RADIAL_CORNER(1,:)),maxval(NGLOB1D_RADIAL_CORNER(2,:)),maxval(NGLOB1D_RADIAL_CORNER(3,:))/)
-
     ! create include file for the solver
     call save_header_file(NSPEC,nglob,NEX_XI,NEX_ETA,NPROC,NPROCTOT, &
                     TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
-                    ELLIPTICITY,GRAVITY,ROTATION,TOPOGRAPHY,OCEANS,ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D, &
+                    ELLIPTICITY,GRAVITY,ROTATION,TOPOGRAPHY, &
+                    OCEANS,ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D, &
                     ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,NCHUNKS, &
                     INCLUDE_CENTRAL_CUBE,CENTER_LONGITUDE_IN_DEGREES,&
                     CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,NSOURCES,NSTEP, &
-                    static_memory_size,NGLOB1D_RADIAL_TEMP, &
-                    NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NSPEC2D_TOP,NSPEC2D_BOTTOM, &
+                    static_memory_size, &
+                    NSPEC2D_TOP,NSPEC2D_BOTTOM, &
                     NSPEC2DMAX_YMIN_YMAX,NSPEC2DMAX_XMIN_XMAX, &
                     NPROC_XI,NPROC_ETA, &
                     NSPECMAX_ANISO_IC,NSPECMAX_ISO_MANTLE,NSPECMAX_TISO_MANTLE, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_models.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_models.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_models.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -148,7 +148,7 @@
   endif
 
   ! read topography and bathymetry file
-  if(TOPOGRAPHY .or. OCEANS) &
+  if(TOPOGRAPHY) &
     call model_topo_bathy_broadcast(myrank,ibathy_topo,LOCAL_PATH)
 
   ! re-defines/initializes models 1066a and ak135 and ref

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_par.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_par.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/meshfem3D_par.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -562,7 +562,7 @@
   integer, dimension(NB_SQUARE_CORNERS,NB_CUT_CASE) :: DIFF_NSPEC1D_RADIAL
   integer, dimension(NB_SQUARE_EDGES_ONEDIR,NB_CUT_CASE) :: DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA
   logical :: CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA
-  integer, dimension(MAX_NUM_REGIONS) :: NGLOB1D_RADIAL_TEMP
+!  integer, dimension(MAX_NUM_REGIONS) :: NGLOB1D_RADIAL_TEMP
 
   end module meshfem3D_par
 
@@ -708,7 +708,7 @@
     IREGION_CRUST_MANTLE,IREGION_OUTER_CORE,IREGION_INNER_CORE
 
   implicit none
-  
+
   ! indirect addressing for each message for faces and corners of the chunks
   ! a given slice can belong to at most one corner and at most two faces
   integer :: NGLOB2DMAX_XY
@@ -747,7 +747,7 @@
   ! size of buffers is the sum of two sizes because we handle two regions in the same MPI call
   real(kind=CUSTOM_REAL), dimension(:,:),allocatable :: &
      buffer_send_chunkcorn_vector,buffer_recv_chunkcorn_vector
-  
+
   end module create_MPI_interfaces_par
 
 !
@@ -757,9 +757,9 @@
   module MPI_crust_mantle_par
 
   use constants,only: CUSTOM_REAL,NUMFACES_SHARED,NB_SQUARE_EDGES_ONEDIR
-  
+
   implicit none
-  
+
   ! collected MPI interfaces
   !--------------------------------------
   ! MPI crust/mantle mesh
@@ -826,9 +826,9 @@
   module MPI_inner_core_par
 
   use constants,only: CUSTOM_REAL,NUMFACES_SHARED,NB_SQUARE_EDGES_ONEDIR
-  
+
   implicit none
-  
+
   !--------------------------------------
   ! MPI inner core mesh
   !--------------------------------------
@@ -909,9 +909,9 @@
   module MPI_outer_core_par
 
   use constants,only: CUSTOM_REAL,NUMFACES_SHARED,NB_SQUARE_EDGES_ONEDIR
-  
+
   implicit none
-  
+
   !--------------------------------------
   ! MPI outer core mesh
   !--------------------------------------

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_MPI_interfaces.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_MPI_interfaces.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_MPI_interfaces.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -30,14 +30,14 @@
 
   use meshfem3D_par,only: &
     INCLUDE_CENTRAL_CUBE,myrank,NUMFACES_SHARED
-    
+
   use create_MPI_interfaces_par
   use MPI_inner_core_par,only: &
     non_zero_nb_msgs_theor_in_cube,npoin2D_cube_from_slices
   implicit none
 
   integer,intent(in):: iregion_code
-  
+
   ! local parameters
   ! assigns initial maximum arrays
   ! for global slices, maximum number of neighbor is around 17 ( 8 horizontal, max of 8 on bottom )
@@ -64,22 +64,22 @@
 
   ! sets up MPI interfaces between different processes
   select case( iregion_code )
-  case( IREGION_CRUST_MANTLE )  
+  case( IREGION_CRUST_MANTLE )
     ! crust/mantle
     call setup_MPI_interfaces_cm(MAX_NEIGHBOURS,my_neighbours,nibool_neighbours, &
                                 max_nibool,ibool_neighbours)
 
-  case( IREGION_OUTER_CORE ) 
+  case( IREGION_OUTER_CORE )
     ! outer core
     call setup_MPI_interfaces_oc(MAX_NEIGHBOURS,my_neighbours,nibool_neighbours, &
                                 max_nibool,ibool_neighbours)
 
-  case( IREGION_INNER_CORE ) 
+  case( IREGION_INNER_CORE )
     ! inner core
     call setup_MPI_interfaces_ic(MAX_NEIGHBOURS,my_neighbours,nibool_neighbours, &
                                 max_nibool,ibool_neighbours)
   end select
-  
+
   ! frees temporary array
   deallocate(ibool_neighbours)
   deallocate(my_neighbours,nibool_neighbours)
@@ -101,9 +101,9 @@
     NPROC_XI,NPROC_ETA,NPROCTOT, &
     NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NCHUNKS, &
     OUTPUT_FILES
-    
+
   use create_MPI_interfaces_par
-  use MPI_crust_mantle_par  
+  use MPI_crust_mantle_par
   implicit none
 
   integer :: MAX_NEIGHBOURS,max_nibool
@@ -237,7 +237,7 @@
     NPROC_XI,NPROC_ETA,NPROCTOT, &
     NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NCHUNKS, &
     OUTPUT_FILES
-    
+
   use create_MPI_interfaces_par
   use MPI_outer_core_par
   implicit none
@@ -375,9 +375,9 @@
     NPROC_XI,NPROC_ETA,NPROCTOT, &
     NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NCHUNKS, &
     OUTPUT_FILES,IFLAG_IN_FICTITIOUS_CUBE,NGLLX,NGLLY,NGLLZ,NSPEC2D_BOTTOM
-    
+
   use create_MPI_interfaces_par
-  use MPI_inner_core_par  
+  use MPI_inner_core_par
   implicit none
 
   integer :: MAX_NEIGHBOURS,max_nibool

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_color_perm.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_color_perm.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_color_perm.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -40,7 +40,7 @@
   implicit none
 
   integer,intent(in) :: iregion_code
-  
+
   ! local parameters
   integer, dimension(:), allocatable :: perm
   integer :: ier
@@ -216,7 +216,7 @@
     endif
 
   end select
-  
+
   end subroutine setup_color_perm
 
 !
@@ -236,14 +236,14 @@
   use MPI_crust_mantle_par,only: &
     num_colors_outer_crust_mantle,num_colors_inner_crust_mantle,num_elem_colors_crust_mantle, &
     xstore => xstore_crust_mantle,ystore => ystore_crust_mantle,zstore => zstore_crust_mantle
-    
+
   use MPI_outer_core_par,only: &
     num_colors_outer_outer_core,num_colors_inner_outer_core,num_elem_colors_outer_core
-  
+
   use MPI_inner_core_par,only: &
     num_colors_outer_inner_core,num_colors_inner_inner_core,num_elem_colors_inner_core, &
-    idoubling_inner_core  
-  
+    idoubling_inner_core
+
   implicit none
 
   integer :: myrank,nspec,nglob
@@ -575,10 +575,10 @@
   use MPI_crust_mantle_par,only: &
     NSPEC_CRUST_MANTLE,ibool_crust_mantle,is_on_a_slice_edge_crust_mantle, &
     xstore => xstore_crust_mantle,ystore => ystore_crust_mantle,zstore => zstore_crust_mantle
-    
+
   use MPI_outer_core_par,only: &
     NSPEC_OUTER_CORE,ibool_outer_core,is_on_a_slice_edge_outer_core
-  
+
   use MPI_inner_core_par,only: &
     NSPEC_INNER_CORE,ibool_inner_core,is_on_a_slice_edge_inner_core
 

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_inner_outer.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_inner_outer.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/setup_inner_outer.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -31,13 +31,13 @@
   use meshfem3D_par,only: &
     myrank,OUTPUT_FILES,IMAIN, &
     IREGION_CRUST_MANTLE,IREGION_OUTER_CORE,IREGION_INNER_CORE
-    
+
   use MPI_crust_mantle_par
   use MPI_outer_core_par
   use MPI_inner_core_par
-  
+
   implicit none
-  
+
   integer,intent(in) :: iregion_code
 
   ! local parameters
@@ -76,7 +76,7 @@
         phase_ispec_inner_crust_mantle(iinner,2) = ispec
       endif
     enddo
-    
+
     ! user output
     if(myrank == 0) then
       write(IMAIN,*)
@@ -163,7 +163,7 @@
         phase_ispec_inner_inner_core(iinner,2) = ispec
       endif
     enddo
-    
+
     ! user output
     if(myrank == 0) then
       percentage_edge = 100. * nspec_outer_inner_core / real(NSPEC_INNER_CORE)
@@ -182,5 +182,5 @@
     endif
 
   end select
-  
+
   end subroutine setup_Inner_Outer

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/test_MPI_interfaces.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/test_MPI_interfaces.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/meshfem3D/test_MPI_interfaces.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -36,7 +36,7 @@
   use MPI_crust_mantle_par,only: NGLOB_CRUST_MANTLE
   use MPI_outer_core_par,only: NGLOB_OUTER_CORE
   use MPI_inner_core_par,only: NGLOB_INNER_CORE
-  
+
   implicit none
 
   integer,intent(in) :: iregion_code
@@ -157,10 +157,10 @@
         !call MPI_RECV(test_interfaces(1:inum,iproc),inum, &
         !              MPI_INTEGER,iproc,itag,MPI_COMM_WORLD,msg_status,ier)
         call recv_i(test_interfaces(1:inum,iproc),inum,iproc,itag)
-        
+
         !call MPI_RECV(test_interfaces_nibool(1:inum,iproc),inum, &
         !              MPI_INTEGER,iproc,itag,MPI_COMM_WORLD,msg_status,ier)
-        call recv_i(test_interfaces_nibool(1:inum,iproc),inum,iproc,itag)        
+        call recv_i(test_interfaces_nibool(1:inum,iproc),inum,iproc,itag)
       endif
     enddo
   else
@@ -175,7 +175,7 @@
       !call MPI_SEND(nibool_interfaces(1:num_interfaces),num_interfaces, &
       !              MPI_INTEGER,0,itag,MPI_COMM_WORLD,ier)
       call send_i(nibool_interfaces(1:num_interfaces),num_interfaces,0,itag)
-                    
+
     endif
   endif
   call sync_all()
@@ -279,7 +279,7 @@
   enddo
   ! total number of  interface points
   i = sum(nibool_interfaces_crust_mantle)
-  call sum_all_i(i,inum)  
+  call sum_all_i(i,inum)
 
   ! total number of unique points (some could be shared between different processes)
   i = nint( sum(test_flag_vector) )
@@ -289,7 +289,7 @@
   ! maximum valence
   i = maxval( valence(:) )
   num_max_valence = i
-  call max_all_i(i,ival)  
+  call max_all_i(i,ival)
 
   ! user output
   if( myrank == 0 ) then
@@ -333,7 +333,7 @@
   endif
 
   ! total number of assembly points
-  call sum_all_i(i,inum)    
+  call sum_all_i(i,inum)
 
   ! points defined by interfaces
   if( myrank == 0 ) then
@@ -364,7 +364,7 @@
   use meshfem3D_par,only: NPROCTOT,myrank
   use create_MPI_interfaces_par
   use MPI_outer_core_par
-  
+
   implicit none
 
   ! local parameters
@@ -392,16 +392,16 @@
     enddo
   enddo
   i = sum(nibool_interfaces_outer_core)
-  call sum_all_i(i,inum)  
+  call sum_all_i(i,inum)
 
   i = nint( sum(test_flag) )
   num_unique = i
-  call sum_all_i(i,icount)  
+  call sum_all_i(i,icount)
 
   ! maximum valence
   i = maxval( valence(:) )
   num_max_valence = i
-  call max_all_i(i,ival)  
+  call max_all_i(i,ival)
 
   if( myrank == 0 ) then
     write(IMAIN,*) '  total MPI interface points : ',inum
@@ -441,7 +441,7 @@
     print*,'error test outer core : rank',myrank,'unique mpi points:',i,num_unique
     call exit_mpi(myrank,'error MPI assembly outer core')
   endif
-  call sum_all_i(i,inum)  
+  call sum_all_i(i,inum)
 
   ! output
   if( myrank == 0 ) then
@@ -473,7 +473,7 @@
   use meshfem3D_par,only: NPROCTOT,myrank
   use create_MPI_interfaces_par
   use MPI_inner_core_par
-  
+
   implicit none
 
   ! local parameters
@@ -502,16 +502,16 @@
     enddo
   enddo
   i = sum(nibool_interfaces_inner_core)
-  call sum_all_i(i,inum)  
+  call sum_all_i(i,inum)
 
   i = nint( sum(test_flag_vector) )
   num_unique= i
-  call sum_all_i(i,icount)  
+  call sum_all_i(i,icount)
 
   ! maximum valence
   i = maxval( valence(:) )
   num_max_valence = i
-  call max_all_i(i,ival)  
+  call max_all_i(i,ival)
 
   if( myrank == 0 ) then
     write(IMAIN,*) '  total MPI interface points : ',inum

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/memory_eval.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/memory_eval.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/memory_eval.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -54,13 +54,13 @@
 
   ! input
   logical, intent(in) :: TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
-             ROTATION,TOPOGRAPHY,NCHUNKS, &
+             ROTATION,TOPOGRAPHY, &
              ATTENUATION,ONE_CRUST,OCEANS,ABSORBING_CONDITIONS, &
              MOVIE_VOLUME,SAVE_FORWARD
   integer, dimension(MAX_NUM_REGIONS), intent(in) :: NSPEC, nglob, &
             NSPEC2D_BOTTOM,NSPEC2D_TOP
 
-  integer, intent(in) :: NEX_PER_PROC_XI,NEX_PER_PROC_ETA,SIMULATION_TYPE
+  integer, intent(in) :: NCHUNKS,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,SIMULATION_TYPE
   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
@@ -236,7 +236,7 @@
     9.d0*dble(NGLLX)*dble(NGLLY)*dble(NGLLZ)*NSPEC(IREGION_CRUST_MANTLE)*dble(CUSTOM_REAL)
 
   ! xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle,rmass_crust_mantle
-  if(NCHUNKS /= 6 .and. ABSORBING_CONDITIONS) then
+  if( NCHUNKS /= 6 .and. ABSORBING_CONDITIONS) then
      ! three mass matrices for the crust and mantle region: rmassx, rmassy and rmassz
      static_memory_size = static_memory_size + &
           6.d0*nglob(IREGION_CRUST_MANTLE)*dble(CUSTOM_REAL)

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/save_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/save_header_file.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/shared/save_header_file.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -29,12 +29,13 @@
 
   subroutine save_header_file(NSPEC,nglob,NEX_XI,NEX_ETA,NPROC,NPROCTOT, &
                         TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
-                        ELLIPTICITY,GRAVITY,TOPOGRAPHY,ROTATION,OCEANS,ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D, &
+                        ELLIPTICITY,GRAVITY,ROTATION,TOPOGRAPHY, &
+                        OCEANS,ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D, &
                         ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,NCHUNKS, &
                         INCLUDE_CENTRAL_CUBE,CENTER_LONGITUDE_IN_DEGREES, &
                         CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,NSOURCES,NSTEP,&
-                        static_memory_size,NGLOB1D_RADIAL, &
-                        NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NSPEC2D_TOP,NSPEC2D_BOTTOM, &
+                        static_memory_size, &
+                        NSPEC2D_TOP,NSPEC2D_BOTTOM, &
                         NSPEC2DMAX_YMIN_YMAX,NSPEC2DMAX_XMIN_XMAX, &
                         NPROC_XI,NPROC_ETA, &
                         NSPECMAX_ANISO_IC,NSPECMAX_ISO_MANTLE,NSPECMAX_TISO_MANTLE, &
@@ -68,8 +69,8 @@
   ! static memory size needed by the solver
   double precision :: static_memory_size
 
-  integer, dimension(MAX_NUM_REGIONS) :: NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX, &
-                                    NSPEC2D_TOP,NSPEC2D_BOTTOM,NSPEC2DMAX_YMIN_YMAX,NSPEC2DMAX_XMIN_XMAX
+  integer, dimension(MAX_NUM_REGIONS) :: &
+        NSPEC2D_TOP,NSPEC2D_BOTTOM,NSPEC2DMAX_YMIN_YMAX,NSPEC2DMAX_XMIN_XMAX
   integer :: NPROC_XI,NPROC_ETA
 
   integer :: NSPECMAX_ANISO_IC,NSPECMAX_ISO_MANTLE,NSPECMAX_TISO_MANTLE, &
@@ -100,7 +101,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,NCORNERSCHUNKS,NUM_FACES,NUM_MSG_TYPES
+  integer :: att1,att2,att3,att4,att5
   integer :: ier
   character(len=150) HEADER_FILE
 
@@ -393,7 +394,7 @@
   endif
   write(IOUT,*)
 
-  if(TOPOGRAPHY .or. OCEANS) then
+  if(TOPOGRAPHY) then
     write(IOUT,*) 'integer, parameter :: NX_BATHY_VAL = NX_BATHY'
     write(IOUT,*) 'integer, parameter :: NY_BATHY_VAL = NY_BATHY'
   else
@@ -410,45 +411,12 @@
   write(IOUT,*) 'integer, parameter :: NSPEC_OUTER_CORE_ROTATION = ',NSPEC_OUTER_CORE_ROTATION
   write(IOUT,*)
 
-  write(IOUT,*) 'integer, parameter :: NGLOB1D_RADIAL_CM = ',NGLOB1D_RADIAL(IREGION_CRUST_MANTLE)
-  write(IOUT,*) 'integer, parameter :: NGLOB1D_RADIAL_OC = ',NGLOB1D_RADIAL(IREGION_OUTER_CORE)
-  write(IOUT,*) 'integer, parameter :: NGLOB1D_RADIAL_IC = ',NGLOB1D_RADIAL(IREGION_INNER_CORE)
-
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XMIN_XMAX_CM = ',NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE)
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XMIN_XMAX_OC = ',NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE)
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XMIN_XMAX_IC = ',NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE)
-
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_YMIN_YMAX_CM = ',NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE)
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_YMIN_YMAX_OC = ',NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE)
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_YMIN_YMAX_IC = ',NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE)
-
   write(IOUT,*) 'integer, parameter :: NPROC_XI_VAL = ',NPROC_XI
   write(IOUT,*) 'integer, parameter :: NPROC_ETA_VAL = ',NPROC_ETA
   write(IOUT,*) 'integer, parameter :: NCHUNKS_VAL = ',NCHUNKS
   write(IOUT,*) 'integer, parameter :: NPROCTOT_VAL = ',NPROCTOT
+  write(IOUT,*)
 
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XY_VAL = ', &
-            max(NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE))
-
-  if(NCHUNKS == 1 .or. NCHUNKS == 2) then
-    NCORNERSCHUNKS = 1
-    NUM_FACES = 1
-    NUM_MSG_TYPES = 1
-  else if(NCHUNKS == 3) then
-    NCORNERSCHUNKS = 1
-    NUM_FACES = 1
-    NUM_MSG_TYPES = 3
-  else if(NCHUNKS == 6) then
-    NCORNERSCHUNKS = 8
-    NUM_FACES = 4
-    NUM_MSG_TYPES = 3
-  else
-    stop 'error nchunks in save_header_file()'
-  endif
-
-  write(IOUT,*) 'integer, parameter :: NUMMSGS_FACES_VAL = ',NPROC_XI*NUM_FACES*NUM_MSG_TYPES
-  write(IOUT,*) 'integer, parameter :: NCORNERSCHUNKS_VAL = ',NCORNERSCHUNKS
-
   if(ATTENUATION) then
      if(ATTENUATION_3D) then
         att1 = NGLLX
@@ -474,6 +442,7 @@
   write(IOUT,*) 'integer, parameter :: ATT3 = ',att3
   write(IOUT,*) 'integer, parameter :: ATT4 = ',att4
   write(IOUT,*) 'integer, parameter :: ATT5 = ',att5
+  write(IOUT,*)
 
   write(IOUT,*) 'integer, parameter :: NSPEC2DMAX_XMIN_XMAX_CM = ',NSPEC2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE)
   write(IOUT,*) 'integer, parameter :: NSPEC2DMAX_YMIN_YMAX_CM = ',NSPEC2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE)

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/compute_stacey_crust_mantle.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/compute_stacey_crust_mantle.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/compute_stacey_crust_mantle.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -31,7 +31,7 @@
 
   use specfem_par,only: &
     ichunk,SIMULATION_TYPE,SAVE_FORWARD,NSTEP,it, &
-    wgllwgll_xz,wgllwgll_yz,wgllwgll_xy
+    wgllwgll_xz,wgllwgll_yz
 
   use specfem_par,only: GPU_MODE,Mesh_pointer
 

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/initialize_simulation.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/initialize_simulation.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/initialize_simulation.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -34,7 +34,9 @@
 
   ! local parameters
   integer, dimension(MAX_NUM_REGIONS) :: NSPEC_computed,NGLOB_computed, &
-    NSPEC2D_XI,NSPEC2D_ETA,NSPEC1D_RADIAL
+    NSPEC2D_XI,NSPEC2D_ETA,NSPEC1D_RADIAL,NGLOB1D_RADIAL
+  integer, dimension(MAX_NUM_REGIONS) :: NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
+    NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX
   logical :: CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA
   integer, dimension(NB_SQUARE_CORNERS,NB_CUT_CASE) :: DIFF_NSPEC1D_RADIAL
   integer, dimension(NB_SQUARE_EDGES_ONEDIR,NB_CUT_CASE) :: DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA
@@ -47,7 +49,8 @@
     GAMMA_ROTATION_AZIMUTH
   integer :: REFERENCE_1D_MODEL,THREE_D_MODEL
   logical :: TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE,OCEANS, &
-    ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D,ROTATION,ELLIPTICITY,GRAVITY,CASE_3D,ISOTROPIC_3D_MANTLE, &
+    ATTENUATION,ATTENUATION_NEW,ATTENUATION_3D,ROTATION,ELLIPTICITY, &
+    GRAVITY,CASE_3D,ISOTROPIC_3D_MANTLE, &
     HETEROGEN_3D_MANTLE,CRUSTAL,INFLATE_CENTRAL_CUBE
   character(len=150) :: dummystring
   integer, external :: err_occurred
@@ -382,7 +385,8 @@
     call exit_MPI(myrank, 'SIMULATION_TYPE can only be 1, 2, or 3')
 
   if (SIMULATION_TYPE /= 1 .and. NSOURCES > 999999)  &
-    call exit_MPI(myrank, 'for adjoint simulations, NSOURCES <= 999999, if you need more change i6.6 in write_seismograms.f90')
+    call exit_MPI(myrank, &
+    'for adjoint simulations, NSOURCES <= 999999, if you need more change i6.6 in write_seismograms.f90')
 
   if((SIMULATION_TYPE == 1 .and. SAVE_FORWARD) .or. SIMULATION_TYPE == 3) then
     if ( ATTENUATION_VAL) then
@@ -438,11 +442,6 @@
     endif
   endif
 
-  ! check that buffer size is valid when defining/using buffer_send_chunkcorn_scalar
-  if( NGLOB1D_RADIAL_CM < NGLOB1D_RADIAL_OC .or. NGLOB1D_RADIAL_CM < NGLOB1D_RADIAL_IC ) then
-    call exit_MPI(myrank, 'NGLOB1D_RADIAL_CM must be larger than for outer core or inner core, please check mesh')
-  endif
-
   ! check for GPU runs
   if( GPU_MODE ) then
     if( NGLLX /= 5 .or. NGLLY /= 5 .or. NGLLZ /= 5 ) &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/prepare_timerun.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/prepare_timerun.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/prepare_timerun.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -449,27 +449,37 @@
     write(IMAIN,*)
     write(IMAIN,*) 'Movie volume:'
     write(IMAIN,*) '  Writing to movie3D*** files on local disk databases directory'
-    if(MOVIE_VOLUME_TYPE == 1) then
-      write(IMAIN,*) '  movie output: strain'
-    else if(MOVIE_VOLUME_TYPE == 2) then
-      write(IMAIN,*) '  movie output: time integral of strain'
-    else if(MOVIE_VOLUME_TYPE == 3) then
+    select case( MOVIE_VOLUME_TYPE )
+    case( 1 )
+      write(IMAIN,*) '  movie output: strains'
+    case( 2 )
+      write(IMAIN,*) '  movie output: time integral of strains'
+    case( 3 )
       write(IMAIN,*) '  movie output: potency or integral of strain'
-    else if(MOVIE_VOLUME_TYPE == 4) then
+    case( 4 )
       write(IMAIN,*) '  movie output: divergence and curl'
-    else if(MOVIE_VOLUME_TYPE == 5) then
+    case( 5 )
       write(IMAIN,*) '  movie output: displacement'
-    else if(MOVIE_VOLUME_TYPE == 6) then
+    case( 6 )
       write(IMAIN,*) '  movie output: velocity'
-    endif
+    case( 7 )
+      write(IMAIN,*) '  movie output: norm of displacement'
+    case( 8 )
+      write(IMAIN,*) '  movie output: norm of velocity'
+    case( 9 )
+      write(IMAIN,*) '  movie output: norm of acceleration'
+    case default
+      call exit_MPI(myrank, 'MOVIE_VOLUME_TYPE has to be in range from 1 to 9')
+    end select
+    write(IMAIN,*)
     write(IMAIN,*) '  depth(T,B):',MOVIE_TOP,MOVIE_BOTTOM
     write(IMAIN,*) '  lon(W,E)  :',MOVIE_WEST,MOVIE_EAST
     write(IMAIN,*) '  lat(S,N)  :',MOVIE_SOUTH,MOVIE_NORTH
     write(IMAIN,*) '  Starting at time step:',MOVIE_START, 'ending at:',MOVIE_STOP,'every: ',NTSTEP_BETWEEN_FRAMES
   endif
 
-  if( MOVIE_VOLUME_TYPE < 1 .or. MOVIE_VOLUME_TYPE > 6) &
-      call exit_MPI(myrank, 'MOVIE_VOLUME_TYPE has to be 1,2,3,4,5 or 6')
+  if( MOVIE_VOLUME_TYPE < 1 .or. MOVIE_VOLUME_TYPE > 9) &
+      call exit_MPI(myrank, 'MOVIE_VOLUME_TYPE has to be in range from 1 to 9')
 
   call sync_all()
 

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/read_topography_bathymetry.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/read_topography_bathymetry.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/read_topography_bathymetry.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -51,7 +51,7 @@
   endif
 
   ! read topography and bathymetry file
-  if( TOPOGRAPHY .or. OCEANS_VAL ) then
+  if( TOPOGRAPHY ) then
     ! initializes
     ibathy_topo(:,:) = 0
 

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D.F90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D.F90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -45,6 +45,7 @@
   use specfem_par_innercore
   use specfem_par_outercore
   use specfem_par_movie
+
   implicit none
 
   ! standard include of the MPI library
@@ -53,9 +54,6 @@
   ! local parameters
   integer :: ier
 
-! include values created by the mesher
-!  include "OUTPUT_FILES/values_from_mesher.h"
-
 !=======================================================================!
 !                                                                       !
 !   specfem3D is a 3-D spectral-element solver for the Earth.           !

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D_par.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D_par.F90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/specfem3D_par.F90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -242,10 +242,7 @@
   !-----------------------------------------------------------------
 
   ! this for all the regions
-  integer, dimension(MAX_NUM_REGIONS) :: NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
-    NSPEC2D_BOTTOM,NSPEC2D_TOP, &
-    NGLOB1D_RADIAL, &
-    NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX
+  integer, dimension(MAX_NUM_REGIONS) :: NSPEC2D_BOTTOM,NSPEC2D_TOP
 
   ! computed in read_compute_parameters
   integer, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: ner,ratio_sampling_array

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_output.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_output.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_output.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -135,10 +135,6 @@
                                 epsilondev_xy_inner_core,epsilondev_xz_inner_core, &
                                 epsilondev_yz_inner_core)
           ! wavefields
-          call transfer_fields_cm_from_device(NDIM*NGLOB_CRUST_MANTLE, &
-                                displ_crust_mantle,veloc_crust_mantle,accel_crust_mantle,Mesh_pointer)
-          call transfer_fields_ic_from_device(NDIM*NGLOB_INNER_CORE, &
-                                displ_inner_core,veloc_inner_core,accel_inner_core,Mesh_pointer)
           call transfer_fields_oc_from_device(NGLOB_OUTER_CORE, &
                                 displ_outer_core,veloc_outer_core,accel_outer_core,Mesh_pointer)
         endif
@@ -151,11 +147,7 @@
                         epsilondev_xz_crust_mantle,epsilondev_yz_crust_mantle, &
                         epsilondev_xx_inner_core,epsilondev_yy_inner_core,epsilondev_xy_inner_core, &
                         epsilondev_xz_inner_core,epsilondev_yz_inner_core, &
-                        LOCAL_TMP_PATH, &
-                        displ_crust_mantle,displ_inner_core,displ_outer_core, &
-                        veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
-                        accel_crust_mantle,accel_inner_core, &
-                        ibool_crust_mantle,ibool_inner_core)
+                        LOCAL_TMP_PATH)
 
       case( 5 )
         !output displacement
@@ -181,8 +173,63 @@
                     MOVIE_COARSE,ibool_crust_mantle,veloc_crust_mantle, &
                     scalingval,mask_3dmovie,nu_3dmovie)
 
+      case( 7 )
+        ! output norm of displacement
+
+        ! gets resulting array values onto CPU
+        if( GPU_MODE ) then
+          ! wavefields
+          call transfer_fields_cm_from_device(NDIM*NGLOB_CRUST_MANTLE, &
+                                displ_crust_mantle,veloc_crust_mantle,accel_crust_mantle,Mesh_pointer)
+          call transfer_fields_ic_from_device(NDIM*NGLOB_INNER_CORE, &
+                                displ_inner_core,veloc_inner_core,accel_inner_core,Mesh_pointer)
+          call transfer_fields_oc_from_device(NGLOB_OUTER_CORE, &
+                                displ_outer_core,veloc_outer_core,accel_outer_core,Mesh_pointer)
+        endif
+
+        call write_movie_volume_displnorm(myrank,it,LOCAL_TMP_PATH, &
+                        displ_crust_mantle,displ_inner_core,displ_outer_core, &
+                        ibool_crust_mantle,ibool_inner_core,ibool_outer_core)
+
+      case( 8 )
+        ! output norm of velocity
+
+        ! gets resulting array values onto CPU
+        if( GPU_MODE ) then
+          ! wavefields
+          call transfer_fields_cm_from_device(NDIM*NGLOB_CRUST_MANTLE, &
+                                displ_crust_mantle,veloc_crust_mantle,accel_crust_mantle,Mesh_pointer)
+          call transfer_fields_ic_from_device(NDIM*NGLOB_INNER_CORE, &
+                                displ_inner_core,veloc_inner_core,accel_inner_core,Mesh_pointer)
+          call transfer_fields_oc_from_device(NGLOB_OUTER_CORE, &
+                                displ_outer_core,veloc_outer_core,accel_outer_core,Mesh_pointer)
+        endif
+
+        call write_movie_volume_velnorm(myrank,it,LOCAL_TMP_PATH, &
+                        veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
+                        ibool_crust_mantle,ibool_inner_core,ibool_outer_core)
+
+      case( 9 )
+        ! output norm of acceleration
+
+        ! gets resulting array values onto CPU
+        if( GPU_MODE ) then
+          ! wavefields
+          call transfer_fields_cm_from_device(NDIM*NGLOB_CRUST_MANTLE, &
+                                displ_crust_mantle,veloc_crust_mantle,accel_crust_mantle,Mesh_pointer)
+          call transfer_fields_ic_from_device(NDIM*NGLOB_INNER_CORE, &
+                                displ_inner_core,veloc_inner_core,accel_inner_core,Mesh_pointer)
+          call transfer_fields_oc_from_device(NGLOB_OUTER_CORE, &
+                                displ_outer_core,veloc_outer_core,accel_outer_core,Mesh_pointer)
+        endif
+
+        call write_movie_volume_accelnorm(myrank,it,LOCAL_TMP_PATH, &
+                        accel_crust_mantle,accel_inner_core,accel_outer_core, &
+                        ibool_crust_mantle,ibool_inner_core,ibool_outer_core)
+
       case default
-        call exit_MPI(myrank, 'MOVIE_VOLUME_TYPE has to be 1,2,3,4,5 or 6')
+        call exit_MPI(myrank, 'MOVIE_VOLUME_TYPE has to be in range from 1 to 9')
+
       end select ! MOVIE_VOLUME_TYPE
 
     endif

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_volume.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_volume.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_movie_volume.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -554,11 +554,7 @@
                                       epsilondev_xz_crust_mantle,epsilondev_yz_crust_mantle, &
                                       epsilondev_xx_inner_core,epsilondev_yy_inner_core,epsilondev_xy_inner_core, &
                                       epsilondev_xz_inner_core,epsilondev_yz_inner_core, &
-                                      LOCAL_TMP_PATH, &
-                                      displ_crust_mantle,displ_inner_core,displ_outer_core, &
-                                      veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
-                                      accel_crust_mantle,accel_inner_core, &
-                                      ibool_crust_mantle,ibool_inner_core)
+                                      LOCAL_TMP_PATH)
 
   implicit none
   include "constants.h"
@@ -574,46 +570,27 @@
   integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE) :: ibool_outer_core
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STRAIN_ONLY) :: eps_trace_over_3_inner_core
-!  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: epsilondev_crust_mantle
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) :: &
     epsilondev_xx_crust_mantle,epsilondev_yy_crust_mantle,epsilondev_xy_crust_mantle, &
     epsilondev_xz_crust_mantle,epsilondev_yz_crust_mantle
 
-!  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_OR_ATT) :: epsilondev_inner_core
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE_STR_OR_ATT) :: &
     epsilondev_xx_inner_core,epsilondev_yy_inner_core,epsilondev_xy_inner_core, &
     epsilondev_xz_inner_core,epsilondev_yz_inner_core
 
-
   character(len=150) LOCAL_TMP_PATH
 
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: displ_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: veloc_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: accel_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(NGLOB_OUTER_CORE) :: veloc_outer_core
-  real(kind=CUSTOM_REAL), dimension(NGLOB_OUTER_CORE) :: displ_outer_core
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: displ_inner_core
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: veloc_inner_core
-  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: accel_inner_core
-
-  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
-  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: ibool_inner_core
-
   ! local parameters
   real(kind=CUSTOM_REAL) :: rhol,kappal
   real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: div_s_outer_core
   integer :: ispec,iglob,i,j,k,ier
   character(len=150) outputname
   real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: tmp_data
-  real(kind=CUSTOM_REAL) :: scale_displ,scale_veloc,scale_accel
 
   ! output parameters
   logical,parameter :: MOVIE_OUTPUT_DIV = .true.          ! divergence
-  logical,parameter :: MOVIE_OUTPUT_CURL = .false.        ! curl
+  logical,parameter :: MOVIE_OUTPUT_CURL = .true.        ! curl
   logical,parameter :: MOVIE_OUTPUT_CURLNORM = .true.     ! frobenius norm of curl
-  logical,parameter :: MOVIE_OUTPUT_DISPLNORM = .false.   ! norm of displacement
-  logical,parameter :: MOVIE_OUTPUT_VELOCNORM = .false.   ! norm of velocity
-  logical,parameter :: MOVIE_OUTPUT_ACCELNORM = .false.   ! norm of acceleration
 
   ! outputs divergence
   if( MOVIE_OUTPUT_DIV ) then
@@ -751,13 +728,47 @@
     !close(27)
   endif
 
+  end subroutine write_movie_volume_divcurl
+
+!
+!-------------------------------------------------------------------------------------------------
+!
+
+ subroutine write_movie_volume_displnorm(myrank,it,LOCAL_TMP_PATH, &
+                                      displ_crust_mantle,displ_inner_core,displ_outer_core, &
+                                      ibool_crust_mantle,ibool_inner_core,ibool_outer_core)
+
+  implicit none
+  include "constants.h"
+  include "OUTPUT_FILES/values_from_mesher.h"
+
+  integer :: myrank,it
+
+  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: displ_crust_mantle
+  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: displ_inner_core
+  real(kind=CUSTOM_REAL), dimension(NGLOB_OUTER_CORE) :: displ_outer_core
+
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: ibool_inner_core
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE) :: ibool_outer_core
+
+  character(len=150) LOCAL_TMP_PATH
+
+  ! local parameters
+  integer :: ispec,iglob,i,j,k,ier
+  character(len=150) outputname
+  real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: tmp_data
+  real(kind=CUSTOM_REAL) :: scale_displ
+
+  logical,parameter :: OUTPUT_CRUST_MANTLE = .true.
+  logical,parameter :: OUTPUT_OUTER_CORE = .true.
+  logical,parameter :: OUTPUT_INNER_CORE = .true.
+
   ! dimensionalized scalings
   scale_displ = R_EARTH
-  scale_veloc = scale_displ * sqrt(PI*GRAV*RHOAV)
-  scale_accel = scale_veloc * dsqrt(PI*GRAV*RHOAV)
 
   ! outputs norm of displacement
-  if( MOVIE_OUTPUT_DISPLNORM ) then
+  if( OUTPUT_CRUST_MANTLE ) then
     ! crust mantle
     ! these binary arrays can be converted into mesh format using the utilitiy ./bin/xcombine_vol_data
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE))
@@ -780,7 +791,9 @@
     write(27) tmp_data
     close(27)
     deallocate(tmp_data)
+  endif
 
+  if( OUTPUT_OUTER_CORE ) then
     ! outer core
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE))
     do ispec = 1, NSPEC_OUTER_CORE
@@ -802,7 +815,9 @@
     write(27) tmp_data
     close(27)
     deallocate(tmp_data)
+  endif
 
+  if( OUTPUT_INNER_CORE ) then
     ! inner core
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE))
     do ispec = 1, NSPEC_INNER_CORE
@@ -826,9 +841,49 @@
     deallocate(tmp_data)
   endif
 
+  end subroutine write_movie_volume_displnorm
 
+
+!
+!-------------------------------------------------------------------------------------------------
+!
+
+ subroutine write_movie_volume_velnorm(myrank,it,LOCAL_TMP_PATH, &
+                                      veloc_crust_mantle,veloc_inner_core,veloc_outer_core, &
+                                      ibool_crust_mantle,ibool_inner_core,ibool_outer_core)
+
+  implicit none
+  include "constants.h"
+  include "OUTPUT_FILES/values_from_mesher.h"
+
+  integer :: myrank,it
+
+  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: veloc_crust_mantle
+  real(kind=CUSTOM_REAL), dimension(NGLOB_OUTER_CORE) :: veloc_outer_core
+  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: veloc_inner_core
+
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: ibool_inner_core
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE) :: ibool_outer_core
+
+  character(len=150) LOCAL_TMP_PATH
+
+  ! local parameters
+  integer :: ispec,iglob,i,j,k,ier
+  character(len=150) outputname
+  real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: tmp_data
+  real(kind=CUSTOM_REAL) :: scale_displ,scale_veloc
+
+  logical,parameter :: OUTPUT_CRUST_MANTLE = .true.
+  logical,parameter :: OUTPUT_OUTER_CORE = .true.
+  logical,parameter :: OUTPUT_INNER_CORE = .true.
+
+  ! dimensionalized scalings
+  scale_displ = R_EARTH
+  scale_veloc = scale_displ * sqrt(PI*GRAV*RHOAV)
+
   ! outputs norm of velocity
-  if( MOVIE_OUTPUT_VELOCNORM ) then
+  if( OUTPUT_CRUST_MANTLE ) then
     ! crust mantle
     ! these binary arrays can be converted into mesh format using the utilitiy ./bin/xcombine_vol_data
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE))
@@ -851,7 +906,9 @@
     write(27) tmp_data
     close(27)
     deallocate(tmp_data)
+  endif
 
+  if( OUTPUT_OUTER_CORE ) then
     ! outer core
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE))
     do ispec = 1, NSPEC_OUTER_CORE
@@ -873,7 +930,9 @@
     write(27) tmp_data
     close(27)
     deallocate(tmp_data)
+  endif
 
+  if( OUTPUT_INNER_CORE ) then
     ! inner core
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE))
     do ispec = 1, NSPEC_INNER_CORE
@@ -897,8 +956,49 @@
     deallocate(tmp_data)
   endif
 
+  end subroutine write_movie_volume_velnorm
+
+!
+!-------------------------------------------------------------------------------------------------
+!
+
+ subroutine write_movie_volume_accelnorm(myrank,it,LOCAL_TMP_PATH, &
+                                      accel_crust_mantle,accel_inner_core,accel_outer_core, &
+                                      ibool_crust_mantle,ibool_inner_core,ibool_outer_core)
+
+  implicit none
+  include "constants.h"
+  include "OUTPUT_FILES/values_from_mesher.h"
+
+  integer :: myrank,it
+
+  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: accel_crust_mantle
+  real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: accel_inner_core
+  real(kind=CUSTOM_REAL), dimension(NGLOB_OUTER_CORE) :: accel_outer_core
+
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: ibool_inner_core
+  integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE) :: ibool_outer_core
+
+  character(len=150) LOCAL_TMP_PATH
+
+  ! local parameters
+  integer :: ispec,iglob,i,j,k,ier
+  character(len=150) outputname
+  real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: tmp_data
+  real(kind=CUSTOM_REAL) :: scale_displ,scale_veloc,scale_accel
+
+  logical,parameter :: OUTPUT_CRUST_MANTLE = .true.
+  logical,parameter :: OUTPUT_OUTER_CORE = .true.
+  logical,parameter :: OUTPUT_INNER_CORE = .true.
+
+  ! dimensionalized scalings
+  scale_displ = R_EARTH
+  scale_veloc = scale_displ * sqrt(PI*GRAV*RHOAV)
+  scale_accel = scale_veloc * dsqrt(PI*GRAV*RHOAV)
+
   ! outputs norm of acceleration
-  if( MOVIE_OUTPUT_ACCELNORM ) then
+  if( OUTPUT_CRUST_MANTLE ) then
     ! acceleration
     ! these binary arrays can be converted into mesh format using the utilitiy ./bin/xcombine_vol_data
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE))
@@ -921,7 +1021,9 @@
     write(27) tmp_data
     close(27)
     deallocate(tmp_data)
+  endif
 
+  if( OUTPUT_OUTER_CORE ) then
     ! outer core acceleration
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE))
     do ispec = 1, NSPEC_OUTER_CORE
@@ -943,7 +1045,9 @@
     write(27) tmp_data
     close(27)
     deallocate(tmp_data)
+  endif
 
+  if( OUTPUT_INNER_CORE ) then
     ! inner core
     allocate(tmp_data(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE))
     do ispec = 1, NSPEC_INNER_CORE
@@ -967,5 +1071,7 @@
     deallocate(tmp_data)
   endif
 
-  end subroutine write_movie_volume_divcurl
+  end subroutine write_movie_volume_accelnorm
 
+
+

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_seismograms.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_seismograms.f90	2012-07-25 22:31:12 UTC (rev 20547)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SPECFEM3D_GLOBE_SUNFLOWER/src/specfem3D/write_seismograms.f90	2012-07-27 14:58:30 UTC (rev 20548)
@@ -131,10 +131,10 @@
           number_receiver_global,seismograms, &
           islice_selected_rec, &
           seismo_offset,seismo_current, &
-          OUTPUT_SEISMOS_ASCII_TEXT,OUTPUT_SEISMOS_SAC_ALPHANUM, &
-          OUTPUT_SEISMOS_SAC_BINARY,ROTATE_SEISMOGRAMS_RT,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
+          OUTPUT_SEISMOS_ASCII_TEXT, &
+          NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
           SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE, &
-          MODEL,OUTPUT_FILES, &
+          OUTPUT_FILES, &
           WRITE_SEISMOGRAMS_BY_MASTER
 
   implicit none
@@ -349,7 +349,6 @@
   use specfem_par,only: &
           ANGULAR_WIDTH_XI_IN_DEGREES,NEX_XI, &
           myrank,nrec, &
-          number_receiver_global, &
           station_name,network_name,stlat,stlon,stele,stbur, &
           DT,seismo_offset,seismo_current,it_end, &
           OUTPUT_SEISMOS_ASCII_TEXT,OUTPUT_SEISMOS_SAC_ALPHANUM, &



More information about the CIG-COMMITS mailing list