[cig-commits] r11938 - in seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta: . OUTPUT_FILES

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Fri May 9 16:11:56 PDT 2008


Author: dkomati1
Date: 2008-05-09 16:11:56 -0700 (Fri, 09 May 2008)
New Revision: 11938

Modified:
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/assemble_MPI_vector.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/constants.h
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_chunk_buffers.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_list_files_chunks.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/declar.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/meshfem3D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/read_compute_parameters.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/save_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/specfem3D.f90
Log:
fixed problem of size of the MPI buffers that was too big


Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile	2008-05-09 23:11:56 UTC (rev 11938)
@@ -27,26 +27,34 @@
 
 # Makefile.  Generated from Makefile.in by configure.
 
- FC = ifort
-#FC = /usr/bin/gfortran
+#
+# Intel ifort
+#
+#FC = ifort
+#MPIFC = /home/r/geophy/dkomati1/bin/mpich2-1.0.7_ifort/bin/mpif90
+#FLAGS_NO_CHECK = -O3 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -std95 -check nobounds -align sequence -assume byterecl -i-dynamic -fpe3 -no-ftz
+#FLAGS_NO_CHECK = -O3 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn declarations -std95 -check all -align sequence -assume byterecl -warn unused
+
+#
+# GNU gfortran
+#
+FC = /usr/bin/gfortran
+MPIFC = /home/r/geophy/dkomati1/bin/mpich2-1.0.7/bin/mpif90
+FLAGS_NO_CHECK = -std=gnu -fimplicit-none -frange-check -O3 -Wunused-labels -Waliasing -Wampersand -Wsurprising -Wline-truncation -Wunderflow
+
+#
+# Portland pgf90
+#
 #FC = pgf90
-#FC = /opt/intel/fc/9.1.040/bin/ifort
-FCFLAGS = #-g
-MPIFC = mpif90
-#MPIFC = /home/r/geophy/dkomati1/bin/mpich2-1.0.7/bin/mpif90
-#MPIFC = /opt/mpich2_ifort/bin/mpif90
-MPILIBS =
-#FLAGS_CHECK = -O3 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -std95 -check nobounds -align sequence -assume byterecl -i-dynamic -ftrapuv -fpe0 -no-ftz -traceback
-FLAGS_CHECK = $(FLAGS_NO_CHECK)
-FLAGS_NO_CHECK = -O3 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -std95 -check nobounds -align sequence -assume byterecl -i-dynamic -fpe3 -no-ftz
-
-#FLAGS_NO_CHECK = -std=gnu -fimplicit-none -frange-check -O3 -Wunused-labels -Waliasing -Wampersand -Wsurprising -Wline-truncation -Wunderflow
+#MPIFC = mpif90
 #FLAGS_NO_CHECK = -fast -Mnobounds -Minline -Mneginfo -Mdclchk -Knoieee -Minform=warn -Mstandard -fastsse -tp amd64e
 
-#FLAGS_NO_CHECK = -O3 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn declarations -std95 -check all -align sequence -assume byterecl -warn unused
+FLAGS_CHECK = $(FLAGS_NO_CHECK)
 #FLAGS_NO_CHECK2 = -O3 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn declarations -std95 -CB -align sequence -assume byterecl # -warn unused
 FLAGS_NO_CHECK2 = $(FLAGS_NO_CHECK)
 FCFLAGS_f90 =
+MPILIBS =
+FCFLAGS = #-g
 
 FCCOMPILE_CHECK = ${FC} ${FCFLAGS} $(FLAGS_CHECK)
 FCCOMPILE_NO_CHECK = ${FC} ${FCFLAGS} $(FLAGS_NO_CHECK)

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h	2008-05-09 23:11:56 UTC (rev 11938)
@@ -1,4 +1,4 @@
- 
+
  !
  ! this is the parameter file for static compilation of the solver
  !
@@ -43,7 +43,7 @@
  !
  ! number of seismic sources =            1
  !
- 
+
  ! approximate static memory needed by the solver:
  ! ----------------------------------------------
  !
@@ -58,36 +58,36 @@
  ! size of static arrays for all slices =    1151.40130090714       GB
  !                                      =    1.12441533291712       TB
  !
- 
+
  integer, parameter :: NEX_XI_VAL =          864
  integer, parameter :: NEX_ETA_VAL =          864
- 
+
  integer, parameter :: NSPEC_CRUST_MANTLE =        57456
  integer, parameter :: NSPEC_OUTER_CORE =         7308
  integer, parameter :: NSPEC_INNER_CORE =         4212
- 
+
  integer, parameter :: NGLOB_CRUST_MANTLE =      3776989
  integer, parameter :: NGLOB_OUTER_CORE =       493569
  integer, parameter :: NGLOB_INNER_CORE =       293125
- 
+
  integer, parameter :: NSPECMAX_ANISO_IC =            1
- 
+
  integer, parameter :: NSPECMAX_ISO_MANTLE =        57456
  integer, parameter :: NSPECMAX_TISO_MANTLE =            1
  integer, parameter :: NSPECMAX_ANISO_MANTLE =            1
- 
+
  integer, parameter :: NSPEC_CRUST_MANTLE_ATTENUAT =            1
  integer, parameter :: NSPEC_INNER_CORE_ATTENUATION =            1
- 
+
  integer, parameter :: NSPEC_CRUST_MANTLE_STR_OR_ATT =            1
  integer, parameter :: NSPEC_INNER_CORE_STR_OR_ATT =            1
- 
+
  integer, parameter :: NSPEC_CRUST_MANTLE_STR_AND_ATT =            1
  integer, parameter :: NSPEC_INNER_CORE_STR_AND_ATT =            1
- 
+
  integer, parameter :: NSPEC_CRUST_MANTLE_STRAIN_ONLY =            1
  integer, parameter :: NSPEC_INNER_CORE_STRAIN_ONLY =            1
- 
+
  integer, parameter :: NSPEC_CRUST_MANTLE_ADJOINT =            1
  integer, parameter :: NSPEC_OUTER_CORE_ADJOINT =            1
  integer, parameter :: NSPEC_INNER_CORE_ADJOINT =            1
@@ -95,43 +95,45 @@
  integer, parameter :: NGLOB_OUTER_CORE_ADJOINT =            1
  integer, parameter :: NGLOB_INNER_CORE_ADJOINT =            1
  integer, parameter :: NSPEC_OUTER_CORE_ROT_ADJOINT =            1
- 
+
  integer, parameter :: NSPEC_CRUST_MANTLE_STACEY =            1
  integer, parameter :: NSPEC_OUTER_CORE_STACEY =            1
- 
+
  integer, parameter :: NGLOB_CRUST_MANTLE_OCEANS =            1
- 
+
  logical, parameter :: TRANSVERSE_ISOTROPY_VAL = .false.
- 
+
  logical, parameter :: ANISOTROPIC_3D_MANTLE_VAL = .false.
- 
+
  logical, parameter :: ANISOTROPIC_INNER_CORE_VAL = .false.
- 
+
  logical, parameter :: ATTENUATION_VAL = .false.
- 
+
  logical, parameter :: ATTENUATION_3D_VAL = .false.
- 
+
  logical, parameter :: ELLIPTICITY_VAL = .false.
- 
+
  logical, parameter :: GRAVITY_VAL = .false.
- 
+
  logical, parameter :: ROTATION_VAL = .false.
  integer, parameter :: NSPEC_OUTER_CORE_ROTATION =            1
- 
+
  integer, parameter :: NGLOB1D_RADIAL_CM =          493
  integer, parameter :: NGLOB1D_RADIAL_OC =          345
  integer, parameter :: NGLOB1D_RADIAL_IC =           37
- integer, parameter :: NGLOB2DMAX_XMIN_XMAX_CM =        62101
- integer, parameter :: NGLOB2DMAX_XMIN_XMAX_OC =        18751
- integer, parameter :: NGLOB2DMAX_XMIN_XMAX_IC =        17551
- integer, parameter :: NGLOB2DMAX_YMIN_YMAX_CM =        62101
- integer, parameter :: NGLOB2DMAX_YMIN_YMAX_OC =        18751
- integer, parameter :: NGLOB2DMAX_YMIN_YMAX_IC =        17551
+ integer, parameter :: NGLOB2DMAX_XMIN_XMAX_CM =        49242
+ integer, parameter :: NGLOB2DMAX_XMIN_XMAX_OC =        15198
+ integer, parameter :: NGLOB2DMAX_XMIN_XMAX_IC =        11931
+ integer, parameter :: NGLOB2DMAX_YMIN_YMAX_CM =        49242
+ integer, parameter :: NGLOB2DMAX_YMIN_YMAX_OC =        15198
+ integer, parameter :: NGLOB2DMAX_YMIN_YMAX_IC =        11931
  integer, parameter :: NPROC_XI_VAL =           18
  integer, parameter :: NPROC_ETA_VAL =           18
  integer, parameter :: NCHUNKS_VAL =            6
  integer, parameter :: NPROCTOT_VAL =         1944
- integer, parameter :: NGLOB2DMAX_XY_VAL =        62101
+ integer, parameter :: NGLOB2DMAX_XY_VAL_CM =        49242
+ integer, parameter :: NGLOB2DMAX_XY_VAL_OC =        15198
+ integer, parameter :: NGLOB2DMAX_XY_VAL_IC =        11931
  integer, parameter :: NUMMSGS_FACES_VAL =          216
  integer, parameter :: NCORNERSCHUNKS_VAL =            8
  integer, parameter :: ATT1 =            1

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/assemble_MPI_vector.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/assemble_MPI_vector.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/assemble_MPI_vector.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -31,9 +31,7 @@
 !---- to reduce the total number of MPI calls
 !----
 
-  subroutine assemble_MPI_vector(myrank, &
-            accel_crust_mantle,NGLOB_CRUST_MANTLE, &
-            accel_inner_core,NGLOB_INNER_CORE, &
+  subroutine assemble_MPI_vector(myrank,accel_crust_mantle,accel_inner_core, &
             iproc_xi,iproc_eta,ichunk,addressing, &
             iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
             npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
@@ -46,12 +44,8 @@
             buffer_send_faces_vector,buffer_received_faces_vector,npoin2D_max_all, &
             buffer_send_chunkcorners_vector,buffer_recv_chunkcorners_vector, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
-            NPROC_XI,NPROC_ETA, &
-            NGLOB1D_RADIAL_crust_mantle, &
-            NGLOB2DMAX_XMIN_XMAX_CM,NGLOB2DMAX_YMIN_YMAX_CM, &
-            NGLOB1D_RADIAL_inner_core, &
-            NGLOB2DMAX_XMIN_XMAX_IC,NGLOB2DMAX_YMIN_YMAX_IC, &
-            NGLOB2DMAX_XY,NCHUNKS)
+            NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL_crust_mantle, &
+            NGLOB1D_RADIAL_inner_core,NCHUNKS)
 
   implicit none
 
@@ -61,8 +55,11 @@
   include "constants.h"
   include "precision.h"
 
-  integer myrank,NGLOB_CRUST_MANTLE,NGLOB_INNER_CORE,NCHUNKS
+! include values created by the mesher
+  include "OUTPUT_FILES/values_from_mesher.h"
 
+  integer myrank,NCHUNKS
+
 ! the two arrays to assemble
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: accel_crust_mantle
   real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: accel_inner_core
@@ -73,9 +70,7 @@
   integer npoin2D_xi_inner_core,npoin2D_eta_inner_core
   integer npoin2D_faces_inner_core(NUMFACES_SHARED)
 
-  integer NGLOB2DMAX_XMIN_XMAX_CM,NGLOB2DMAX_YMIN_YMAX_CM,NGLOB1D_RADIAL_crust_mantle
-  integer NGLOB2DMAX_XMIN_XMAX_IC,NGLOB2DMAX_YMIN_YMAX_IC,NGLOB1D_RADIAL_inner_core
-  integer NPROC_XI,NPROC_ETA,NGLOB2DMAX_XY
+  integer NGLOB1D_RADIAL_crust_mantle,NGLOB1D_RADIAL_inner_core,NPROC_XI,NPROC_ETA
   integer NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS
 
 ! for addressing of the slices
@@ -93,7 +88,8 @@
   integer icount_corners
 
   integer :: npoin2D_max_all
-  integer, dimension(NGLOB2DMAX_XY,NUMFACES_SHARED) :: iboolfaces_crust_mantle,iboolfaces_inner_core
+  integer, dimension(NGLOB2DMAX_XY_VAL_CM,NUMFACES_SHARED) :: iboolfaces_crust_mantle
+  integer, dimension(NGLOB2DMAX_XY_VAL_IC,NUMFACES_SHARED) :: iboolfaces_inner_core
   real(kind=CUSTOM_REAL), dimension(NDIM,npoin2D_max_all) :: buffer_send_faces_vector,buffer_received_faces_vector
 
 ! buffers for send and receive between corners of the chunks

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/constants.h
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/constants.h	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/constants.h	2008-05-09 23:11:56 UTC (rev 11938)
@@ -359,12 +359,12 @@
 ! number of faces a given slice can share with other slices
 ! this is at most 2, except when there is only once slice per chunk
 ! in which case it is 4
-  integer, parameter :: NUMFACES_SHARED = 4
+  integer, parameter :: NUMFACES_SHARED = 2 !!!!!  DK DK removed support for one slice only    4
 
 ! number of corners a given slice can share with other slices
 ! this is at most 1, except when there is only once slice per chunk
 ! in which case it is 4
-  integer, parameter :: NUMCORNERS_SHARED = 4
+  integer, parameter :: NUMCORNERS_SHARED = 1 !!!!!!  DK DK removed support for one slice only    4
 
 ! number of slaves per corner
   integer, parameter :: NUMSLAVES = 2

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_chunk_buffers.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_chunk_buffers.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_chunk_buffers.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -42,7 +42,7 @@
   yread1D_leftxi_lefteta, yread1D_rightxi_lefteta, yread1D_leftxi_righteta, yread1D_rightxi_righteta, &
   zread1D_leftxi_lefteta, zread1D_rightxi_lefteta, zread1D_leftxi_righteta, zread1D_rightxi_righteta, &
   iprocfrom_faces,iprocto_faces,iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-  iboolfaces,npoin2D_faces,iboolcorner,NGLOB1D_RADIAL)
+  iboolfaces,npoin2D_faces,iboolcorner,NGLOB1D_RADIAL,NGLOB2DMAX_XY)
 
   implicit none
 
@@ -60,7 +60,8 @@
   integer :: NGLOB1D_RADIAL
   integer :: imsg2,icount_faces,icount_corners
   integer, dimension(NUMFACES_SHARED) :: npoin2D_faces
-  integer, dimension(NGLOB2DMAX_XY_VAL,NUMFACES_SHARED) :: iboolfaces
+  integer :: NGLOB2DMAX_XY
+  integer, dimension(NGLOB2DMAX_XY,NUMFACES_SHARED) :: iboolfaces
   integer, dimension(NGLOB1D_RADIAL,NUMCORNERS_SHARED) :: iboolcorner
 
 !! DK DK added this for the merged version
@@ -98,7 +99,6 @@
   logical, dimension(:), allocatable ::  mask_ibool
 
 ! array to store points selected for the chunk face buffer
-  integer NGLOB2DMAX_XY
   integer, dimension(:), allocatable :: ibool_selected
 
   double precision, dimension(:), allocatable :: xstore_selected,ystore_selected,zstore_selected
@@ -245,9 +245,6 @@
     write(IMAIN,*)
   endif
 
-! define maximum size for message buffers
-  NGLOB2DMAX_XY = max(NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX)
-
 ! allocate arrays for message buffers with maximum size
   allocate(ibool_selected(NGLOB2DMAX_XY))
   allocate(xstore_selected(NGLOB2DMAX_XY))

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_list_files_chunks.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_list_files_chunks.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/create_list_files_chunks.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -32,7 +32,6 @@
 
   subroutine create_list_files_chunks(iregion_code, &
                 nglob_ori,NPROC_XI,NPROC_ETA,NPROCTOT,NGLOB1D_RADIAL_CORNER, &
-                NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX, &
                 myrank,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,NCHUNKS)
 
   implicit none
@@ -51,14 +50,10 @@
 
   integer nglob,nglob_ori
   integer NPROC_XI,NPROC_ETA,NPROCTOT,NGLOB1D_RADIAL_my_corner
-  integer NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX
   integer myrank,NCHUNKS
 
   character(len=150) OUTPUT_FILES
 
-! array to store points selected for the chunk face buffer
-  integer NGLOB2DMAX_XY
-
 ! pairs generated theoretically
 ! four sides for each of the three types of messages
   integer, dimension(:), allocatable :: iproc_sender,iproc_receiver,npoin2D_send,npoin2D_receive
@@ -158,9 +153,6 @@
     write(IMAIN,*)
   endif
 
-! define maximum size for message buffers
-  NGLOB2DMAX_XY = max(NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX)
-
   imsg = 0
 
   if(myrank == 0) then

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/declar.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/declar.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/declar.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -123,12 +123,10 @@
   integer, dimension(NSPEC2D_BOTTOM_IC) :: ibelm_bottom_inner_core
   integer, dimension(NSPEC2D_TOP_IC) :: ibelm_top_inner_core
 
-  integer, dimension(NGLOB2DMAX_XY_VAL,NUMFACES_SHARED) :: iboolfaces_crust_mantle,iboolfaces_outer_core,iboolfaces_inner_core
+  integer, dimension(NGLOB2DMAX_XY_VAL_CM,NUMFACES_SHARED) :: iboolfaces_crust_mantle
+  integer, dimension(NGLOB2DMAX_XY_VAL_OC,NUMFACES_SHARED) :: iboolfaces_outer_core
+  integer, dimension(NGLOB2DMAX_XY_VAL_IC,NUMFACES_SHARED) :: iboolfaces_inner_core
 
-!!!!  real(kind=CUSTOM_REAL), dimension(NGLOB2DMAX_XY_VAL) :: buffer_send_faces_scalar,buffer_received_faces_scalar
-
-!!!!  real(kind=CUSTOM_REAL), dimension(NDIM,2*NGLOB2DMAX_XY_VAL) :: buffer_send_faces_vector,buffer_received_faces_vector
-
   integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE) :: ibool_crust_mantle
 
   integer, dimension(NSPEC_CRUST_MANTLE) :: idoubling_crust_mantle

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/meshfem3D.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/meshfem3D.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -1768,7 +1768,6 @@
 ! crust_mantle
     call create_list_files_chunks(iregion_code, &
       nglob(iregion_code),NPROC_XI,NPROC_ETA,NPROCTOT,NGLOB1D_RADIAL_CORNER, &
-      NGLOB2DMAX_XMIN_XMAX(iregion_code),NGLOB2DMAX_YMIN_YMAX(iregion_code), &
       myrank,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,NCHUNKS)
 
 !! $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
@@ -1846,7 +1845,8 @@
   yread1D_leftxi_lefteta, yread1D_rightxi_lefteta, yread1D_leftxi_righteta, yread1D_rightxi_righteta, &
   zread1D_leftxi_lefteta, zread1D_rightxi_lefteta, zread1D_leftxi_righteta, zread1D_rightxi_righteta, &
   iprocfrom_faces,iprocto_faces,iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-  iboolfaces_crust_mantle,npoin2D_faces_crust_mantle,iboolcorner_crust_mantle,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE))
+  iboolfaces_crust_mantle,npoin2D_faces_crust_mantle,iboolcorner_crust_mantle,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
+  NGLOB2DMAX_XY_VAL_CM)
 
   else if(iregion_code == IREGION_OUTER_CORE) then
 ! outer_core
@@ -1864,7 +1864,8 @@
   yread1D_leftxi_lefteta, yread1D_rightxi_lefteta, yread1D_leftxi_righteta, yread1D_rightxi_righteta, &
   zread1D_leftxi_lefteta, zread1D_rightxi_lefteta, zread1D_leftxi_righteta, zread1D_rightxi_righteta, &
   iprocfrom_faces,iprocto_faces,iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-  iboolfaces_outer_core,npoin2D_faces_outer_core,iboolcorner_outer_core,NGLOB1D_RADIAL(IREGION_OUTER_CORE))
+  iboolfaces_outer_core,npoin2D_faces_outer_core,iboolcorner_outer_core,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
+  NGLOB2DMAX_XY_VAL_OC)
 
   else if(iregion_code == IREGION_INNER_CORE) then
 ! inner_core
@@ -1882,7 +1883,8 @@
   yread1D_leftxi_lefteta, yread1D_rightxi_lefteta, yread1D_leftxi_righteta, yread1D_rightxi_righteta, &
   zread1D_leftxi_lefteta, zread1D_rightxi_lefteta, zread1D_leftxi_righteta, zread1D_rightxi_righteta, &
   iprocfrom_faces,iprocto_faces,iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
-  iboolfaces_inner_core,npoin2D_faces_inner_core,iboolcorner_inner_core,NGLOB1D_RADIAL(IREGION_INNER_CORE))
+  iboolfaces_inner_core,npoin2D_faces_inner_core,iboolcorner_inner_core,NGLOB1D_RADIAL(IREGION_INNER_CORE), &
+  NGLOB2DMAX_XY_VAL_IC)
 
   else
     stop 'DK DK incorrect region in merged code'

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/read_compute_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/read_compute_parameters.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/read_compute_parameters.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -2195,7 +2195,8 @@
         tmp_sum_nglob2D_eta = tmp_sum_nglob2D_eta + (((NEX_PER_PROC_ETA / ratio_sampling_array(iter_layer)) * &
                 (ner(iter_layer) - doubling*nb_lay_sb))*NGLLX*NGLLX) - &
                 ((((NEX_PER_PROC_ETA / ratio_sampling_array(iter_layer))-1)*(ner(iter_layer) - doubling*nb_lay_sb)) + &
-                ((NEX_PER_PROC_ETA / ratio_sampling_array(iter_layer))*(ner(iter_layer) - to_remove - doubling*nb_lay_sb))*NGLLX) + &
+                ((NEX_PER_PROC_ETA / ratio_sampling_array(iter_layer))* &
+                   (ner(iter_layer) - to_remove - doubling*nb_lay_sb))*NGLLX) + &
                 (((NEX_PER_PROC_ETA / ratio_sampling_array(iter_layer))-1)*(ner(iter_layer) - to_remove - doubling*nb_lay_sb)) + &
                 doubling * (((NEX_PER_PROC_ETA / ratio_sampling_array(iter_layer))/divider) * (nglob_surf-nglob_edges_h) - &
                 ((NEX_PER_PROC_ETA / ratio_sampling_array(iter_layer))/divider -1) * nglob_edge_v)

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/save_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/save_header_file.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/save_header_file.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -395,8 +395,12 @@
   write(IOUT,*) 'integer, parameter :: NCHUNKS_VAL = ',NCHUNKS
   write(IOUT,*) 'integer, parameter :: NPROCTOT_VAL = ',NPROCTOT
 
-  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XY_VAL = ', &
-            max(NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE))
+  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XY_VAL_CM = ', &
+     max(NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE))
+  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XY_VAL_OC = ', &
+     max(NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE))
+  write(IOUT,*) 'integer, parameter :: NGLOB2DMAX_XY_VAL_IC = ', &
+     max(NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE))
 
   if(NCHUNKS == 1 .or. NCHUNKS == 2) then
     NCORNERSCHUNKS = 1

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/specfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/specfem3D.f90	2008-05-09 22:14:18 UTC (rev 11937)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/specfem3D.f90	2008-05-09 23:11:56 UTC (rev 11938)
@@ -311,9 +311,9 @@
 
 ! 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
-  integer, dimension(NGLOB2DMAX_XY_VAL,NUMFACES_SHARED) :: iboolfaces_crust_mantle, &
-      iboolfaces_outer_core,iboolfaces_inner_core
+  integer, dimension(NGLOB2DMAX_XY_VAL_CM,NUMFACES_SHARED) :: iboolfaces_crust_mantle
+  integer, dimension(NGLOB2DMAX_XY_VAL_OC,NUMFACES_SHARED) :: iboolfaces_outer_core
+  integer, dimension(NGLOB2DMAX_XY_VAL_IC,NUMFACES_SHARED) :: iboolfaces_inner_core
 
 ! buffers for send and receive between faces of the slices and the chunks
 ! we use the same buffers to assemble scalars and vectors because vectors are
@@ -1013,10 +1013,6 @@
 ! make ellipticity
   if(ELLIPTICITY_VAL) call make_ellipticity(nspl,rspl,espl,espl2,ONE_CRUST)
 
-! define maximum size for message buffers
-! use number of elements found in the mantle since it is the largest region
-  NGLOB2DMAX_XY = max(NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE))
-
 ! number of corners and faces shared between chunks and number of message types
   if(NCHUNKS_VAL == 1 .or. NCHUNKS_VAL == 2) then
     NCORNERSCHUNKS = 1
@@ -1383,7 +1379,7 @@
             buffer_send_chunkcorners_scalar,buffer_recv_chunkcorners_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY,NCHUNKS)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY_VAL_CM,NCHUNKS)
   endif
 
 ! crust and mantle
@@ -1398,7 +1394,7 @@
             buffer_send_chunkcorners_scalar,buffer_recv_chunkcorners_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY,NCHUNKS)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_XY_VAL_CM,NCHUNKS)
 
 ! outer core
   call assemble_MPI_scalar(myrank,rmass_outer_core,NGLOB_OUTER_CORE, &
@@ -1412,7 +1408,7 @@
             buffer_send_chunkcorners_scalar,buffer_recv_chunkcorners_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE),NGLOB2DMAX_XY,NCHUNKS)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE),NGLOB2DMAX_XY_VAL_OC,NCHUNKS)
 
 ! inner core
   call assemble_MPI_scalar(myrank,rmass_inner_core,NGLOB_INNER_CORE, &
@@ -1426,7 +1422,7 @@
             buffer_send_chunkcorners_scalar,buffer_recv_chunkcorners_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL(IREGION_INNER_CORE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE),NGLOB2DMAX_XY,NCHUNKS)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE),NGLOB2DMAX_XY_VAL_IC,NCHUNKS)
 
   if(myrank == 0) write(IMAIN,*) 'end assembling MPI mass matrix'
 
@@ -2105,7 +2101,7 @@
             buffer_send_chunkcorners_scalar,buffer_recv_chunkcorners_scalar, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
             NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL(IREGION_OUTER_CORE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE),NGLOB2DMAX_XY,NCHUNKS)
+            NGLOB2DMAX_XMIN_XMAX(IREGION_OUTER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_OUTER_CORE),NGLOB2DMAX_XY_VAL_OC,NCHUNKS)
 
 ! multiply by the inverse of the mass matrix and update velocity
   do i=1,NGLOB_OUTER_CORE
@@ -2281,9 +2277,7 @@
 
 ! crust/mantle and inner core handled in the same call
 ! in order to reduce the number of MPI messages by 2
-  call assemble_MPI_vector(myrank, &
-            accel_crust_mantle,NGLOB_CRUST_MANTLE, &
-            accel_inner_core,NGLOB_INNER_CORE, &
+  call assemble_MPI_vector(myrank,accel_crust_mantle,accel_inner_core, &
             iproc_xi,iproc_eta,ichunk,addressing, &
             iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle,iboolleft_eta_crust_mantle,iboolright_eta_crust_mantle, &
             npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle(1),npoin2D_eta_crust_mantle(1), &
@@ -2296,12 +2290,8 @@
             buffer_send_faces,buffer_received_faces,npoin2D_max_all, &
             buffer_send_chunkcorners_vector,buffer_recv_chunkcorners_vector, &
             NUMMSGS_FACES,NUM_MSG_TYPES,NCORNERSCHUNKS, &
-            NPROC_XI,NPROC_ETA, &
-            NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_CRUST_MANTLE),NGLOB2DMAX_YMIN_YMAX(IREGION_CRUST_MANTLE), &
-            NGLOB1D_RADIAL(IREGION_INNER_CORE), &
-            NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE), &
-            NGLOB2DMAX_XY,NCHUNKS)
+            NPROC_XI,NPROC_ETA,NGLOB1D_RADIAL(IREGION_CRUST_MANTLE), &
+            NGLOB1D_RADIAL(IREGION_INNER_CORE),NCHUNKS)
 
 !---
 !---  use buffers to assemble forces with the central cube



More information about the cig-commits mailing list