[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