[cig-commits] r20637 - in seismo/3D/SPECFEM3D_GLOBE/trunk: src/meshfem3D src/shared src/specfem3D utils

danielpeter at geodynamics.org danielpeter at geodynamics.org
Mon Aug 27 19:25:12 PDT 2012


Author: danielpeter
Date: 2012-08-27 19:25:11 -0700 (Mon, 27 Aug 2012)
New Revision: 20637

Modified:
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_s362ani.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/moho_stretching.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/exit_mpi.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar_block.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core_Dev.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_event_info.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_buffers_solver.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/write_movie_volume.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/utils/update_headers_change_word_f90.pl
Log:
bug fix for iboolfaces indexing; fixes broadcast of eventname in get_event_info() routine; adds moho honoring on global simulations only in case topography is set as well

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -273,7 +273,10 @@
           iglob=ibool(ix_oceans,iy_oceans,iz_oceans,ispec_oceans)
 
           ! if 3D Earth, compute local height of oceans
-          if(CASE_3D) then
+          !
+          ! note: only for models where 3D crustal model and stretching was used 
+          !       (even without topography flag set)
+          if( CASE_3D ) then
 
             ! get coordinates of current point
             xval = xstore(ix_oceans,iy_oceans,iz_oceans,ispec_oceans)

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_s362ani.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_s362ani.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/model_s362ani.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -1255,10 +1255,6 @@
         call ylm(y,x,lmax,ylmcof(1,ihpa),wk1,wk2,wk3)
       else if(itypehpa(ihpa) == 2) then
         numcof=numcoe(ihpa)
-!daniel
-!        call splcon(y,x,numcof,xlaspl(1,ihpa), &
-!              xlospl(1,ihpa),radspl(1,ihpa), &
-!              nconpt(ihpa),iconpt(1,ihpa),conpt(1,ihpa))
 
         call splcon(y,x,numcof,xlaspl(1:numcof,ihpa), &
               xlospl(1:numcof,ihpa),radspl(1:numcof,ihpa), &
@@ -1416,11 +1412,6 @@
     else if(itypehpa(ihpa) == 2) then
       numcof=numcoe(ihpa)
 
-!daniel
-!        call splcon(y,x,numcof,xlaspl(1,ihpa), &
-!              xlospl(1,ihpa),radspl(1,ihpa), &
-!              nconpt(ihpa),iconpt(1,ihpa),conpt(1,ihpa))
-
       call splcon(y,x,numcof,xlaspl(1:numcof,ihpa), &
               xlospl(1:numcof,ihpa),radspl(1:numcof,ihpa), &
               nconpt(ihpa),iconpt(1:maxver,ihpa),conpt(1:maxver,ihpa))

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/moho_stretching.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/moho_stretching.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/moho_stretching.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -33,6 +33,9 @@
 ! input:  myrank, xelm, yelm, zelm, RMOHO_FICTITIOUS_IN_MESHER R220,RMIDDLE_CRUST, CM_V
 ! Dec, 30, 2009
 
+  use meshfem3D_models_par,only: &
+    TOPOGRAPHY
+
   implicit none
 
   include "constants.h"
@@ -92,62 +95,70 @@
     ! note: we will honor the moho only, if the moho depth is below R_moho (~35km)
     !          or above R_middlecrust (~15km). otherwise, the moho will be "interpolated"
     !          within the element
-    if (moho < R_moho ) then
-      ! actual moho below fictitious moho
-      ! elements in second layer will stretch down to honor moho topography
 
-      elevation = moho - R_moho
+    if( TOPOGRAPHY ) then
+      ! globe surface honors topography, elements stretched for moho
+      !
+      ! note:  if no topography is honored, stretching may lead to distorted elements and invalid jacobian
 
-      if ( r >= R_moho ) then
-        ! point above fictitious moho
-        ! gamma ranges from 0 (point at surface) to 1 (point at fictitious moho depth)
-        gamma = (( R_UNIT_SPHERE - r )/( R_UNIT_SPHERE - R_moho ))
-      else
-        ! point below fictitious moho
-        ! gamma ranges from 0 (point at R220) to 1 (point at fictitious moho depth)
-        gamma = (( r - R220/R_EARTH)/( R_moho - R220/R_EARTH))
+      if (moho < R_moho ) then
+        ! actual moho below fictitious moho
+        ! elements in second layer will stretch down to honor moho topography
 
-        ! since not all GLL points are exactlly at R220, use a small
-        ! tolerance for R220 detection, fix R220
-        if (abs(gamma) < SMALLVAL) then
-          gamma = 0.0d0
+        elevation = moho - R_moho
+
+        if ( r >= R_moho ) then
+          ! point above fictitious moho
+          ! gamma ranges from 0 (point at surface) to 1 (point at fictitious moho depth)
+          gamma = (( R_UNIT_SPHERE - r )/( R_UNIT_SPHERE - R_moho ))
+        else
+          ! point below fictitious moho
+          ! gamma ranges from 0 (point at R220) to 1 (point at fictitious moho depth)
+          gamma = (( r - R220/R_EARTH)/( R_moho - R220/R_EARTH))
+
+          ! since not all GLL points are exactlly at R220, use a small
+          ! tolerance for R220 detection, fix R220
+          if (abs(gamma) < SMALLVAL) then
+            gamma = 0.0d0
+          end if
         end if
-      end if
 
-      if(gamma < -0.0001d0 .or. gamma > 1.0001d0) &
-        call exit_MPI(myrank,'incorrect value of gamma for moho from crust 2.0')
+        if(gamma < -0.0001d0 .or. gamma > 1.0001d0) &
+          call exit_MPI(myrank,'incorrect value of gamma for moho from crust 2.0')
 
-      call move_point(ia,xelm,yelm,zelm,x,y,z,gamma,elevation,r)
+        call move_point(ia,xelm,yelm,zelm,x,y,z,gamma,elevation,r)
 
-    else  if ( moho > R_middlecrust ) then
-      ! moho above middle crust
-      ! elements in first layer will squeeze into crust above moho
+      else  if ( moho > R_middlecrust ) then
+        ! moho above middle crust
+        ! elements in first layer will squeeze into crust above moho
 
-      elevation = moho - R_middlecrust
+        elevation = moho - R_middlecrust
 
-      if ( r > R_middlecrust ) then
-        ! point above middle crust
-        ! gamma ranges from 0 (point at surface) to 1 (point at middle crust depth)
-        gamma = (R_UNIT_SPHERE-r)/(R_UNIT_SPHERE - R_middlecrust )
-      else
-        ! point below middle crust
-        ! gamma ranges from 0 (point at R220) to 1 (point at middle crust depth)
-        gamma = (r - R220/R_EARTH)/( R_middlecrust - R220/R_EARTH )
+        if ( r > R_middlecrust ) then
+          ! point above middle crust
+          ! gamma ranges from 0 (point at surface) to 1 (point at middle crust depth)
+          gamma = (R_UNIT_SPHERE-r)/(R_UNIT_SPHERE - R_middlecrust )
+        else
+          ! point below middle crust
+          ! gamma ranges from 0 (point at R220) to 1 (point at middle crust depth)
+          gamma = (r - R220/R_EARTH)/( R_middlecrust - R220/R_EARTH )
 
-        ! since not all GLL points are exactlly at R220, use a small
-        ! tolerance for R220 detection, fix R220
-        if (abs(gamma) < SMALLVAL) then
-          gamma = 0.0d0
+          ! since not all GLL points are exactlly at R220, use a small
+          ! tolerance for R220 detection, fix R220
+          if (abs(gamma) < SMALLVAL) then
+            gamma = 0.0d0
+          end if
         end if
-      end if
 
-      if(gamma < -0.0001d0 .or. gamma > 1.0001d0) &
-        call exit_MPI(myrank,'incorrect value of gamma for moho from crust 2.0')
+        if(gamma < -0.0001d0 .or. gamma > 1.0001d0) &
+          call exit_MPI(myrank,'incorrect value of gamma for moho from crust 2.0')
 
-      call move_point(ia,xelm,yelm,zelm,x,y,z,gamma,elevation,r)
+        call move_point(ia,xelm,yelm,zelm,x,y,z,gamma,elevation,r)
 
-    end if
+      end if
 
+    endif ! TOPOGRAPHY
+
     ! counts corners in above moho
     ! note: uses a small tolerance
     if ( r >= 0.9999d0*moho ) then

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/exit_mpi.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/exit_mpi.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/exit_mpi.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -127,3 +127,4 @@
   if( ier /= 0 ) call exit_mpi(rank,'error synchronize MPI processes')
 
   end subroutine sync_all
+

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -40,7 +40,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NCORNERSCHUNKS, &
             NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL, &
-            NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NGLOB2DMAX_XY,NCHUNKS,iphase)
+            NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX, &
+            NGLOB2DMAX_XY,NCHUNKS,iphase)
 
   implicit none
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar_block.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar_block.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/assemble_MPI_scalar_block.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -40,7 +40,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL, &
-            NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NGLOB2DMAX_XY,NCHUNKS)
+            NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX, &
+            NGLOB2DMAX_XY,NCHUNKS)
 
 ! this version of the routine is based on blocking MPI calls
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -171,7 +171,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES_VAL,NCORNERSCHUNKS_VAL, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL_OC, &
-            NGLOB2DMAX_XMIN_XMAX_OC,NGLOB2DMAX_YMIN_YMAX_OC,NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,iphase)
+            NGLOB2DMAX_XMIN_XMAX_OC,NGLOB2DMAX_YMIN_YMAX_OC, &
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,iphase)
 
     do k=1,NGLLZ
       do j=1,NGLLY

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core_Dev.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core_Dev.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/compute_forces_outer_core_Dev.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -194,7 +194,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES_VAL,NCORNERSCHUNKS_VAL, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL_OC, &
-            NGLOB2DMAX_XMIN_XMAX_OC,NGLOB2DMAX_YMIN_YMAX_OC,NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,iphase)
+            NGLOB2DMAX_XMIN_XMAX_OC,NGLOB2DMAX_YMIN_YMAX_OC, &
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,iphase)
 
     do k=1,NGLLZ
       do j=1,NGLLY

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_event_info.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_event_info.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/get_event_info.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -91,15 +91,14 @@
 
   endif
 
-! broadcast the information read on the master to the nodes
+  ! broadcast the information read on the master to the nodes
   call MPI_BCAST(yr,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(jda,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(ho,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(mi,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
+
   call MPI_BCAST(sec,1,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ier)
 
-  call MPI_BCAST(NSOURCES,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
-
   call MPI_BCAST(tshift_cmt,1,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(t_shift,1,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ier)
 
@@ -114,8 +113,7 @@
   call MPI_BCAST(cmt_depth,1,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(cmt_hdur,1,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ier)
 
-  !call MPI_BCAST(ename,12,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
-  call MPI_BCAST(event_name,20,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,ier)
+  call MPI_BCAST(event_name,20,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
 
   end subroutine get_event_info_parallel
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -45,7 +45,7 @@
                       buffer_send_faces_scalar,buffer_received_faces_scalar, &
                       buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
                       NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS,NGLOB_XY,ABSORBING_CONDITIONS, &
-                      NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NGLOB2DMAX_XY,npoin2D_max_all_CM_IC)
+                      NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,npoin2D_max_all_CM_IC)
 
   implicit none
 
@@ -111,7 +111,6 @@
   integer NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS
 
   integer, dimension(MAX_NUM_REGIONS) :: NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX
-  integer NGLOB2DMAX_XY
 
   ! local parameters
   integer :: ier
@@ -135,7 +134,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE), &
+            NGLOB2DMAX_XY_CM_VAL,NCHUNKS_VAL)
   endif
 
   ! crust and mantle
@@ -151,7 +151,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE), &
+            NGLOB2DMAX_XY_CM_VAL,NCHUNKS_VAL)
 
      call assemble_MPI_scalar_block(myrank,rmassy_crust_mantle,NGLOB_CRUST_MANTLE, &
             iproc_xi,iproc_eta,ichunk,addressing, &
@@ -164,7 +165,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE), &
+            NGLOB2DMAX_XY_CM_VAL,NCHUNKS_VAL)
   endif
 
   call assemble_MPI_scalar_block(myrank,rmassz_crust_mantle,NGLOB_CRUST_MANTLE, &
@@ -178,7 +180,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE), &
+            NGLOB2DMAX_XY_CM_VAL,NCHUNKS_VAL)
 
   ! outer core
   call assemble_MPI_scalar_block(myrank,rmass_outer_core,NGLOB_OUTER_CORE, &
@@ -192,7 +195,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE),NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL)
 
   ! inner core
   call assemble_MPI_scalar_block(myrank,rmass_inner_core,NGLOB_INNER_CORE, &
@@ -206,7 +210,8 @@
             buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_INNER_CORE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE),NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE), &
+            NGLOB2DMAX_XY_IC_VAL,NCHUNKS_VAL)
 
   if(myrank == 0) write(IMAIN,*) 'end assembling MPI mass matrix'
 
@@ -580,7 +585,7 @@
   integer SIMULATION_TYPE
   logical MOVIE_VOLUME
 
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STR_OR_ATT) :: muvstore_crust_mantle_3dmovie
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_3DMOVIE) :: muvstore_crust_mantle_3dmovie
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPECMAX_ANISO_IC) :: &
         c11store_inner_core,c33store_inner_core,c12store_inner_core, &

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_buffers_solver.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_buffers_solver.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_buffers_solver.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -30,7 +30,8 @@
      npoin2D_xi,npoin2D_eta, &
      iprocfrom_faces,iprocto_faces,imsg_type, &
      iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-     iboolfaces,npoin2D_faces,iboolcorner, &
+     iboolfaces,npoin2D_faces, &
+     iboolcorner, &
      NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NGLOB2DMAX_XY,NGLOB1D_RADIAL, &
      NUMMSGS_FACES,NCORNERSCHUNKS,NPROCTOT,NPROC_XI,NPROC_ETA, &
      LOCAL_PATH,NCHUNKS)
@@ -45,6 +46,7 @@
   integer iregion_code,myrank,NCHUNKS
 
   integer, dimension(NB_SQUARE_EDGES_ONEDIR) :: npoin2D_xi,npoin2D_eta
+
   integer NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NGLOB2DMAX_XY,NGLOB1D_RADIAL
   integer NUMMSGS_FACES,NCORNERSCHUNKS,NPROCTOT,NPROC_XI,NPROC_ETA
 
@@ -376,12 +378,19 @@
         call exit_MPI(myrank,'incorrect nb of points in face buffer')
       do ipoin2D = 1,npoin2D_faces(icount_faces)
         read(IIN,*) iboolfaces(ipoin2D,icount_faces),xdummy,ydummy,zdummy
+
+        ! checks read value
+        if( iboolfaces(ipoin2D,icount_faces) < 1) then
+          print*,'error rank',myrank,': iboolfaces index =',iboolfaces(ipoin2D,icount_faces),xdummy,ydummy,zdummy
+          print*,'  message:',imsg,NUMMSGS_FACES,ipoin2D,icount_faces,'region',iregion_code
+          call exit_MPI(myrank,'error reading in iboolfaces index')
+        endif
+
       enddo
       close(IIN)
     endif
   enddo
 
-
 !---- read indirect addressing for each message for corners of the chunks
 !---- a given slice can belong to at most one corner
   icount_corners = 0

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -504,10 +504,10 @@
   NUMMSGS_FACES = NPROC_ONE_DIRECTION*NUM_FACES*NUM_MSG_TYPES
 
   ! debug checks with compiled value
-  !if( NUMMSGS_FACES /= NUMMSGS_FACES_VAL ) then
-  !  print*,'check: NUMMSGS_FACES',NUMMSGS_FACES,NUMMSGS_FACES_VAL
-  !  stop 'error NUMMSGS_FACES_VAL, please recompile solver'
-  !endif
+  if( NUMMSGS_FACES /= NUMMSGS_FACES_VAL ) then
+    print*,'check: NUMMSGS_FACES',NUMMSGS_FACES,NUMMSGS_FACES_VAL
+    call exit_MPI(myrank,'error NUMMSGS_FACES_VAL, please recompile solver...')
+  endif
 
   ! read 2-D addressing for summation between slices with MPI
 
@@ -520,7 +520,8 @@
      iboolfaces_crust_mantle,npoin2D_faces_crust_mantle, &
      iboolcorner_crust_mantle, &
      NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE), &
-     NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
+     NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY_CM_VAL, &
+     NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
      NUMMSGS_FACES,NCORNERSCHUNKS,NPROCTOT_VAL,NPROC_XI_VAL,NPROC_ETA_VAL,LOCAL_PATH,NCHUNKS_VAL)
 
   ! synchronizes processes
@@ -535,7 +536,8 @@
      iboolfaces_outer_core,npoin2D_faces_outer_core, &
      iboolcorner_outer_core, &
      NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE), &
-     NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE),NGLOB2DMAX_XY,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
+     NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE),NGLOB2DMAX_XY_OC_VAL, &
+     NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
      NUMMSGS_FACES,NCORNERSCHUNKS,NPROCTOT_VAL,NPROC_XI_VAL,NPROC_ETA_VAL,LOCAL_PATH,NCHUNKS_VAL)
 
   ! synchronizes processes
@@ -550,7 +552,8 @@
      iboolfaces_inner_core,npoin2D_faces_inner_core, &
      iboolcorner_inner_core, &
      NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE), &
-     NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE),NGLOB2DMAX_XY,NGLOB1D_RADIAL(IREGION_INNER_CORE), &
+     NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE),NGLOB2DMAX_XY_IC_VAL, &
+     NGLOB1D_RADIAL(IREGION_INNER_CORE), &
      NUMMSGS_FACES,NCORNERSCHUNKS,NPROCTOT_VAL,NPROC_XI_VAL,NPROC_ETA_VAL,LOCAL_PATH,NCHUNKS_VAL)
 
   ! synchronizes processes

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -1590,7 +1590,7 @@
                       buffer_send_faces,buffer_received_faces, &
                       buffer_send_chunkcorn_scalar,buffer_recv_chunkcorn_scalar, &
                       NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS,NGLOB_XY,ABSORBING_CONDITIONS, &
-                      NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,NGLOB2DMAX_XY,npoin2D_max_all_CM_IC)
+                      NGLOB1D_RADIAL,NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX,npoin2D_max_all_CM_IC)
 
   ! mass matrix including central cube
   if(INCLUDE_CENTRAL_CUBE) then
@@ -2534,7 +2534,7 @@
             NUMMSGS_FACES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
             NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XY,NCHUNKS_VAL,iphase)
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,iphase)
 
       icall = 2 ! now compute all the inner elements in the case of non blocking MPI
 
@@ -2595,7 +2595,7 @@
             NUMMSGS_FACES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
             NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XY,NCHUNKS_VAL,iphase)
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,iphase)
       enddo
 
     else ! if(.not. USE_NONBLOCKING_COMMS) then
@@ -2613,7 +2613,7 @@
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
             NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL)
 
     endif
 
@@ -2642,7 +2642,7 @@
             NUMMSGS_FACES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
             NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XY,NCHUNKS_VAL,b_iphase)
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,b_iphase)
 
         b_icall = 2 ! now compute all the inner elements in the case of non blocking MPI
 
@@ -2705,7 +2705,7 @@
             NUMMSGS_FACES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
             NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XY,NCHUNKS_VAL,b_iphase)
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL,b_iphase)
         enddo
 
       else ! if(.not. USE_NONBLOCKING_COMMS) then
@@ -2723,7 +2723,7 @@
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI_VAL,NPROC_ETA_VAL,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
             NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XY,NCHUNKS_VAL)
+            NGLOB2DMAX_XY_OC_VAL,NCHUNKS_VAL)
 
       endif
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/write_movie_volume.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/write_movie_volume.f90	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/write_movie_volume.f90	2012-08-28 02:25:11 UTC (rev 20637)
@@ -125,7 +125,7 @@
   integer :: npoints_3dmovie
   integer, dimension(NGLOB_CRUST_MANTLE) :: num_ibool_3dmovie
   real(kind=CUSTOM_REAL), dimension(NGLOB_CRUST_MANTLE) :: xstore_crust_mantle,ystore_crust_mantle,zstore_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: muvstore_crust_mantle_3dmovie
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_3DMOVIE) :: muvstore_crust_mantle_3dmovie
   character(len=150) :: prname
   logical, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: mask_3dmovie
   logical, dimension(NGLOB_CRUST_MANTLE) :: mask_ibool_3dmovie
@@ -269,7 +269,7 @@
   integer :: myrank,npoints_3dmovie,MOVIE_VOLUME_TYPE,it
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: eps_trace_over_3_crust_mantle
   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
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_3DMOVIE) :: muvstore_crust_mantle_3dmovie
   logical, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: mask_3dmovie
   logical :: MOVIE_COARSE
   real(kind=CUSTOM_REAL), dimension(3,3,npoints_3dmovie) :: nu_3dmovie

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/update_headers_change_word_f90.pl
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/utils/update_headers_change_word_f90.pl	2012-08-27 23:16:43 UTC (rev 20636)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/update_headers_change_word_f90.pl	2012-08-28 02:25:11 UTC (rev 20637)
@@ -36,8 +36,8 @@
       $line =~ s/\s*$//;
 
 # change the version number and copyright information
-      $line =~ s#!             and University of Pau / CNRS / INRIA, France#!             and CNRS / INRIA / University of Pau, France#og;
-      $line =~ s#! \(c\) Princeton University / California Institute of Technology and University of Pau / CNRS / INRIA#! \(c\) Princeton University and CNRS / INRIA / University of Pau#og;
+#      $line =~ s#!             and University of Pau / CNRS / INRIA, France#!             and CNRS / INRIA / University of Pau, France#og;
+#      $line =~ s#! \(c\) Princeton University / California Institute of Technology and University of Pau / CNRS / INRIA#! \(c\) Princeton University and CNRS / INRIA / University of Pau#og;
 #     $line =~ s#rmass_sigma#rmass_time_integral_of_sigma#og;
 
 # write the modified line to the output file



More information about the CIG-COMMITS mailing list