[cig-commits] r11827 - in seismo/3D/SPECFEM3D_GLOBE/trunk: . DATA

vala at geodynamics.org vala at geodynamics.org
Thu Apr 17 22:54:56 PDT 2008


Author: vala
Date: 2008-04-17 22:54:56 -0700 (Thu, 17 Apr 2008)
New Revision: 11827

Modified:
   seismo/3D/SPECFEM3D_GLOBE/trunk/DATA/Par_file
   seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_1D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_2D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_corners_chunks.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_faces_chunks.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/combine_AVS_DX.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/combine_paraview_strain_data.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/create_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_AVS_DX.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_GMT_global.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/meshfem3D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/read_compute_parameters.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/specfem3D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/write_movie_volume.f90
Log:
Modified parameter MOVIE_VOLUME_COARSE to MOVIE_COARSE.  This parameter will now work for both MOVIE_VOLUME and MOVIE_SURFACE to output only values at corners of elements.  Note that this options so far only works for surface movies with create_movie_GMT_global, not with create_movie_AVS_DX.



Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/DATA/Par_file	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/DATA/Par_file	2008-04-18 05:54:56 UTC (rev 11827)
@@ -15,7 +15,7 @@
 
 # number of elements at the surface along the two sides of the first chunk
 # (must be multiple of 16 and 8 * multiple of NPROC below)
-NEX_XI                          = 96 
+NEX_XI                          = 96
 NEX_ETA                         = 96
 
 # number of MPI processors along the two sides of the first chunk
@@ -48,8 +48,11 @@
 RECORD_LENGTH_IN_MINUTES        = 75.0d0
 
 # save AVS or OpenDX movies
+#MOVIE_COARSE saves movie only at corners of elements (SURFACE OR VOLUME) 
+#MOVIE_COARSE does not work with create_movie_AVS_DX
 MOVIE_SURFACE                   = .false.
 MOVIE_VOLUME                    = .false.
+MOVIE_COARSE                    = .false.
 NTSTEP_BETWEEN_FRAMES           = 100
 HDUR_MOVIE                      = 0.d0
 
@@ -59,9 +62,7 @@
 # start/stop: frames will be stored at MOVIE_START + i*NSTEP_BETWEEN_FRAMES, where i=(0,1,2..) and iNSTEP_BETWEEN_FRAMES <= MOVIE_STOP
 # movie_volume_type: 1=strain, 2=time integral of strain, 3=\mu*time integral of strain
 # type 4 saves the trace and deviatoric stress in the whole volume, 5=displacement, 6=velocity
-#MOVIE_VOLUME_COARSE saves movie only at corners of elements
 MOVIE_VOLUME_TYPE               = 2
-MOVIE_VOLUME_COARSE             = .true.
 MOVIE_TOP_KM                    = -100.0
 MOVIE_BOTTOM_KM                 = 1000.0
 MOVIE_WEST_DEG                  = -90.0

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_1D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_1D.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_1D.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -70,7 +70,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -132,7 +132,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_2D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_2D.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_2D.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -76,7 +76,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -136,7 +136,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_corners_chunks.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_corners_chunks.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_corners_chunks.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -68,7 +68,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -125,7 +125,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_faces_chunks.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_faces_chunks.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/check_buffers_faces_chunks.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -72,7 +72,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -130,7 +130,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/combine_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/combine_AVS_DX.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/combine_AVS_DX.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -138,7 +138,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -205,7 +205,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/combine_paraview_strain_data.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/combine_paraview_strain_data.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/combine_paraview_strain_data.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -37,16 +37,16 @@
   character(len=150) :: arg(7), prname, dimension_file
   character(len=150) :: mesh_file, local_element_file, local_data_file
   character(len=3) :: comp
-  logical :: MOVIE_VOLUME_COARSE
+  logical :: MOVIE_COARSE
 
   do i = 1,6
     call getarg(i,arg(i))
     if (i < 7 .and. trim(arg(i)) == '') then
       print *, ' '
-      print *, ' Usage: xcombine_data nnodes dt_movie itstart itstop comp MOVIE_VOLUME_COARSE'
+      print *, ' Usage: xcombine_data nnodes dt_movie itstart itstop comp MOVIE_COARSE'
       print *, '   component can be SEE, SNE,SEZ,SNN,SNZ,SZZ,I1 or I2'
       print *, '   stored in the local directory as real(kind=CUSTOM_REAL) filename(NGLLX,NGLLY,NGLLZ,nspec)  '
-      print *, 'MOVIE_VOLUME_COARSE = 0 or 1 '
+      print *, 'MOVIE_COARSE = 0 or 1 '
       stop ' Reenter command line options'
     endif
   enddo
@@ -57,7 +57,7 @@
   read(arg(3),*) itstart
   read(arg(4),*) itstop
   read(arg(5),*) comp
-  read(arg(6),*) MOVIE_VOLUME_COARSE
+  read(arg(6),*) MOVIE_COARSE
 
   if(num_node>1000) stop 'change array sizes for num_node > 1000 and recompile xcombine_paraview_movie_data'
 
@@ -251,14 +251,14 @@
     !  print *, trim(local_element_file)
 
       if (iproc == 1) then
-        if(MOVIE_VOLUME_COARSE) then
+        if(MOVIE_COARSE) then
          call write_integer_fd(fid,nelement_all)
         else
          call write_integer_fd(fid,nelement_all*64)
         endif
       endif
 
-      if(MOVIE_VOLUME_COARSE) then
+      if(MOVIE_COARSE) then
         nelement_local = nelement(iproc)
       else
         nelement_local = nelement(iproc)*64

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/create_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/create_header_file.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/create_header_file.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -52,7 +52,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION,CASE_3D, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD, &
@@ -125,7 +125,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
@@ -142,6 +142,7 @@
          DIFF_NSPEC1D_RADIAL,DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA,&
          WRITE_SEISMOGRAMS_BY_MASTER,SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE,.false.)
 
+
 ! count the total number of sources in the CMTSOLUTION file
   call count_number_of_sources(NSOURCES)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_AVS_DX.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_AVS_DX.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -702,7 +702,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -754,7 +754,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
@@ -770,6 +770,7 @@
          ROTATE_SEISMOGRAMS_RT,ratio_divide_central_cube,HONOR_1D_SPHERICAL_MOHO,CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA,&
          DIFF_NSPEC1D_RADIAL,DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA,&
          WRITE_SEISMOGRAMS_BY_MASTER,SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE,.false.)
+  if(MOVIE_COARSE) stop 'create_movie_AVS_DX does not work with MOVIE_COARSE'
 
   end subroutine read_AVS_DX_parameters
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_GMT_global.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_GMT_global.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/create_movie_GMT_global.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -40,14 +40,14 @@
   integer ispec
 
   real(kind=CUSTOM_REAL), dimension(:,:), allocatable :: x,y,z,displn
-  real(kind=CUSTOM_REAL) xcoord,ycoord,zcoord,rval,thetaval,phival,lat,long
+  real(kind=CUSTOM_REAL) xcoord,ycoord,zcoord,rval,thetaval,phival
   real(kind=CUSTOM_REAL) RRval,rhoval
   real(kind=CUSTOM_REAL) displx,disply,displz
   real(kind=CUSTOM_REAL) normal_x,normal_y,normal_z
   real(kind=CUSTOM_REAL) thetahat_x,thetahat_y,thetahat_z
   real(kind=CUSTOM_REAL) phihat_x,phihat_y
   double precision min_field_current,max_field_current,max_absol
-  real disp
+  real disp,lat,long
   integer nframes,iframe,USE_COMPONENT
 
   character(len=150) outputname
@@ -55,7 +55,7 @@
   integer iproc,ipoin
 
 ! for sorting routine
-  integer npointot,ilocnum,ielm,ieoff,ispecloc
+  integer npointot,ilocnum,ielm,ieoff,ispecloc,NIT
   double precision, dimension(:), allocatable :: xp,yp,zp,field_display
 
 ! for dynamic memory allocation
@@ -84,7 +84,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD, &
@@ -113,7 +113,7 @@
   double precision, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: r_bottom,r_top
   logical, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: this_region_has_a_doubling
   double precision, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: rmins,rmaxs
-  logical :: CASE_3D
+  logical :: CASE_3D,OUTPUT_BINARY
 
   logical :: CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA
   integer, dimension(NB_SQUARE_CORNERS,NB_CUT_CASE) :: DIFF_NSPEC1D_RADIAL
@@ -123,7 +123,7 @@
 
   print *
   print *,'Recombining all movie frames to create a movie'
-  print *
+  print *,'Run this program from the directory containing directories DATA and OUTPUT_FILES'
 
   print *
   print *,'reading parameter file'
@@ -145,7 +145,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
@@ -168,9 +168,13 @@
   print *
   print *,'There are ',NPROCTOT,' slices numbered from 0 to ',NPROCTOT-1
   print *
-
-  ilocnum = NGLLX*NGLLY*NEX_PER_PROC_XI*NEX_PER_PROC_ETA
-
+  if(MOVIE_COARSE) then
+    ilocnum = 2 * 2 * NEX_PER_PROC_XI*NEX_PER_PROC_ETA
+    NIT =NGLLX-1
+  else
+    ilocnum = NGLLX*NGLLY*NEX_PER_PROC_XI*NEX_PER_PROC_ETA
+    NIT = 1
+  endif
   print *
   print *,'Allocating arrays for reading data of size ',ilocnum*NPROCTOT,'=',6*ilocnum*NPROCTOT*CUSTOM_REAL/1000000,'MB'
   print *
@@ -219,6 +223,9 @@
   print *,'enter component (e.g. 1=Z, 2=N, 3=E)'
   read(5,*) USE_COMPONENT
 
+  print *,'enter output ascii (0) or binary (1)'
+  read(5,*) OUTPUT_BINARY
+
   print *
   print *,'looping from ',it1,' to ',it2,' every ',NTSTEP_BETWEEN_FRAMES,' time steps'
 
@@ -232,7 +239,11 @@
   if(nframes == 0) stop 'null number of frames'
 
 ! maximum theoretical number of points at the surface
-  npointot = NCHUNKS * NEX_XI * NEX_ETA * (NGLLX-1) * (NGLLY-1)
+  if(MOVIE_COARSE) then
+    npointot = NCHUNKS * NEX_XI * NEX_ETA
+  else
+    npointot = NCHUNKS * NEX_XI * NEX_ETA * (NGLLX-1) * (NGLLY-1)
+  endif
 
   print *
   print *,'there are a total of ',npointot,' points on the surface.'
@@ -264,14 +275,13 @@
 
 ! loop on all the time steps in the range entered
   do it = it1,it2
-
      ! check if time step corresponds to a movie frame
      if(mod(it,NTSTEP_BETWEEN_FRAMES) == 0) then
 
         iframe = iframe + 1
 
         ! read all the elements from the same file
-        write(outputname,"('moviedata',i6.6)") it
+        write(outputname,"('OUTPUT_FILES/moviedata',i6.6)") it
         open(unit=IOUT,file=outputname,status='old',form='unformatted')
 
         print *
@@ -292,17 +302,12 @@
         ! read points for all the slices
         print *,'Converting to geo-coordinates'
         do iproc = 0,NPROCTOT-1
-
            ! reset point number
            ipoin = 0
-
            do ispecloc = 1,NEX_PER_PROC_XI*NEX_PER_PROC_ETA
-
-              do j = 1,NGLLY
-                 do i = 1,NGLLX
-
+              do j = 1,NGLLY,NIT
+                 do i = 1,NGLLX,NIT
                     ipoin = ipoin + 1
-
                     xcoord = store_val_x(ipoin,iproc)
                     ycoord = store_val_y(ipoin,iproc)
                     zcoord = store_val_z(ipoin,iproc)
@@ -323,7 +328,6 @@
                     z(i,j) = zcoord
 
                     if(USE_COMPONENT == 1) then
-
                        ! compute unit normal vector to the surface
                        RRval = sqrt(xcoord**2 + ycoord**2 + zcoord**2)
                        normal_x = xcoord / RRval
@@ -351,24 +355,32 @@
 
                        displn(i,j) = displx*phihat_x   + disply*phihat_y
                     endif
-                 enddo
-              enddo
+                 enddo !i
+              enddo  !j
 
               ispec = ispec + 1
-              ielm = (NGLLX-1)*(NGLLY-1)*(ispec-1)
-              do j = 1,NGLLY-1
-                 do i = 1,NGLLX-1
-                    ieoff = (ielm+(i-1)+(j-1)*(NGLLX-1))
+              if(MOVIE_COARSE) then
+                ielm = ispec-1
+              else
+                ielm = (NGLLX-1)*(NGLLY-1)*(ispec-1)
+              endif
+              do j = 1,NGLLY-NIT
+                 do i = 1,NGLLX-NIT
+                    if(MOVIE_COARSE) then
+                      ieoff = ielm+1
+                    else
+                      ieoff = (ielm+(i-1)+(j-1)*(NGLLX-1))+1
+                    endif
                     xp(ieoff) = dble(x(i,j))
                     yp(ieoff) = dble(y(i,j))
                     zp(ieoff) = dble(z(i,j))
                     field_display(ieoff) = dble(displn(i,j))
-                 enddo
-              enddo
+                 enddo !i
+              enddo  !j
 
-           enddo
+           enddo !ispec
 
-        enddo
+        enddo !nproc
 
         ! compute min and max of data value to normalize
         min_field_current = minval(field_display(:))
@@ -391,23 +403,37 @@
 
         print *
         print *,'initial number of points (with multiples) was ',npointot
+        print *,'final number of points is                     ',ieoff
 
         !--- ****** create GMT file ******
 
         ! create file name and open file
+      if(OUTPUT_BINARY) then
         if(USE_COMPONENT == 1) then
+           write(outputname,"('bin_movie_',i6.6,'.d')") it
+        elseif(USE_COMPONENT == 2) then
+           write(outputname,"('bin_movie_',i6.6,'.N')") it
+        elseif(USE_COMPONENT == 3) then
+           write(outputname,"('bin_movie_',i6.6,'.E')") it
+        endif
+        open(unit=11,file='OUTPUT_FILES/'//trim(outputname),status='unknown',form='unformatted')
+        if(iframe == 1) open(unit=12,file='OUTPUT_FILES/bin_movie.xy',status='unknown',form='unformatted')
+       else
+        if(USE_COMPONENT == 1) then
            write(outputname,"('ascii_movie_',i6.6,'.d')") it
         elseif(USE_COMPONENT == 2) then
            write(outputname,"('ascii_movie_',i6.6,'.N')") it
         elseif(USE_COMPONENT == 3) then
            write(outputname,"('ascii_movie_',i6.6,'.E')") it
         endif
-
+        open(unit=11,file='OUTPUT_FILES/'//trim(outputname),status='unknown')
+        if(iframe == 1) open(unit=12,file='OUTPUT_FILES/ascii_movie.xy',status='unknown')
+       endif
         ! clear number of elements kept
         ispec = 0
 
         ! read points for all the slices
-        print *,'Writing output'
+        print *,'Writing output',outputname
         do iproc = 0,NPROCTOT-1
 
            ! reset point number
@@ -415,10 +441,18 @@
 
            do ispecloc = 1,NEX_PER_PROC_XI*NEX_PER_PROC_ETA
               ispec = ispec + 1
-              ielm = (NGLLX-1)*(NGLLY-1)*(ispec-1)
-              do j = 1,NGLLY-1
-                 do i = 1,NGLLX-1
-                    ieoff = (ielm+(i-1)+(j-1)*(NGLLX-1))
+              if(MOVIE_COARSE) then
+                ielm = ispec - 1
+              else
+                ielm = (NGLLX-1)*(NGLLY-1)*(ispec-1)
+              endif
+                do j = 1,NGLLY-NIT
+                 do i = 1,NGLLX-NIT
+                    if(MOVIE_COARSE) then
+                     ieoff = ielm + 1
+                    else
+                     ieoff = (ielm+(i-1)+(j-1)*(NGLLX-1))+1
+                    endif
                     xcoord = sngl(xp(ieoff))
                     ycoord = sngl(yp(ieoff))
                     zcoord = sngl(zp(ieoff))
@@ -427,11 +461,19 @@
                     long = sngl(phival*180.0/PI)
                     disp = sngl(field_display(ieoff))
                    if(long > 180.0) long = long-360.0
-                    write(11,*) long, lat, disp
-                 enddo
-              enddo
-           enddo
-        enddo
+                    if(OUTPUT_BINARY) then
+                     write(11) disp
+                    if(iframe == 1) write(12) long,lat
+                    else
+                     write(11,*) disp
+                     if(iframe == 1) write(12,*) long,lat
+                    endif
+                 enddo !i
+              enddo !j
+           enddo !ispecloc
+        enddo !iproc
+        close(11)
+        if(iframe == 1) close(12)
 
 
 ! end of loop and test on all the time steps for all the movie images
@@ -439,8 +481,8 @@
   enddo
 
   print *,'done creating movie'
-  print *,'GMT files are stored in ascii_files_*.{xy,d,E,N}'
-
+  print *,'GMT ascii files are stored in ascii_movie_*.{xy,d,E,N}'
+  print *,'binary files are stored in bin_movie_*.{xy,d,E,N}'
 end program create_movie_GMT_global
 
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/meshfem3D.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/meshfem3D.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -453,7 +453,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -614,7 +614,7 @@
           TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
           ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
           ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-          MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+          MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
           PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
           ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
           INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/read_compute_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/read_compute_parameters.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/read_compute_parameters.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -40,7 +40,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
@@ -83,7 +83,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD, &
@@ -1010,6 +1010,8 @@
   if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
   call read_value_logical(MOVIE_VOLUME, 'solver.MOVIE_VOLUME')
   if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
+  call read_value_logical(MOVIE_COARSE,'solver.MOVIE_COARSE')
+  if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
   call read_value_integer(NTSTEP_BETWEEN_FRAMES, 'solver.NTSTEP_BETWEEN_FRAMES')
   if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
   call read_value_double_precision(HDUR_MOVIE, 'solver.HDUR_MOVIE')
@@ -1018,13 +1020,11 @@
 ! computes a default hdur_movie that creates nice looking movies.
 ! Sets HDUR_MOVIE as the minimum period the mesh can resolve
   if(HDUR_MOVIE <= TINYVAL) &
-    HDUR_MOVIE = 1.1d0*max(240.d0/NEX_XI*18.d0*ANGULAR_WIDTH_XI_IN_DEGREES/90.d0, &
+    HDUR_MOVIE = 1.2d0*max(240.d0/NEX_XI*18.d0*ANGULAR_WIDTH_XI_IN_DEGREES/90.d0, &
                            240.d0/NEX_ETA*18.d0*ANGULAR_WIDTH_ETA_IN_DEGREES/90.d0)
 
   call read_value_integer(MOVIE_VOLUME_TYPE, 'solver.MOVIE_VOLUME_TYPE')
   if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
-  call read_value_logical(MOVIE_VOLUME_COARSE,'solver.MOVIE_VOLUME_COARSE')
-  if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
   call read_value_double_precision(MOVIE_TOP_KM, 'solver.MOVIE_TOP_KM')
   if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
   call read_value_double_precision(MOVIE_BOTTOM_KM, 'solver.MOVIE_BOTTOM_KM')

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/specfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/specfem3D.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/specfem3D.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -284,7 +284,7 @@
   integer nspec2D_xmin_inner_core,nspec2D_xmax_inner_core,nspec2D_ymin_inner_core,nspec2D_ymax_inner_core,ndim_assemble
 
 ! to save movie frames
-  integer nmovie_points,ipoin
+  integer nmovie_points,ipoin,NIT
   real(kind=CUSTOM_REAL), dimension(:), allocatable :: &
       store_val_x,store_val_y,store_val_z, &
       store_val_ux,store_val_uy,store_val_uz
@@ -718,7 +718,7 @@
 
   logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
           CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+          TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
           RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
           SAVE_MESH_FILES,ATTENUATION, &
           ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD, &
@@ -837,7 +837,7 @@
          TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE, &
          ANISOTROPIC_INNER_CORE,CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST, &
          ROTATION,ISOTROPIC_3D_MANTLE,TOPOGRAPHY,OCEANS,MOVIE_SURFACE, &
-         MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
+         MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
          PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
          ATTENUATION,REFERENCE_1D_MODEL,THREE_D_MODEL,ABSORBING_CONDITIONS, &
          INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
@@ -875,7 +875,7 @@
 
     bcast_logical = (/TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
             CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
-            TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D, &
+            TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
             RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
             SAVE_MESH_FILES,ATTENUATION, &
             ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
@@ -985,7 +985,7 @@
     OCEANS = bcast_logical(11)
     MOVIE_SURFACE = bcast_logical(12)
     MOVIE_VOLUME = bcast_logical(13)
-    MOVIE_VOLUME_COARSE = bcast_logical(14)
+    MOVIE_COARSE = bcast_logical(14)
     ATTENUATION_3D = bcast_logical(15)
     RECEIVERS_CAN_BE_BURIED = bcast_logical(16)
     PRINT_SOURCE_TIME_FUNCTION = bcast_logical(17)
@@ -2554,7 +2554,14 @@
 
 ! allocate files to save movies
   if(MOVIE_SURFACE) then
-    nmovie_points = NGLLX * NGLLY * NSPEC2D_TOP(IREGION_CRUST_MANTLE)
+    if(MOVIE_COARSE) then  !only output corners
+       nmovie_points = 2 * 2 * NSPEC2D_TOP(IREGION_CRUST_MANTLE)
+       if(NGLLX .ne. NGLLY) call MPI_exit(myrank,'MOVIE_COARSE together with MOVIE_SURFACE requires NGLLX=NGLLY')
+       NIT = NGLLX - 1
+    else
+       nmovie_points = NGLLX * NGLLY * NSPEC2D_TOP(IREGION_CRUST_MANTLE)
+       NIT = 1
+    endif
     allocate(store_val_x(nmovie_points))
     allocate(store_val_y(nmovie_points))
     allocate(store_val_z(nmovie_points))
@@ -2579,12 +2586,12 @@
   write(prname,'(a,i6.6,a)') trim(LOCAL_PATH)//'/'//'proc',myrank,'_'
    call count_points_movie_volume(prname,ibool_crust_mantle, xstore_crust_mantle,ystore_crust_mantle, &
               zstore_crust_mantle,MOVIE_TOP,MOVIE_BOTTOM,MOVIE_WEST,MOVIE_EAST,MOVIE_NORTH,MOVIE_SOUTH, &
-              MOVIE_VOLUME_COARSE,npoints_3dmovie,nspecel_3dmovie,num_ibool_3dmovie,mask_ibool_3dmovie,mask_3dmovie)
+              MOVIE_COARSE,npoints_3dmovie,nspecel_3dmovie,num_ibool_3dmovie,mask_ibool_3dmovie,mask_3dmovie)
 
    allocate(nu_3dmovie(3,3,npoints_3dmovie))
    call write_movie_volume_mesh(npoints_3dmovie,prname,ibool_crust_mantle,xstore_crust_mantle, &
                          ystore_crust_mantle,zstore_crust_mantle, muvstore_crust_mantle_3dmovie, &
-                         mask_3dmovie,mask_ibool_3dmovie,num_ibool_3dmovie,nu_3dmovie,MOVIE_VOLUME_COARSE)
+                         mask_3dmovie,mask_ibool_3dmovie,num_ibool_3dmovie,nu_3dmovie,MOVIE_COARSE)
 
      if(myrank == 0) then
        write(IMAIN,*) 'Writing to movie3D files on local disk'
@@ -4815,8 +4822,8 @@
       k = NGLLZ
 
 ! loop on all the points inside the element
-      do j = 1,NGLLY
-        do i = 1,NGLLX
+      do j = 1,NGLLY,NIT
+        do i = 1,NGLLX,NIT
           ipoin = ipoin + 1
           iglob = ibool_crust_mantle(i,j,k,ispec)
           store_val_x(ipoin) = xstore_crust_mantle(iglob)
@@ -4859,13 +4866,13 @@
 
    if (MOVIE_VOLUME_TYPE == 1) then  ! output strains
 
-       call  write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_VOLUME_COARSE, &
+       call  write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, &
                     it,eps_trace_over_3_crust_mantle,epsilondev_crust_mantle,muvstore_crust_mantle_3dmovie, &
                     mask_3dmovie,nu_3dmovie)
 
    else if (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3) then ! output the Time Integral of Strain, or \mu*TIS
 
-       call  write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_VOLUME_COARSE, &
+       call  write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, &
                     it,Ieps_trace_over_3_crust_mantle,Iepsilondev_crust_mantle,muvstore_crust_mantle_3dmovie, &
                     mask_3dmovie,nu_3dmovie)
 
@@ -4878,12 +4885,12 @@
    else if (MOVIE_VOLUME_TYPE == 5) then !output displacement
             scalingval = scale_displ
        call write_movie_volume_vector(myrank,it,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE, &
-                MOVIE_VOLUME_COARSE,displ_crust_mantle,scalingval,mask_3dmovie,nu_3dmovie)
+                MOVIE_COARSE,displ_crust_mantle,scalingval,mask_3dmovie,nu_3dmovie)
 
    else if (MOVIE_VOLUME_TYPE == 6) then !output velocity
             scalingval = scale_veloc
        call write_movie_volume_vector(myrank,it,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE, &
-                MOVIE_VOLUME_COARSE,veloc_crust_mantle,scalingval,mask_3dmovie,nu_3dmovie)
+                MOVIE_COARSE,veloc_crust_mantle,scalingval,mask_3dmovie,nu_3dmovie)
 
    else
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/write_movie_volume.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/write_movie_volume.f90	2008-04-18 00:27:11 UTC (rev 11826)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/write_movie_volume.f90	2008-04-18 05:54:56 UTC (rev 11827)
@@ -34,7 +34,7 @@
 
   subroutine count_points_movie_volume(prname,ibool_crust_mantle, xstore_crust_mantle,ystore_crust_mantle, &
                       zstore_crust_mantle,MOVIE_TOP,MOVIE_BOTTOM,MOVIE_WEST,MOVIE_EAST,MOVIE_NORTH,MOVIE_SOUTH, &
-                      MOVIE_VOLUME_COARSE,npoints_3dmovie,nspecel_3dmovie,num_ibool_3dmovie, &
+                      MOVIE_COARSE,npoints_3dmovie,nspecel_3dmovie,num_ibool_3dmovie, &
                       mask_ibool_3dmovie,mask_3dmovie)
 
   implicit none
@@ -46,7 +46,7 @@
   integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
   real(kind=CUSTOM_REAL), dimension(NGLOB_CRUST_MANTLE) :: xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle
   double precision :: MOVIE_TOP,MOVIE_BOTTOM,MOVIE_WEST,MOVIE_EAST,MOVIE_NORTH,MOVIE_SOUTH
-  logical :: MOVIE_VOLUME_COARSE
+  logical :: MOVIE_COARSE
   character(len=150) :: prname
 
 ! output
@@ -59,7 +59,7 @@
   integer :: ipoints_3dmovie,ispecel_3dmovie,ispec,iglob,i,j,k,NIT
   real(kind=custom_real) :: rval,thetaval,phival
 
-  if(MOVIE_VOLUME_COARSE) then
+  if(MOVIE_COARSE) then
     NIT = NGLLX-1
   else
     NIT = 1
@@ -114,7 +114,7 @@
 
   subroutine write_movie_volume_mesh(npoints_3dmovie,prname,ibool_crust_mantle,xstore_crust_mantle, &
                          ystore_crust_mantle,zstore_crust_mantle, muvstore_crust_mantle_3dmovie, &
-                         mask_3dmovie,mask_ibool_3dmovie,num_ibool_3dmovie,nu_3dmovie,MOVIE_VOLUME_COARSE)
+                         mask_3dmovie,mask_ibool_3dmovie,num_ibool_3dmovie,nu_3dmovie,MOVIE_COARSE)
 
   implicit none
 
@@ -129,7 +129,7 @@
   character(len=150) :: prname
   logical, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: mask_3dmovie
   logical, dimension(NGLOB_CRUST_MANTLE) :: mask_ibool_3dmovie
-  logical :: MOVIE_VOLUME_COARSE
+  logical :: MOVIE_COARSE
   integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
 
   !output
@@ -142,7 +142,9 @@
   real(kind=CUSTOM_REAL) :: rval,thetaval,phival,xval,yval,zval,st,ct,sp,cp
   real(kind=CUSTOM_REAL), dimension(npoints_3dmovie) :: store_val3D_x,store_val3D_y, store_val3D_z
 
-  if(MOVIE_VOLUME_COARSE) then
+  if(NDIM .ne. 3) stop 'movie volume output requires NDIM = 3'
+
+  if(MOVIE_COARSE) then
     NIT = NGLLX-1
   else
     NIT = 1
@@ -211,7 +213,7 @@
    ispecele=0
  !  open(unit=IOUT,file=trim(prname)//'movie3D_elements.txt',status='unknown')
    do ispec=1,NSPEC_CRUST_MANTLE
-    if(MOVIE_VOLUME_COARSE) then
+    if(MOVIE_COARSE) then
       iglob=ibool_crust_mantle(1,1,1,ispec)
     else
       iglob=ibool_crust_mantle(3,3,3,ispec)
@@ -252,7 +254,7 @@
 
 ! ---------------------------------------------
 
- subroutine write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_VOLUME_COARSE, &
+ subroutine write_movie_volume_strains(myrank,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE,MOVIE_COARSE, &
                     it,eps_trace_over_3_crust_mantle,epsilondev_crust_mantle,muvstore_crust_mantle_3dmovie, &
                     mask_3dmovie,nu_3dmovie)
 
@@ -268,7 +270,7 @@
 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) :: muvstore_crust_mantle_3dmovie
 logical, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: mask_3dmovie
-logical :: MOVIE_VOLUME_COARSE
+logical :: MOVIE_COARSE
 real(kind=CUSTOM_REAL), dimension(3,3,npoints_3dmovie) :: nu_3dmovie
 character(len=150) LOCAL_PATH,outputname
 
@@ -289,6 +291,8 @@
  allocate(store_val3d_NZ(npoints_3dmovie))
  allocate(store_val3d_EZ(npoints_3dmovie))
 
+ if(NDIM .ne. 3) call exit_MPI(myrank, 'write_movie_volume requires NDIM = 3')
+
  if(MOVIE_VOLUME_TYPE == 1) then
       movie_prefix='E' ! strain
  else if(MOVIE_VOLUME_TYPE == 2) then
@@ -296,7 +300,7 @@
  else if(MOVIE_VOLUME_TYPE == 3) then
       movie_prefix='P' ! potency, or integral of strain x \mu
  endif
- if(MOVIE_VOLUME_COARSE) then
+ if(MOVIE_COARSE) then
    NIT = NGLLX-1
  else
    NIT = 1
@@ -372,7 +376,7 @@
 
 ! ---------------------------------------------
  subroutine write_movie_volume_vector(myrank,it,npoints_3dmovie,LOCAL_PATH,MOVIE_VOLUME_TYPE, &
-                    MOVIE_VOLUME_COARSE,vector_crust_mantle,scalingval,mask_3dmovie,nu_3dmovie)
+                    MOVIE_COARSE,ibool_crust_mantle,vector_crust_mantle,scalingval,mask_3dmovie,nu_3dmovie)
   implicit none
 
   include "constants.h"
@@ -380,20 +384,22 @@
 
 ! input
 integer :: myrank,npoints_3dmovie,MOVIE_VOLUME_TYPE,it
-real(kind=CUSTOM_REAL), dimension(3,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: vector_crust_mantle,vector_scaled
+real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
+real(kind=CUSTOM_REAL), dimension(3,NSPEC_CRUST_MANTLE) :: vector_crust_mantle,vector_scaled
 real(kind=CUSTOM_REAL), dimension(3,3,npoints_3dmovie) :: nu_3dmovie
 double precision :: scalingval
 real(kind=CUSTOM_REAL), dimension(3) :: vector_local,vector_local_new
 logical, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: mask_3dmovie
-logical :: MOVIE_VOLUME_COARSE
+logical :: MOVIE_COARSE
 character(len=150) LOCAL_PATH
 
 ! variables
-integer :: ipoints_3dmovie,i,j,k,ispec,NIT
+integer :: ipoints_3dmovie,i,j,k,ispec,NIT,iglob
 real(kind=CUSTOM_REAL),dimension(:),allocatable :: store_val3d_N,store_val3d_E,store_val3d_Z
 character(len=150) outputname
 character(len=2) movie_prefix
 
+if(NDIM .ne. 3) call exit_MPI(myrank,'write_movie_volume requires NDIM = 3')
 
 allocate(store_val3d_N(npoints_3dmovie))
 allocate(store_val3d_E(npoints_3dmovie))
@@ -404,7 +410,7 @@
  else if(MOVIE_VOLUME_TYPE == 6) then
       movie_prefix='VE' ! velocity
  endif
- if(MOVIE_VOLUME_COARSE) then
+ if(MOVIE_COARSE) then
    NIT = NGLLX-1
  else
    NIT = 1
@@ -422,7 +428,9 @@
        do i=1,NGLLX,NIT
         if(mask_3dmovie(i,j,k,ispec)) then
          ipoints_3dmovie=ipoints_3dmovie+1
-         vector_local(:) = vector_scaled(:,i,j,k,ispec)
+         iglob = ibool_crust_mantle(i,j,k,ispec)
+         vector_local(:) = vector_scaled(:,iglob)
+     
 ! rotate eps_loc to spherical coordinates
          vector_local_new(:) = matmul(nu_3dmovie(:,:,ipoints_3dmovie), vector_local(:))
          store_val3d_N(ipoints_3dmovie)=vector_local_new(1)



More information about the cig-commits mailing list