[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