[cig-commits] [commit] pluggable: Added get_model_properties(), thus eliminating the last remaining references to REFERENCE_1D_MODEL and THREE_D_MODEL, and also eliminating MODEL. The selection of a 3D mantle model determines the 1D reference model; updated the makefiles to reflect this. Added "mirrors" for s362ani models, and prepared s362ani for mitosis. Added 'blank' model to document the interface. (654811c)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Wed Apr 9 08:54:34 PDT 2014
Repository : ssh://geoshell/specfem3d_globe
On branch : pluggable
Link : https://github.com/geodynamics/specfem3d_globe/compare/64e1b38f0c5ebb4056cce0b15d41c0b9f94ab6e5...099a4d330d5b173b21e51ad441f9f429e5d37842
>---------------------------------------------------------------
commit 654811c60e30b169259f09c71728d339a109f81e
Author: Leif Strand <leif at geodynamics.org>
Date: Wed Nov 12 01:07:41 2008 +0000
Added get_model_properties(), thus eliminating the last remaining
references to REFERENCE_1D_MODEL and THREE_D_MODEL, and also
eliminating MODEL. The selection of a 3D mantle model determines the
1D reference model; updated the makefiles to reflect this. Added
"mirrors" for s362ani models, and prepared s362ani for mitosis. Added
'blank' model to document the interface.
>---------------------------------------------------------------
654811c60e30b169259f09c71728d339a109f81e
Makefile.in | 3 +-
check_buffers_1D.f90 | 4 +-
check_buffers_2D.f90 | 4 +-
check_buffers_corners_chunks.f90 | 4 +-
check_buffers_faces_chunks.f90 | 4 +-
combine_AVS_DX.f90 | 4 +-
constants.h.in | 14 ---
create_header_file.f90 | 4 +-
create_movie_AVS_DX.f90 | 4 +-
create_movie_GMT_global.f90 | 4 +-
meshfem3D.f90 | 5 +-
read_compute_parameters.f90 | 230 ++++-----------------------------------
specfem3D.f90 | 5 +-
13 files changed, 41 insertions(+), 248 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 20688e0..635df1f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -188,7 +188,8 @@ include $S/MODELS/3D_mantle/s20rts/build.mk
#include $S/MODELS/3D_mantle/Montagner/build.mk
#include $S/MODELS/3D_mantle/none/build.mk
-include $S/MODELS/1D_ref/prem/build.mk
+# This is determined by the 3D mantle model.
+#include $S/MODELS/1D_ref/prem/build.mk
#include $S/MODELS/1D_ref/iasp91/build.mk
#include $S/MODELS/1D_ref/1066a/build.mk
#include $S/MODELS/1D_ref/ak135/build.mk
diff --git a/check_buffers_1D.f90 b/check_buffers_1D.f90
index ec7d6d0..877196d 100644
--- a/check_buffers_1D.f90
+++ b/check_buffers_1D.f90
@@ -78,7 +78,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -135,7 +135,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
diff --git a/check_buffers_2D.f90 b/check_buffers_2D.f90
index be43e22..db161a8 100644
--- a/check_buffers_2D.f90
+++ b/check_buffers_2D.f90
@@ -91,7 +91,7 @@
logical, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: this_region_has_a_doubling
double precision, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: rmins,rmaxs
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -139,7 +139,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
diff --git a/check_buffers_corners_chunks.f90 b/check_buffers_corners_chunks.f90
index cb03474..46fb969 100644
--- a/check_buffers_corners_chunks.f90
+++ b/check_buffers_corners_chunks.f90
@@ -76,7 +76,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -128,7 +128,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
diff --git a/check_buffers_faces_chunks.f90 b/check_buffers_faces_chunks.f90
index 4cb08b9..bbb2a72 100644
--- a/check_buffers_faces_chunks.f90
+++ b/check_buffers_faces_chunks.f90
@@ -80,7 +80,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -133,7 +133,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
diff --git a/combine_AVS_DX.f90 b/combine_AVS_DX.f90
index 6c8d984..dd7a324 100644
--- a/combine_AVS_DX.f90
+++ b/combine_AVS_DX.f90
@@ -146,7 +146,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -208,7 +208,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC_COMP, &
NSPEC2D_XI, &
diff --git a/constants.h.in b/constants.h.in
index 77cabf5..94b000c 100644
--- a/constants.h.in
+++ b/constants.h.in
@@ -295,20 +295,6 @@
integer, parameter :: NGLOB_SUPERBRICK_1L = 58
integer, parameter :: NGNOD_EIGHT_CORNERS = 8
-! define flag for reference 1D Earth model
- integer, parameter :: REFERENCE_MODEL_PREM = 1
- integer, parameter :: REFERENCE_MODEL_IASP91 = 2
- integer, parameter :: REFERENCE_MODEL_1066A = 3
- integer, parameter :: REFERENCE_MODEL_AK135 = 4
- integer, parameter :: REFERENCE_MODEL_REF = 5
-
-! define flag for 3D Earth model
- integer, parameter :: THREE_D_MODEL_S20RTS = 1
- integer, parameter :: THREE_D_MODEL_S362ANI = 2
- integer, parameter :: THREE_D_MODEL_S362WMANI = 3
- integer, parameter :: THREE_D_MODEL_S362ANI_PREM = 4
- integer, parameter :: THREE_D_MODEL_S29EA = 5
-
! define flag for regions of the global Earth for attenuation
integer, parameter :: NUM_REGIONS_ATTENUATION = 5
diff --git a/create_header_file.f90 b/create_header_file.f90
index 41fb370..ac4d9cd 100644
--- a/create_header_file.f90
+++ b/create_header_file.f90
@@ -60,7 +60,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) LOCAL_PATH,MODEL
+ character(len=150) LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -128,7 +128,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
diff --git a/create_movie_AVS_DX.f90 b/create_movie_AVS_DX.f90
index c177211..5784871 100644
--- a/create_movie_AVS_DX.f90
+++ b/create_movie_AVS_DX.f90
@@ -728,7 +728,7 @@
NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX, &
NGLOB
- character(len=150) LOCAL_PATH,MODEL
+ character(len=150) LOCAL_PATH
logical :: CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA
integer, dimension(NB_SQUARE_CORNERS,NB_CUT_CASE) :: DIFF_NSPEC1D_RADIAL
integer, dimension(NB_SQUARE_EDGES_ONEDIR,NB_CUT_CASE) :: DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA
@@ -757,7 +757,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
diff --git a/create_movie_GMT_global.f90 b/create_movie_GMT_global.f90
index e770b66..603a976 100644
--- a/create_movie_GMT_global.f90
+++ b/create_movie_GMT_global.f90
@@ -92,7 +92,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) LOCAL_PATH,MODEL
+ character(len=150) LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -148,7 +148,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
diff --git a/meshfem3D.f90 b/meshfem3D.f90
index fea2b73..75c5656 100644
--- a/meshfem3D.f90
+++ b/meshfem3D.f90
@@ -313,7 +313,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -431,7 +431,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
@@ -489,7 +489,6 @@
call MPI_BCAST(bcast_logical,25,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
call MPI_BCAST(LOCAL_PATH,150,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
- call MPI_BCAST(MODEL,150,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
call MPI_BCAST(ner,MAX_NUMBER_OF_MESH_LAYERS,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
call MPI_BCAST(ratio_sampling_array,MAX_NUMBER_OF_MESH_LAYERS,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
diff --git a/read_compute_parameters.f90 b/read_compute_parameters.f90
index 94eb7a1..1b97490 100644
--- a/read_compute_parameters.f90
+++ b/read_compute_parameters.f90
@@ -43,7 +43,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC, &
NSPEC2D_XI, &
@@ -71,7 +71,7 @@
NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NTSTEP_BETWEEN_FRAMES, &
NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
- REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP
+ MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP
double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
@@ -90,7 +90,7 @@
ROTATE_SEISMOGRAMS_RT,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! local variables
integer NEX_MAX
@@ -194,11 +194,6 @@
if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
! define the velocity model
- call read_value_string(MODEL, 'model.name')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file'
-
-! use PREM as the 1D reference model by default
- REFERENCE_1D_MODEL = REFERENCE_MODEL_PREM
! HONOR_1D_SPHERICAL_MOHO: honor PREM Moho or not: doing so drastically reduces
! the stability condition and therefore the time step, resulting in expensive
@@ -216,209 +211,22 @@
ONE_CRUST = .false.
CASE_3D = .false.
-! default is no 3D model
- THREE_D_MODEL = 0
-
- if(MODEL == '1D_isotropic_prem') then
- TRANSVERSE_ISOTROPY = .false.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
-
- else if(MODEL == '1D_transversely_isotropic_prem') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
-
- else if(MODEL == '1D_iasp91' .or. MODEL == '1D_1066a' .or. MODEL == '1D_ak135') then
- if(MODEL == '1D_iasp91') then
- REFERENCE_1D_MODEL = REFERENCE_MODEL_IASP91
- else if(MODEL == '1D_1066a') then
- REFERENCE_1D_MODEL = REFERENCE_MODEL_1066A
- else if(MODEL == '1D_ak135') then
- REFERENCE_1D_MODEL = REFERENCE_MODEL_AK135
- else
- stop 'reference 1D Earth model unknown'
- endif
- TRANSVERSE_ISOTROPY = .false.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
-
- else if(MODEL == '1D_ref') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_REF
-
- else if(MODEL == '1D_ref_iso') then
- TRANSVERSE_ISOTROPY = .false.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_REF
-
- else if(MODEL == '1D_isotropic_prem_onecrust') then
- TRANSVERSE_ISOTROPY = .false.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
- ONE_CRUST = .true.
-
- else if(MODEL == '1D_transversely_isotropic_prem_onecrust') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
- ONE_CRUST = .true.
-
- else if(MODEL == '1D_iasp91_onecrust' .or. MODEL == '1D_1066a_onecrust' .or. MODEL == '1D_ak135_onecrust') then
- if(MODEL == '1D_iasp91_onecrust') then
- REFERENCE_1D_MODEL = REFERENCE_MODEL_IASP91
- else if(MODEL == '1D_1066a_onecrust') then
- REFERENCE_1D_MODEL = REFERENCE_MODEL_1066A
- else if(MODEL == '1D_ak135_onecrust') then
- REFERENCE_1D_MODEL = REFERENCE_MODEL_AK135
- else
- stop 'reference 1D Earth model unknown'
- endif
- TRANSVERSE_ISOTROPY = .false.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- HONOR_1D_SPHERICAL_MOHO = .true.
- ONE_CRUST = .true.
-
- else if(MODEL == 'transversely_isotropic_prem_plus_3D_crust_2.0') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .true.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
-
- else if(MODEL == 's20rts') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .true.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .true.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_PREM
- THREE_D_MODEL = THREE_D_MODEL_S20RTS
-
- else if(MODEL == 's362ani') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .true.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .true.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_REF
- THREE_D_MODEL = THREE_D_MODEL_S362ANI
-
- else if(MODEL == 's362iso') then
- TRANSVERSE_ISOTROPY = .false.
- ISOTROPIC_3D_MANTLE = .true.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .true.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_REF
- THREE_D_MODEL = THREE_D_MODEL_S362ANI
-
- else if(MODEL == 's362wmani') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .true.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .true.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_REF
- THREE_D_MODEL = THREE_D_MODEL_S362WMANI
-
- else if(MODEL == 's362ani_prem') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .true.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .true.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_PREM
- THREE_D_MODEL = THREE_D_MODEL_S362ANI_PREM
-
- else if(MODEL == 's29ea') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .true.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .true.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
- REFERENCE_1D_MODEL = REFERENCE_MODEL_REF
- THREE_D_MODEL = THREE_D_MODEL_S29EA
-
- else if(MODEL == '3D_attenuation') then
- TRANSVERSE_ISOTROPY = .false.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .true.
- ONE_CRUST = .true.
- CASE_3D = .true.
-
- else if(MODEL == '3D_anisotropic') then
- TRANSVERSE_ISOTROPY = .true.
- ISOTROPIC_3D_MANTLE = .false.
- ANISOTROPIC_3D_MANTLE = .true.
- ANISOTROPIC_INNER_CORE = .false.
- CRUSTAL = .false.
- ATTENUATION_3D = .false.
- ONE_CRUST = .true.
- CASE_3D = .true.
-
- else
- stop 'model not implemented, edit read_compute_parameters.f90 and recompile'
- endif
+ ! initialize the rest, too, for cleanliness
+ TRANSVERSE_ISOTROPY = .false.
+ ISOTROPIC_3D_MANTLE = .false.
+ ANISOTROPIC_3D_MANTLE = .false.
+ ANISOTROPIC_INNER_CORE = .false.
+ CRUSTAL = .false.
+ ATTENUATION_3D = .false.
+
+ call get_model_properties(HONOR_1D_SPHERICAL_MOHO,ONE_CRUST, &
+ TRANSVERSE_ISOTROPY, &
+ ISOTROPIC_3D_MANTLE,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
+ CRUSTAL,CASE_3D, &
+ ATTENUATION_3D)
+
+ if (ISOTROPIC_3D_MANTLE .and. ANISOTROPIC_3D_MANTLE) &
+ stop 'ISOTROPIC_3D_MANTLE and ANISOTROPIC_3D_MANTLE cannot both be true'
! set time step, radial distribution of elements, and attenuation period range
! right distribution is determined based upon maximum value of NEX
diff --git a/specfem3D.f90 b/specfem3D.f90
index 6ca00f4..633e77b 100644
--- a/specfem3D.f90
+++ b/specfem3D.f90
@@ -724,7 +724,7 @@
ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
- character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
+ character(len=150) OUTPUT_FILES,LOCAL_PATH
! parameters deduced from parameters read from file
integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
@@ -838,7 +838,7 @@
MOVIE_VOLUME,MOVIE_VOLUME_COARSE,ATTENUATION_3D,RECEIVERS_CAN_BE_BURIED, &
PRINT_SOURCE_TIME_FUNCTION,SAVE_MESH_FILES, &
ATTENUATION,ABSORBING_CONDITIONS, &
- INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,MODEL,SIMULATION_TYPE,SAVE_FORWARD, &
+ INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,LOCAL_PATH,SIMULATION_TYPE,SAVE_FORWARD, &
NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA, &
NSPEC_computed, &
NSPEC2D_XI, &
@@ -899,7 +899,6 @@
call MPI_BCAST(bcast_logical,33,MPI_LOGICAL,0,MPI_COMM_WORLD,ier)
call MPI_BCAST(LOCAL_PATH,150,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
- call MPI_BCAST(MODEL,150,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
call MPI_BCAST(ner,MAX_NUMBER_OF_MESH_LAYERS,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
call MPI_BCAST(ratio_sampling_array,MAX_NUMBER_OF_MESH_LAYERS,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
More information about the CIG-COMMITS
mailing list