[cig-commits] r22694 - in seismo/3D/SPECFEM3D_GLOBE/trunk/src: meshfem3D shared specfem3D
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Sat Aug 3 16:51:07 PDT 2013
Author: dkomati1
Date: 2013-08-03 16:51:06 -0700 (Sat, 03 Aug 2013)
New Revision: 22694
Modified:
seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_solver.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
Log:
fixed the bug detected by Min Chen about NGLOB_XY_CM_BACKWARD and NGLOB_XY_IC_BACKWARD that were not correct for EXACT_MASS_MATRIX_FOR_ROTATION if the code was not recompiled and the mesher rerun when switching from SIMULATION_TYPE == 1 to SIMULATION_TYPE == 3
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_mass_matrices.f90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -42,7 +42,7 @@
jacobian2D_xmin,jacobian2D_xmax,jacobian2D_ymin,jacobian2D_ymax, &
jacobian2D_bottom,jacobian2D_top,&
SIMULATION_TYPE,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK,&
- nglob_xy_backward,b_rmassx,b_rmassy)
+ b_rmassx,b_rmassy)
! creates rmassx, rmassy, rmassz and rmass_ocean_load
@@ -69,10 +69,9 @@
real(kind=CUSTOM_REAL), dimension(nglob) :: rmassz
real(kind=CUSTOM_REAL) :: two_omega_earth,scale_t_inv
- ! mass matrices for backward simulation when SIMULATION_TYPE =3 and ROTATION is .true.
- integer :: nglob_xy_backward
+ ! mass matrices for backward simulation when ROTATION is .true.
logical :: EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK
- real(kind=CUSTOM_REAL), dimension(nglob_xy_backward) :: b_rmassx,b_rmassy
+ real(kind=CUSTOM_REAL), dimension(nglob_xy) :: b_rmassx,b_rmassy
real(kind=CUSTOM_REAL) :: b_two_omega_earth
real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec) :: rhostore,kappavstore
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.F90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -163,8 +163,8 @@
real(kind=CUSTOM_REAL), dimension(:), allocatable :: rmassx,rmassy,rmassz
integer :: nglob_xy
- ! mass matrices for backward simulation when SIMULATION_TYPE =3 and ROTATION is .true.
- integer :: SIMULATION_TYPE,nglob_xy_backward
+ ! mass matrices for backward simulation when ROTATION is .true.
+ integer :: SIMULATION_TYPE
logical :: EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK
real(kind=CUSTOM_REAL), dimension(:), allocatable :: b_rmassx,b_rmassy
@@ -983,7 +983,6 @@
! if absorbing_conditions are not set or if NCHUNKS=6, only one mass matrix is needed
! for the sake of performance, only "rmassz" array will be filled and "rmassx" & "rmassy" will be obsolete
nglob_xy = 1
- nglob_xy_backward = 1
if(NCHUNKS /= 6 .and. ABSORBING_CONDITIONS .and. (.not. USE_LDDRK)) then
select case(iregion_code)
@@ -996,7 +995,7 @@
nglob_xy = 1
endif
- if(SIMULATION_TYPE /=3 .and. (.not. USE_LDDRK))then
+ if(.not. USE_LDDRK)then
if(ROTATION .and. EXACT_MASS_MATRIX_FOR_ROTATION)then
select case(iregion_code)
case( IREGION_CRUST_MANTLE,IREGION_INNER_CORE )
@@ -1007,19 +1006,6 @@
endif
endif
- if(SIMULATION_TYPE ==3 .and. (.not. USE_LDDRK) )then
- if(ROTATION .and. EXACT_MASS_MATRIX_FOR_ROTATION)then
- select case(iregion_code)
- case( IREGION_CRUST_MANTLE,IREGION_INNER_CORE )
- nglob_xy = nglob
- nglob_xy_backward = nglob
- case( IREGION_OUTER_CORE )
- nglob_xy = 1
- nglob_xy_backward = 1
- endselect
- endif
- endif
-
allocate(rmassx(nglob_xy),stat=ier)
if(ier /= 0) stop 'error in allocate 21'
allocate(rmassy(nglob_xy),stat=ier)
@@ -1027,9 +1013,9 @@
allocate(rmassz(nglob),stat=ier)
if(ier /= 0) stop 'error in allocate 21'
- allocate(b_rmassx(nglob_xy_backward),stat=ier)
+ allocate(b_rmassx(nglob_xy),stat=ier)
if(ier /= 0) stop 'error in allocate b_21'
- allocate(b_rmassy(nglob_xy_backward),stat=ier)
+ allocate(b_rmassy(nglob_xy),stat=ier)
if(ier /= 0) stop 'error in allocate b_21'
! allocates ocean load mass matrix as well if oceans
@@ -1060,7 +1046,7 @@
jacobian2D_xmin,jacobian2D_xmax,jacobian2D_ymin,jacobian2D_ymax, &
jacobian2D_bottom,jacobian2D_top,&
SIMULATION_TYPE,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
- nglob_xy_backward,b_rmassx,b_rmassy)
+ b_rmassx,b_rmassy)
! save the binary files
#ifdef USE_SERIAL_CASCADE_FOR_IOs
@@ -1090,8 +1076,8 @@
tau_s,tau_e_store,Qmu_store,T_c_source,ATTENUATION, &
ATT1,ATT2,ATT3,size(tau_e_store,5),&
NCHUNKS,ABSORBING_CONDITIONS,SAVE_MESH_FILES,ispec_is_tiso,myrank,&
- SIMULATION_TYPE,ROTATION,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK,&
- nglob_xy_backward,b_rmassx,b_rmassy)
+ ROTATION,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK,&
+ b_rmassx,b_rmassy)
#ifdef USE_SERIAL_CASCADE_FOR_IOs
you_can_start_doing_IOs = .true.
if (myrank < NPROC_XI*NPROC_ETA-1) call MPI_SEND(you_can_start_doing_IOs, 1, MPI_LOGICAL, myrank+1, itag, MPI_COMM_WORLD, ier)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -45,20 +45,19 @@
ANISOTROPIC_INNER_CORE,OCEANS, &
tau_s,tau_e_store,Qmu_store,T_c_source,ATTENUATION,ATT1,ATT2,ATT3,vnspec, &
NCHUNKS,ABSORBING_CONDITIONS,SAVE_MESH_FILES,ispec_is_tiso,myrank,&
- SIMULATION_TYPE,ROTATION,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK,&
- nglob_xy_backward,b_rmassx,b_rmassy)
+ ROTATION,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK,&
+ b_rmassx,b_rmassy)
implicit none
include "constants.h"
- integer SIMULATION_TYPE
logical ATTENUATION,ROTATION,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK
character(len=150) prname
integer iregion_code,NCHUNKS
- integer nspec,nglob_xy,nglob,nspec_stacey,myrank,nglob_xy_backward
+ integer nspec,nglob_xy,nglob,nspec_stacey,myrank
integer npointot_oceans
! Stacey
@@ -100,8 +99,8 @@
real(kind=CUSTOM_REAL), dimension(nglob_xy) :: rmassx,rmassy
real(kind=CUSTOM_REAL), dimension(nglob) :: rmassz
-! mass matrices for backward simulation when SIMULATION_TYPE =3 and ROTATION is .true.
- real(kind=CUSTOM_REAL), dimension(nglob_xy_backward) :: b_rmassx,b_rmassy
+! mass matrices for backward simulation when ROTATION is .true.
+ real(kind=CUSTOM_REAL), dimension(nglob_xy) :: b_rmassx,b_rmassy
! additional ocean load mass matrix
real(kind=CUSTOM_REAL) rmass_ocean_load(npointot_oceans)
@@ -277,8 +276,8 @@
if(.not. USE_LDDRK)then
if(EXACT_MASS_MATRIX_FOR_ROTATION)then
- if((SIMULATION_TYPE == 3 .and. (ROTATION .and. iregion_code == IREGION_CRUST_MANTLE)) .or. &
- (SIMULATION_TYPE == 3 .and. (ROTATION .and. iregion_code == IREGION_INNER_CORE)))then
+ if((ROTATION .and. iregion_code == IREGION_CRUST_MANTLE) .or. &
+ (ROTATION .and. iregion_code == IREGION_INNER_CORE))then
write(27) b_rmassx
write(27) b_rmassy
endif
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/memory_eval.f90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -83,7 +83,7 @@
! local variables
integer :: ilayer,NUMBER_OF_MESH_LAYERS,ner_without_doubling,ispec_aniso, &
NSPEC_CRUST_MANTLE_ADJOINT_HESS,NSPEC_CRUST_MANTLE_ADJOINT_NOISE,NSPEC_CRUST_MANTLE_ADJOINT_ANISO_KL, &
- NGLOB_XY_CM,NGLOB_XY_IC,NGLOB_XY_CM_BACKWARD,NGLOB_XY_IC_BACKWARD
+ NGLOB_XY_CM,NGLOB_XY_IC
! generate the elements in all the regions of the mesh
ispec_aniso = 0
@@ -427,8 +427,6 @@
NGLOB_XY_CM = 1
NGLOB_XY_IC = 1
- NGLOB_XY_CM_BACKWARD = 1
- NGLOB_XY_IC_BACKWARD = 1
if(NCHUNKS /= 6 .and. ABSORBING_CONDITIONS .and. .not. USE_LDDRK) then
NGLOB_XY_CM = NGLOB(IREGION_CRUST_MANTLE)
@@ -436,33 +434,24 @@
NGLOB_XY_CM = 1
endif
- if(SIMULATION_TYPE /= 3 .and. .not. USE_LDDRK .and. EXACT_MASS_MATRIX_FOR_ROTATION) then
+ if(.not. USE_LDDRK .and. EXACT_MASS_MATRIX_FOR_ROTATION) then
if(ROTATION) then
NGLOB_XY_CM = NGLOB(IREGION_CRUST_MANTLE)
NGLOB_XY_IC = NGLOB(IREGION_INNER_CORE)
endif
endif
- if(SIMULATION_TYPE == 3 .and. .not. USE_LDDRK .and. EXACT_MASS_MATRIX_FOR_ROTATION) then
- if(ROTATION) then
- NGLOB_XY_CM = NGLOB(IREGION_CRUST_MANTLE)
- NGLOB_XY_IC = NGLOB(IREGION_INNER_CORE)
- NGLOB_XY_CM_BACKWARD = NGLOB(IREGION_CRUST_MANTLE)
- NGLOB_XY_IC_BACKWARD = NGLOB(IREGION_INNER_CORE)
- endif
- endif
-
! rmassx_crust_mantle,rmassy_crust_mantle for EXACT_MASS_MATRIX_FOR_ROTATION and/or ABSORBING_CONDITIONS
static_memory_size = static_memory_size + 2.d0*NGLOB_XY_CM*4.d0*dble(CUSTOM_REAL)
! b_rmassx_crust_mantle,b_rmassy_crust_mantle for EXACT_MASS_MATRIX_FOR_ROTATION and/or ABSORBING_CONDITIONS
- static_memory_size = static_memory_size + 2.d0*NGLOB_XY_CM_BACKWARD*4.d0*dble(CUSTOM_REAL)
+ static_memory_size = static_memory_size + 2.d0*NGLOB_XY_CM*4.d0*dble(CUSTOM_REAL)
! rmassx_inner_core,rmassy_inner_core for EXACT_MASS_MATRIX_FOR_ROTATION and/or ABSORBING_CONDITIONS
static_memory_size = static_memory_size + 2.d0*NGLOB_XY_IC*4.d0*dble(CUSTOM_REAL)
! b_rmassx_inner_core,b_rmassy_inner_core for EXACT_MASS_MATRIX_FOR_ROTATION and/or ABSORBING_CONDITIONS
- static_memory_size = static_memory_size + 2.d0*NGLOB_XY_IC_BACKWARD*4.d0*dble(CUSTOM_REAL)
+ static_memory_size = static_memory_size + 2.d0*NGLOB_XY_IC*4.d0*dble(CUSTOM_REAL)
end subroutine memory_eval
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -56,6 +56,16 @@
SAVE_SOURCE_MASK,ABSORBING_CONDITIONS,USE_LDDRK,EXACT_MASS_MATRIX_FOR_ROTATION, &
ATTENUATION_1D_WITH_3D_STORAGE)
+!
+! ****************************************************************************************************
+! IMPORTANT: this routine must *NOT* use flag SIMULATION_TYPE, i.e. none of the parameters it computes
+! should depend on SIMULATION_TYPE, because most users do not recompile the code nor rerun the mesher
+! when switching from SIMULATION_TYPE == 1 to SIMULATION_TYPE == 3 and thus the header file created
+! by this routine would become wrong in the case of a run with SIMULATION_TYPE == 3 if the code
+! was compiled with SIMULATION_TYPE == 1
+! ****************************************************************************************************
+!
+
implicit none
include "constants.h"
@@ -93,7 +103,7 @@
NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION, &
NSPEC2D_MOHO, NSPEC2D_400, NSPEC2D_670, NSPEC2D_CMB, NSPEC2D_ICB, &
- NGLOB_XY_CM, NGLOB_XY_IC, NGLOB_XY_CM_BACKWARD, NGLOB_XY_IC_BACKWARD
+ NGLOB_XY_CM, NGLOB_XY_IC
integer :: SIMULATION_TYPE
logical :: SAVE_FORWARD,MOVIE_VOLUME
@@ -593,8 +603,6 @@
NGLOB_XY_CM = 1
NGLOB_XY_IC = 1
- NGLOB_XY_CM_BACKWARD = 1
- NGLOB_XY_IC_BACKWARD = 1
if(NCHUNKS /= 6 .and. ABSORBING_CONDITIONS .and. .not. USE_LDDRK) then
NGLOB_XY_CM = NGLOB(IREGION_CRUST_MANTLE)
@@ -602,26 +610,15 @@
NGLOB_XY_CM = 1
endif
- if(SIMULATION_TYPE /= 3 .and. .not. USE_LDDRK .and. EXACT_MASS_MATRIX_FOR_ROTATION) then
+ if(.not. USE_LDDRK .and. EXACT_MASS_MATRIX_FOR_ROTATION) then
if(ROTATION) then
NGLOB_XY_CM = NGLOB(IREGION_CRUST_MANTLE)
NGLOB_XY_IC = NGLOB(IREGION_INNER_CORE)
endif
endif
- if(SIMULATION_TYPE == 3 .and. .not. USE_LDDRK .and. EXACT_MASS_MATRIX_FOR_ROTATION) then
- if(ROTATION) then
- NGLOB_XY_CM = NGLOB(IREGION_CRUST_MANTLE)
- NGLOB_XY_IC = NGLOB(IREGION_INNER_CORE)
- NGLOB_XY_CM_BACKWARD = NGLOB(IREGION_CRUST_MANTLE)
- NGLOB_XY_IC_BACKWARD = NGLOB(IREGION_INNER_CORE)
- endif
- endif
-
write(IOUT,*) 'integer, parameter :: NGLOB_XY_CM = ',NGLOB_XY_CM
write(IOUT,*) 'integer, parameter :: NGLOB_XY_IC = ',NGLOB_XY_IC
- write(IOUT,*) 'integer, parameter :: NGLOB_XY_CM_BACKWARD = ',NGLOB_XY_CM_BACKWARD
- write(IOUT,*) 'integer, parameter :: NGLOB_XY_IC_BACKWARD = ',NGLOB_XY_IC_BACKWARD
write(IOUT,*)
if (ATTENUATION_1D_WITH_3D_STORAGE) then
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/prepare_timerun.f90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -66,14 +66,14 @@
real(kind=CUSTOM_REAL), dimension(NGLOB_CRUST_MANTLE_OCEANS) :: rmass_ocean_load
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: rmassx_crust_mantle
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: rmassy_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM_BACKWARD) :: b_rmassx_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM_BACKWARD) :: b_rmassy_crust_mantle
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: b_rmassx_crust_mantle
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: b_rmassy_crust_mantle
real(kind=CUSTOM_REAL), dimension(NGLOB_CRUST_MANTLE) :: rmassz_crust_mantle
real(kind=CUSTOM_REAL), dimension(NGLOB_OUTER_CORE) :: rmass_outer_core
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: rmassx_inner_core
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: rmassy_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC_BACKWARD) :: b_rmassx_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC_BACKWARD) :: b_rmassy_inner_core
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: b_rmassx_inner_core
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: b_rmassy_inner_core
real(kind=CUSTOM_REAL), dimension(NGLOB_INNER_CORE) :: rmass_inner_core
integer ichunk,iproc_xi,iproc_eta
@@ -197,9 +197,9 @@
NGLOB2DMAX_XY_CM_VAL,NCHUNKS_VAL)
if(ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION &
- .and. .not. USE_LDDRK .and. NGLOB_XY_CM_BACKWARD > 0)then
+ .and. .not. USE_LDDRK .and. NGLOB_XY_CM > 0)then
if(SIMULATION_TYPE == 3)then
- call assemble_MPI_scalar_block(myrank,b_rmassx_crust_mantle,NGLOB_XY_CM_BACKWARD, &
+ call assemble_MPI_scalar_block(myrank,b_rmassx_crust_mantle,NGLOB_XY_CM, &
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, &
@@ -212,7 +212,7 @@
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_CM_VAL,NCHUNKS_VAL)
- call assemble_MPI_scalar_block(myrank,b_rmassy_crust_mantle,NGLOB_XY_CM_BACKWARD, &
+ call assemble_MPI_scalar_block(myrank,b_rmassy_crust_mantle,NGLOB_XY_CM, &
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, &
@@ -274,8 +274,8 @@
NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE), &
NGLOB2DMAX_XY_IC_VAL,NCHUNKS_VAL)
- if(SIMULATION_TYPE == 3 .and. NGLOB_XY_IC_BACKWARD > 0)then
- call assemble_MPI_scalar_block(myrank,b_rmassx_inner_core,NGLOB_XY_IC_BACKWARD, &
+ if(SIMULATION_TYPE == 3 .and. NGLOB_XY_IC > 0)then
+ call assemble_MPI_scalar_block(myrank,b_rmassx_inner_core,NGLOB_XY_IC, &
iproc_xi,iproc_eta,ichunk,addressing, &
iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
@@ -289,7 +289,7 @@
NGLOB2DMAX_XMIN_XMAX(IREGION_INNER_CORE),NGLOB2DMAX_YMIN_YMAX(IREGION_INNER_CORE), &
NGLOB2DMAX_XY_IC_VAL,NCHUNKS_VAL)
- call assemble_MPI_scalar_block(myrank,b_rmassy_inner_core,NGLOB_XY_IC_BACKWARD, &
+ call assemble_MPI_scalar_block(myrank,b_rmassy_inner_core,NGLOB_XY_IC, &
iproc_xi,iproc_eta,ichunk,addressing, &
iboolleft_xi_inner_core,iboolright_xi_inner_core,iboolleft_eta_inner_core,iboolright_eta_inner_core, &
npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_solver.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_solver.f90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_arrays_solver.f90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -39,7 +39,7 @@
rmassx,rmassy,rmassz,rmass_ocean_load,nspec, &
is_on_a_slice_edge,READ_KAPPA_MU,READ_TISO,TRANSVERSE_ISOTROPY, &
ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE,OCEANS,LOCAL_PATH,ABSORBING_CONDITIONS,&
- SIMULATION_TYPE,nglob_xy_backward,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
+ EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
b_rmassx,b_rmassy)
implicit none
@@ -47,8 +47,8 @@
include "constants.h"
include "OUTPUT_FILES/values_from_mesher.h"
- integer :: iregion_code,myrank,SIMULATION_TYPE
- integer :: nspec,nglob,nglob_xy,nglob_xy_backward
+ integer :: iregion_code,myrank
+ integer :: nspec,nglob,nglob_xy
integer :: nspec_iso,nspec_tiso,nspec_ani
! Stacey
@@ -80,7 +80,7 @@
! mass matrices and additional ocean load mass matrix
real(kind=CUSTOM_REAL), dimension(nglob_xy) :: rmassx,rmassy
- real(kind=CUSTOM_REAL), dimension(nglob_xy_backward) :: b_rmassx,b_rmassy
+ real(kind=CUSTOM_REAL), dimension(nglob_xy) :: b_rmassx,b_rmassy
real(kind=CUSTOM_REAL), dimension(nglob) :: rmassz
real(kind=CUSTOM_REAL), dimension(nglob) :: rmass_ocean_load
@@ -200,10 +200,8 @@
read(IIN) rmassz
if(.not. USE_LDDRK)then
- if((SIMULATION_TYPE == 3 .and. &
- (ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION .and. iregion_code == IREGION_CRUST_MANTLE)) .or. &
- (SIMULATION_TYPE == 3 .and. &
- (ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION .and. iregion_code == IREGION_INNER_CORE)))then
+ if((ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION .and. iregion_code == IREGION_CRUST_MANTLE) .or. &
+ (ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION .and. iregion_code == IREGION_INNER_CORE))then
read(IIN) b_rmassx
read(IIN) b_rmassy
endif
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/read_mesh_databases.f90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -61,7 +61,7 @@
ibool_inner_core,idoubling_inner_core,ispec_is_tiso_inner_core, &
is_on_a_slice_edge_inner_core,rmass_inner_core, &
ABSORBING_CONDITIONS,LOCAL_PATH,&
- SIMULATION_TYPE,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
+ EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
b_rmassx_crust_mantle,b_rmassy_crust_mantle,&
rmassx_inner_core,rmassy_inner_core,&
b_rmassx_inner_core,b_rmassy_inner_core)
@@ -71,7 +71,7 @@
include "constants.h"
include "OUTPUT_FILES/values_from_mesher.h"
- integer myrank,SIMULATION_TYPE
+ integer myrank
! Stacey
real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_STACEY) :: &
@@ -117,8 +117,8 @@
logical :: EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: rmassx_crust_mantle
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: rmassy_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM_BACKWARD) :: b_rmassx_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM_BACKWARD) :: b_rmassy_crust_mantle
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: b_rmassx_crust_mantle
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: b_rmassy_crust_mantle
real(kind=CUSTOM_REAL), dimension(NGLOB_CRUST_MANTLE) :: rmassz_crust_mantle
! additional mass matrix for ocean load
@@ -157,8 +157,8 @@
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: rmassx_inner_core
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: rmassy_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC_BACKWARD) :: b_rmassx_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC_BACKWARD) :: b_rmassy_inner_core
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: b_rmassx_inner_core
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: b_rmassy_inner_core
real(kind=CUSTOM_REAL), dimension(NGLOB_INNER_CORE) :: rmass_inner_core
logical ABSORBING_CONDITIONS
@@ -224,10 +224,9 @@
rmassx_crust_mantle,rmassy_crust_mantle,rmassz_crust_mantle,rmass_ocean_load,NSPEC_CRUST_MANTLE, &
is_on_a_slice_edge_crust_mantle,READ_KAPPA_MU,READ_TISO,TRANSVERSE_ISOTROPY_VAL,ANISOTROPIC_3D_MANTLE_VAL, &
ANISOTROPIC_INNER_CORE_VAL,OCEANS_VAL,LOCAL_PATH,ABSORBING_CONDITIONS,&
- SIMULATION_TYPE,NGLOB_XY_CM_BACKWARD,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
+ EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
b_rmassx_crust_mantle,b_rmassy_crust_mantle)
-
! synchronizes processes
call sync_all()
@@ -262,7 +261,7 @@
dummy_rmass,dummy_rmass,rmass_outer_core,rmass_ocean_load,NSPEC_OUTER_CORE, &
is_on_a_slice_edge_outer_core,READ_KAPPA_MU,READ_TISO,TRANSVERSE_ISOTROPY_VAL,ANISOTROPIC_3D_MANTLE_VAL, &
ANISOTROPIC_INNER_CORE_VAL,OCEANS_VAL,LOCAL_PATH,ABSORBING_CONDITIONS,&
- SIMULATION_TYPE,NGLOB_DUMMY,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
+ EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
dummy_rmass,dummy_rmass)
! synchronizes processes
@@ -300,7 +299,7 @@
rmassx_inner_core,rmassy_inner_core,rmass_inner_core,rmass_ocean_load,NSPEC_INNER_CORE, &
is_on_a_slice_edge_inner_core,READ_KAPPA_MU,READ_TISO,TRANSVERSE_ISOTROPY_VAL,ANISOTROPIC_3D_MANTLE_VAL, &
ANISOTROPIC_INNER_CORE_VAL,OCEANS_VAL,LOCAL_PATH,ABSORBING_CONDITIONS,&
- SIMULATION_TYPE,NGLOB_XY_IC_BACKWARD,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
+ EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
b_rmassx_inner_core,b_rmassy_inner_core)
! check that the number of points in this slice is correct
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-08-01 15:35:56 UTC (rev 22693)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-08-03 23:51:06 UTC (rev 22694)
@@ -567,8 +567,8 @@
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: rmassx_crust_mantle
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: rmassy_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM_BACKWARD) :: b_rmassx_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM_BACKWARD) :: b_rmassy_crust_mantle
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: b_rmassx_crust_mantle
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_CM) :: b_rmassy_crust_mantle
! displacement, velocity, acceleration
real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_CRUST_MANTLE) :: &
@@ -629,8 +629,8 @@
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: rmassx_inner_core
real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: rmassy_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC_BACKWARD) :: b_rmassx_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC_BACKWARD) :: b_rmassy_inner_core
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: b_rmassx_inner_core
+ real(kind=CUSTOM_REAL), dimension(NGLOB_XY_IC) :: b_rmassy_inner_core
! displacement, velocity, acceleration
real(kind=CUSTOM_REAL), dimension(NDIM,NGLOB_INNER_CORE) :: &
@@ -1209,7 +1209,7 @@
ibool_inner_core,idoubling_inner_core,ispec_is_tiso_inner_core, &
is_on_a_slice_edge_inner_core,rmass_inner_core, &
ABSORBING_CONDITIONS,LOCAL_PATH,&
- SIMULATION_TYPE,EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
+ EXACT_MASS_MATRIX_FOR_ROTATION,USE_LDDRK, &
b_rmassx_crust_mantle,b_rmassy_crust_mantle,&
rmassx_inner_core,rmassy_inner_core,&
b_rmassx_inner_core,b_rmassy_inner_core)
@@ -1820,7 +1820,7 @@
sender_from_slices_to_cube,ibool_central_cube, &
buffer_slices,buffer_slices2,buffer_all_cube_from_slices)
- if(SIMULATION_TYPE == 3 .and. NGLOB_XY_IC_BACKWARD > 0)then
+ if(SIMULATION_TYPE == 3 .and. NGLOB_XY_IC > 0)then
call prepare_timerun_centralcube(myrank,b_rmassx_inner_core, &
iproc_xi,iproc_eta,ichunk, &
@@ -1914,7 +1914,7 @@
call exit_MPI(myrank,'negative mass matrix term for the rmassy_inner_core')
rmassx_inner_core = 1._CUSTOM_REAL / rmassx_inner_core
rmassy_inner_core = 1._CUSTOM_REAL / rmassy_inner_core
- if(SIMULATION_TYPE == 3 .and. NGLOB_XY_IC_BACKWARD > 0)then
+ if(SIMULATION_TYPE == 3 .and. NGLOB_XY_IC > 0)then
if(minval(b_rmassx_inner_core) <= 0._CUSTOM_REAL) &
call exit_MPI(myrank,'negative mass matrix term for the b_rmassx_inner_core')
if(minval(b_rmassy_inner_core) <= 0._CUSTOM_REAL) &
@@ -1925,7 +1925,7 @@
endif
if(ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION &
- .and. .not. USE_LDDRK .and. SIMULATION_TYPE == 3 .and. NGLOB_XY_CM_BACKWARD > 0)then
+ .and. .not. USE_LDDRK .and. SIMULATION_TYPE == 3 .and. NGLOB_XY_CM > 0)then
if(minval(b_rmassx_crust_mantle) <= 0._CUSTOM_REAL) &
call exit_MPI(myrank,'negative mass matrix term for the b_crust_mantle')
if(minval(b_rmassy_crust_mantle) <= 0._CUSTOM_REAL) &
More information about the CIG-COMMITS
mailing list