[cig-commits] r13294 - in seismo/3D/SPECFEM3D_GLOBE/branches/pluggable: . DATA MODELS/3D_mantle MODELS/3D_mantle/Montagner MODELS/3D_mantle/blank MODELS/3D_mantle/s20rts MODELS/3D_mantle/s29ea MODELS/3D_mantle/s362ani MODELS/3D_mantle/s362ani/common MODELS/3D_mantle/s362ani_prem MODELS/3D_mantle/s362wmani

leif at geodynamics.org leif at geodynamics.org
Tue Nov 11 17:07:41 PST 2008


Author: leif
Date: 2008-11-11 17:07:41 -0800 (Tue, 11 Nov 2008)
New Revision: 13294

Added:
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/build.mk
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/my_mantle_model.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/add_topography_410_650.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90
Removed:
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/add_topography_410_650.f90
Modified:
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/DATA/Par_file
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/anisotropic_mantle_model.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/build.mk
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/build.mk
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/mantle_model.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/s362ani_common.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_1D.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_2D.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_corners_chunks.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_faces_chunks.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/combine_AVS_DX.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/constants.h.in
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_AVS_DX.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_GMT_global.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/meshfem3D.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/read_compute_parameters.f90
   seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/specfem3D.f90
Log:
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.


Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/DATA/Par_file	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/DATA/Par_file	2008-11-12 01:07:41 UTC (rev 13294)
@@ -22,17 +22,6 @@
 NPROC_XI                        = 6
 NPROC_ETA                       = 6
 
-# 1D models with real structure:
-# 1D_isotropic_prem, 1D_transversely_isotropic_prem, 1D_iasp91, 1D_1066a, 1D_ak135, 1D_ref, 1D_ref_iso
-#
-# 1D models with only one fictitious averaged crustal layer:
-# 1D_isotropic_prem_onecrust, 1D_transversely_isotropic_prem_onecrust, 1D_iasp91_onecrust, 1D_1066a_onecrust, 1D_ak135_onecrust
-#
-# fully 3D models:
-# transversely_isotropic_prem_plus_3D_crust_2.0, 3D_anisotropic, 3D_attenuation,
-# s20rts, s362ani, s362iso, s362wmani, s362ani_prem, s29ea
-MODEL                           = 1D_isotropic_prem
-
 # parameters describing the Earth model
 OCEANS                          = .false.
 ELLIPTICITY                     = .false.

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/anisotropic_mantle_model.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/anisotropic_mantle_model.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/anisotropic_mantle_model.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -58,6 +58,33 @@
 
 !--------------------------------------------------------------------
 
+  subroutine 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)
+
+  implicit none
+
+  logical HONOR_1D_SPHERICAL_MOHO,ONE_CRUST,&
+       TRANSVERSE_ISOTROPY,&
+       ISOTROPIC_3D_MANTLE,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE,&
+       CRUSTAL,CASE_3D,&
+       ATTENUATION_3D
+
+  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.
+
+  end subroutine get_model_properties
+
+!--------------------------------------------------------------------
+
   subroutine read_3d_mantle_model(myrank)
 
   use aniso_mantle_model_module

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/build.mk
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/build.mk	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/Montagner/build.mk	2008-11-12 01:07:41 UTC (rev 13294)
@@ -1,4 +1,6 @@
 
+include $S/MODELS/1D_ref/prem/build.mk
+
 mantle_model_OBJECTS = \
 	$O/anisotropic_mantle_model.o \
 	$(EMPTY_MACRO)

Added: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/build.mk
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/build.mk	                        (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/build.mk	2008-11-12 01:07:41 UTC (rev 13294)
@@ -0,0 +1,14 @@
+
+# Select an existing 1D reference model here.
+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
+#include $S/MODELS/1D_ref/ref/build.mk
+
+mantle_model_OBJECTS = \
+	$O/my_mantle_model.o \
+	$(EMPTY_MACRO)
+
+$O/my_mantle_model.o: constants.h $S/MODELS/3D_mantle/blank/my_mantle_model.f90
+	${MPIFCCOMPILE_CHECK} -c -o $O/my_mantle_model.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/blank/my_mantle_model.f90

Added: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/my_mantle_model.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/my_mantle_model.f90	                        (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/blank/my_mantle_model.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -0,0 +1,151 @@
+!=====================================================================
+!
+!          S p e c f e m 3 D  G l o b e  V e r s i o n  4 . 0
+!          --------------------------------------------------
+!
+!          Main authors: Dimitri Komatitsch and Jeroen Tromp
+!    Seismological Laboratory, California Institute of Technology, USA
+!             and University of Pau / CNRS / INRIA, France
+! (c) California Institute of Technology and University of Pau / CNRS / INRIA
+!                            February 2008
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along
+! with this program; if not, write to the Free Software Foundation, Inc.,
+! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+!
+!=====================================================================
+
+
+subroutine 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)
+
+  implicit none
+
+  logical HONOR_1D_SPHERICAL_MOHO,ONE_CRUST,&
+       TRANSVERSE_ISOTROPY,&
+       ISOTROPIC_3D_MANTLE,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE,&
+       CRUSTAL,CASE_3D,&
+       ATTENUATION_3D
+
+  ! Define model properties here.
+
+  ! HONOR_1D_SPHERICAL_MOHO: honor PREM Moho or not: doing so drastically reduces
+  ! the stability condition and therefore the time step, resulting in expensive
+  ! calculations. If not, honor a fictitious Moho at the depth of 40 km
+  ! in order to have even radial sampling from the d220 to the Earth surface.
+  HONOR_1D_SPHERICAL_MOHO = .false.
+
+  ! ONE_CRUST: in order to increase stability and therefore to allow cheaper
+  ! simulations (larger time step), 1D models can be run with just one average crustal
+  ! layer instead of two.
+  ONE_CRUST = .false.
+
+  ! TRANSVERSE_ISOTROPY
+  TRANSVERSE_ISOTROPY = .false.
+
+  ! ISOTROPIC_3D_MANTLE and ANISOTROPIC_3D_MANTLE: Set exactly one of
+  ! these two flags for 3D models.  If you set ISOTROPIC_3D_MANTLE,
+  ! the subroutine 'iso_mantle_model' will be called; if you set
+  ! ANISOTROPIC_3D_MANTLE instead, the subroutine 'aniso_mantle_model'
+  ! will be called.
+  ISOTROPIC_3D_MANTLE = .false.
+  ANISOTROPIC_3D_MANTLE = .false.
+
+  ! ANISOTROPIC_INNER_CORE
+  ANISOTROPIC_INNER_CORE = .false.
+
+  ! CRUSTAL
+  CRUSTAL = .false.
+
+  ! CASE_3D: this flag allows the stretching of the elements in the crustal
+  ! layers in the case of 3D models. The purpose of this stretching is to squeeze more
+  ! GLL points per km in the upper part of the crust than in the lower part.
+  CASE_3D = .false.
+
+  ! ATTENUATION_3D
+  ATTENUATION_3D = .false.
+
+end subroutine get_model_properties
+
+
+subroutine read_3d_mantle_model(myrank)
+
+  implicit none
+
+  integer myrank
+
+  ! Insert code to read data files here.
+
+end subroutine read_3d_mantle_model
+
+
+subroutine iso_mantle_model(radius,theta,phi, &
+     vpv,vph,vsv,vsh,rho,eta_aniso)
+
+  implicit none
+
+  double precision radius,theta,phi
+  double precision vpv,vph,vsv,vsh,rho,eta_aniso
+  double precision dvp,dvs,drho
+
+  ! Define 3D isotropic models here.
+
+end subroutine iso_mantle_model
+
+
+subroutine aniso_mantle_model(r,theta,phi,rho, &
+     c11,c12,c13,c14,c15,c16,c22,c23,c24,c25,c26,c33,c34,c35,c36,c44,c45,c46,c55,c56,c66)
+
+  implicit none
+
+  double precision r,theta,phi
+  double precision rho
+  double precision c11,c12,c13,c14,c15,c16,c22,c23,c24,c25,c26, &
+       c33,c34,c35,c36,c44,c45,c46,c55,c56,c66
+
+  ! Define 3D anisotropic models here.
+
+end subroutine aniso_mantle_model
+
+
+subroutine add_moho_topography(myrank,xelm,yelm,zelm,RMOHO,R220)
+
+  implicit none
+
+  include "constants.h"
+
+  integer myrank
+  double precision xelm(NGNOD)
+  double precision yelm(NGNOD)
+  double precision zelm(NGNOD)
+  double precision RMOHO,R220
+
+end subroutine add_moho_topography
+
+
+subroutine add_topography_410_650(myrank,xelm,yelm,zelm,R220,R400,R670,R771)
+
+  implicit none
+
+  include "constants.h"
+
+  integer myrank
+  double precision xelm(NGNOD)
+  double precision yelm(NGNOD)
+  double precision zelm(NGNOD)
+  double precision R220,R400,R670,R771
+
+end subroutine add_topography_410_650

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/build.mk
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/build.mk	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/build.mk	2008-11-12 01:07:41 UTC (rev 13294)
@@ -1,4 +1,6 @@
 
+include $S/MODELS/1D_ref/prem/build.mk
+
 mantle_model_OBJECTS = \
 	$O/mantle_model.o \
 	$(EMPTY_MACRO)

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/mantle_model.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/mantle_model.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s20rts/mantle_model.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -48,6 +48,33 @@
 
 !---------------------------
 
+  subroutine 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)
+
+  implicit none
+
+  logical HONOR_1D_SPHERICAL_MOHO,ONE_CRUST,&
+       TRANSVERSE_ISOTROPY,&
+       ISOTROPIC_3D_MANTLE,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE,&
+       CRUSTAL,CASE_3D,&
+       ATTENUATION_3D
+
+  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.
+
+  end subroutine get_model_properties
+
+!---------------------------
+
   subroutine read_3d_mantle_model(myrank)
 
   use mantle_model_module


Property changes on: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea
___________________________________________________________________
Name: svn:externals
   + common http://geodynamics.org/svn/cig/seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common


Deleted: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/add_topography_410_650.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/add_topography_410_650.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/add_topography_410_650.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -1,95 +0,0 @@
-!=====================================================================
-!
-!          S p e c f e m 3 D  G l o b e  V e r s i o n  4 . 0
-!          --------------------------------------------------
-!
-!          Main authors: Dimitri Komatitsch and Jeroen Tromp
-!    Seismological Laboratory, California Institute of Technology, USA
-!             and University of Pau / CNRS / INRIA, France
-! (c) California Institute of Technology and University of Pau / CNRS / INRIA
-!                            February 2008
-!
-! This program is free software; you can redistribute it and/or modify
-! it under the terms of the GNU General Public License as published by
-! the Free Software Foundation; either version 2 of the License, or
-! (at your option) any later version.
-!
-! This program is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-! GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along
-! with this program; if not, write to the Free Software Foundation, Inc.,
-! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-!
-!=====================================================================
-
-  subroutine add_topography_410_650(myrank,xelm,yelm,zelm,R220,R400,R670,R771)
-
-  implicit none
-
-  include "constants.h"
-
-  integer myrank
-
-  double precision xelm(NGNOD)
-  double precision yelm(NGNOD)
-  double precision zelm(NGNOD)
-
-  double precision R220,R400,R670,R771
-
-  integer ia
-
-  real(kind=4) xcolat,xlon
-  real(kind=4) topo410out,topo650out
-  double precision topo410,topo650
-
-  double precision r,theta,phi
-  double precision gamma
-
-! we loop on all the points of the element
-  do ia = 1,NGNOD
-
-! convert to r theta phi
-    call xyz_2_rthetaphi_dble(xelm(ia),yelm(ia),zelm(ia),r,theta,phi)
-    call reduce(theta,phi)
-
-! get colatitude and longitude in degrees
-    xcolat = sngl(theta*180.0d0/PI)
-    xlon = sngl(phi*180.0d0/PI)
-
-! compute topography on 410 and 650 at current point
-    call subtopo(xcolat,xlon,topo410out,topo650out)
-
-! non-dimensionalize the topography, which is in km
-! positive for a depression, so change the sign for a perturbation in radius
-    topo410 = -dble(topo410out) / R_EARTH_KM
-    topo650 = -dble(topo650out) / R_EARTH_KM
-
-    gamma = 0.d0
-    if(r >= R400/R_EARTH .and. r <= R220/R_EARTH) then
-! stretching between R220 and R400
-      gamma = (R220/R_EARTH - r) / (R220/R_EARTH - R400/R_EARTH)
-      xelm(ia) = xelm(ia)*(ONE + gamma * topo410 / r)
-      yelm(ia) = yelm(ia)*(ONE + gamma * topo410 / r)
-      zelm(ia) = zelm(ia)*(ONE + gamma * topo410 / r)
-    elseif(r>= R771/R_EARTH .and. r <= R670/R_EARTH) then
-! stretching between R771 and R670
-      gamma = (r - R771/R_EARTH) / (R670/R_EARTH - R771/R_EARTH)
-      xelm(ia) = xelm(ia)*(ONE + gamma * topo650 / r)
-      yelm(ia) = yelm(ia)*(ONE + gamma * topo650 / r)
-      zelm(ia) = zelm(ia)*(ONE + gamma * topo650 / r)
-    elseif(r > R670/R_EARTH .and. r < R400/R_EARTH) then
-! stretching between R670 and R400
-      gamma = (R400/R_EARTH - r) / (R400/R_EARTH - R670/R_EARTH)
-      xelm(ia) = xelm(ia)*(ONE + (topo410 + gamma * (topo650 - topo410)) / r)
-      yelm(ia) = yelm(ia)*(ONE + (topo410 + gamma * (topo650 - topo410)) / r)
-      zelm(ia) = zelm(ia)*(ONE + (topo410 + gamma * (topo650 - topo410)) / r)
-    endif
-    if(gamma < -0.0001 .or. gamma > 1.0001) call exit_MPI(myrank,'incorrect value of gamma for 410-650 topography')
-
-  enddo
-
-  end subroutine add_topography_410_650
-

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk	2008-11-12 01:07:41 UTC (rev 13294)
@@ -1,11 +1,18 @@
 
+#include $S/MODELS/1D_ref/prem/build.mk
+include $S/MODELS/1D_ref/ref/build.mk
+
 mantle_model_OBJECTS = \
 	$O/add_topography_410_650.o \
 	$O/s362ani_common.o \
+	$O/s362ani.o \
 	$(EMPTY_MACRO)
 
-$O/add_topography_410_650.o: constants.h $S/MODELS/3D_mantle/s362ani/add_topography_410_650.f90
-	${FCCOMPILE_CHECK} -c -o $O/add_topography_410_650.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362ani/add_topography_410_650.f90
+$O/add_topography_410_650.o: constants.h $S/MODELS/3D_mantle/s362ani/common/add_topography_410_650.f90
+	${FCCOMPILE_CHECK} -c -o $O/add_topography_410_650.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362ani/common/add_topography_410_650.f90
 
 $O/s362ani_common.o: constants.h $S/MODELS/3D_mantle/s362ani/common/s362ani_common.f90
 	${MPIFCCOMPILE_CHECK} -c -o $O/s362ani_common.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362ani/common/s362ani_common.f90
+
+$O/s362ani.o: constants.h $S/MODELS/3D_mantle/s362ani/s362ani.f90
+	${FCCOMPILE_CHECK} -c -o $O/s362ani.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362ani/s362ani.f90

Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/add_topography_410_650.f90 (from rev 13286, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/add_topography_410_650.f90)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/add_topography_410_650.f90	                        (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/add_topography_410_650.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -0,0 +1,95 @@
+!=====================================================================
+!
+!          S p e c f e m 3 D  G l o b e  V e r s i o n  4 . 0
+!          --------------------------------------------------
+!
+!          Main authors: Dimitri Komatitsch and Jeroen Tromp
+!    Seismological Laboratory, California Institute of Technology, USA
+!             and University of Pau / CNRS / INRIA, France
+! (c) California Institute of Technology and University of Pau / CNRS / INRIA
+!                            February 2008
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along
+! with this program; if not, write to the Free Software Foundation, Inc.,
+! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+!
+!=====================================================================
+
+  subroutine add_topography_410_650(myrank,xelm,yelm,zelm,R220,R400,R670,R771)
+
+  implicit none
+
+  include "constants.h"
+
+  integer myrank
+
+  double precision xelm(NGNOD)
+  double precision yelm(NGNOD)
+  double precision zelm(NGNOD)
+
+  double precision R220,R400,R670,R771
+
+  integer ia
+
+  real(kind=4) xcolat,xlon
+  real(kind=4) topo410out,topo650out
+  double precision topo410,topo650
+
+  double precision r,theta,phi
+  double precision gamma
+
+! we loop on all the points of the element
+  do ia = 1,NGNOD
+
+! convert to r theta phi
+    call xyz_2_rthetaphi_dble(xelm(ia),yelm(ia),zelm(ia),r,theta,phi)
+    call reduce(theta,phi)
+
+! get colatitude and longitude in degrees
+    xcolat = sngl(theta*180.0d0/PI)
+    xlon = sngl(phi*180.0d0/PI)
+
+! compute topography on 410 and 650 at current point
+    call subtopo(xcolat,xlon,topo410out,topo650out)
+
+! non-dimensionalize the topography, which is in km
+! positive for a depression, so change the sign for a perturbation in radius
+    topo410 = -dble(topo410out) / R_EARTH_KM
+    topo650 = -dble(topo650out) / R_EARTH_KM
+
+    gamma = 0.d0
+    if(r >= R400/R_EARTH .and. r <= R220/R_EARTH) then
+! stretching between R220 and R400
+      gamma = (R220/R_EARTH - r) / (R220/R_EARTH - R400/R_EARTH)
+      xelm(ia) = xelm(ia)*(ONE + gamma * topo410 / r)
+      yelm(ia) = yelm(ia)*(ONE + gamma * topo410 / r)
+      zelm(ia) = zelm(ia)*(ONE + gamma * topo410 / r)
+    elseif(r>= R771/R_EARTH .and. r <= R670/R_EARTH) then
+! stretching between R771 and R670
+      gamma = (r - R771/R_EARTH) / (R670/R_EARTH - R771/R_EARTH)
+      xelm(ia) = xelm(ia)*(ONE + gamma * topo650 / r)
+      yelm(ia) = yelm(ia)*(ONE + gamma * topo650 / r)
+      zelm(ia) = zelm(ia)*(ONE + gamma * topo650 / r)
+    elseif(r > R670/R_EARTH .and. r < R400/R_EARTH) then
+! stretching between R670 and R400
+      gamma = (R400/R_EARTH - r) / (R400/R_EARTH - R670/R_EARTH)
+      xelm(ia) = xelm(ia)*(ONE + (topo410 + gamma * (topo650 - topo410)) / r)
+      yelm(ia) = yelm(ia)*(ONE + (topo410 + gamma * (topo650 - topo410)) / r)
+      zelm(ia) = zelm(ia)*(ONE + (topo410 + gamma * (topo650 - topo410)) / r)
+    endif
+    if(gamma < -0.0001 .or. gamma > 1.0001) call exit_MPI(myrank,'incorrect value of gamma for 410-650 topography')
+
+  enddo
+
+  end subroutine add_topography_410_650
+

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/s362ani_common.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/s362ani_common.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common/s362ani_common.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -879,7 +879,7 @@
   end subroutine rd3dmodl
 
 
-  subroutine read_3d_mantle_model(myrank)
+  subroutine read_s362ani_mantle_model(myrank,modeldef)
 
   use s362ani_module
   implicit none
@@ -887,10 +887,11 @@
   include "constants.h"
 
   integer myrank,ier
+  character(len=*) modeldef
 
   call read_smooth_moho
 
-  if(myrank == 0) call read_model_s362ani()
+  if(myrank == 0) call read_model_s362ani(modeldef)
   call MPI_BCAST(numker,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(numhpa,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(ihpa,1,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
@@ -912,40 +913,24 @@
   call MPI_BCAST(refmdl,80,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
   call MPI_BCAST(varstr,40*maxker,MPI_CHARACTER,0,MPI_COMM_WORLD,ier)
 
-  end subroutine read_3d_mantle_model
+  end subroutine read_s362ani_mantle_model
 
 
-  subroutine read_model_s362ani()
+  subroutine read_model_s362ani(modeldef)
 
   use s362ani_module
   implicit none
 
-  integer THREE_D_MODEL,THREE_D_MODEL_S362ANI
-  integer THREE_D_MODEL_S362WMANI
-  integer THREE_D_MODEL_S362ANI_PREM,THREE_D_MODEL_S29EA
+  character(len=*) modeldef
 
   integer lu
-  character(len=128) modeldef
   logical exists
   integer numvar
   integer ierror
 
 ! -------------------------------------
 
-  THREE_D_MODEL = THREE_D_MODEL_S362ANI ! XXX
-
   lu=1                    ! --- log unit: input 3-D model
-  if(THREE_D_MODEL  ==  THREE_D_MODEL_S362ANI) then
-    modeldef='DATA/s362ani/S362ANI'
-  elseif(THREE_D_MODEL  ==  THREE_D_MODEL_S362WMANI) then
-    modeldef='DATA/s362ani/S362WMANI'
-  elseif(THREE_D_MODEL  ==  THREE_D_MODEL_S362ANI_PREM) then
-    modeldef='DATA/s362ani/S362ANI_PREM'
-  elseif(THREE_D_MODEL  ==  THREE_D_MODEL_S29EA) then
-    modeldef='DATA/s362ani/S2.9EA'
-  else
-    stop 'unknown 3D model in read_model_s362ani'
-  endif
   inquire(file=modeldef,exist=exists)
   if(exists) then
     call gt3dmodl(lu,modeldef, &
@@ -1026,53 +1011,6 @@
   end subroutine splcon
 
 
-  subroutine iso_mantle_model(radius,theta,phi, &
-    vpv,vph,vsv,vsh,rho,eta_aniso)
-
-    implicit none
-    include "constants.h"
-
-    double precision radius,theta,phi
-    double precision vpv,vph,vsv,vsh,rho,eta_aniso
-    double precision vp,vs
-
-    real(kind=4) xcolat,xlon,xrad,dvpv,dvph,dvsv,dvsh
-
-    ! XXX: This is only false for s362iso.
-    logical TRANSVERSE_ISOTROPY
-    TRANSVERSE_ISOTROPY = .true. ! XXX
-
-    ! 3D Harvard models s362ani, s362wmani, s362ani_prem and s2.9ea
-    dvpv = 0.
-    dvph = 0.
-    dvsv = 0.
-    dvsh = 0.
-    xcolat = sngl(theta*180.0d0/PI)
-    xlon = sngl(phi*180.0d0/PI)
-    xrad = sngl(radius*R_EARTH_KM)
-    call subshsv(xcolat,xlon,xrad,dvsh,dvsv,dvph,dvpv)
-    if(TRANSVERSE_ISOTROPY) then
-       vpv=vpv*(1.0d0+dble(dvpv))
-       vph=vph*(1.0d0+dble(dvph))
-       vsv=vsv*(1.0d0+dble(dvsv))
-       vsh=vsh*(1.0d0+dble(dvsh))
-    else
-       vpv=vpv+dvpv
-       vph=vph+dvph
-       vsv=vsv+dvsv
-       vsh=vsh+dvsh
-       vp = sqrt(((8.d0+4.d0*eta_aniso)*vph*vph + 3.d0*vpv*vpv + (8.d0 - 8.d0*eta_aniso)*vsv*vsv)/15.d0)
-       vs = sqrt(((1.d0-2.d0*eta_aniso)*vph*vph + vpv*vpv + 5.d0*vsh*vsh + (6.d0+4.d0*eta_aniso)*vsv*vsv)/15.d0)
-       vpv=vp
-       vph=vp
-       vsv=vs
-       vsh=vs
-       eta_aniso=1.0d0
-    endif
-
-  end subroutine iso_mantle_model
-
-
   subroutine aniso_mantle_model(r,theta,phi,rho, &
        c11,c12,c13,c14,c15,c16,c22,c23,c24,c25,c26,c33,c34,c35,c36,c44,c45,c46,c55,c56,c66)
     

Added: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90	                        (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -0,0 +1,168 @@
+!=====================================================================
+!
+!          S p e c f e m 3 D  G l o b e  V e r s i o n  4 . 0
+!          --------------------------------------------------
+!
+!          Main authors: Dimitri Komatitsch and Jeroen Tromp
+!    Seismological Laboratory, California Institute of Technology, USA
+!             and University of Pau / CNRS / INRIA, France
+! (c) California Institute of Technology and University of Pau / CNRS / INRIA
+!                            February 2008
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License along
+! with this program; if not, write to the Free Software Foundation, Inc.,
+! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+!
+!=====================================================================
+
+
+subroutine 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)
+
+  implicit none
+
+  logical HONOR_1D_SPHERICAL_MOHO,ONE_CRUST,&
+       TRANSVERSE_ISOTROPY,&
+       ISOTROPIC_3D_MANTLE,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE,&
+       CRUSTAL,CASE_3D,&
+       ATTENUATION_3D
+
+  character(len=150) MODEL ! XXX
+
+  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
+
+  endif
+
+end subroutine get_model_properties
+
+
+subroutine read_3d_mantle_model(myrank)
+
+  implicit none
+
+  integer myrank
+
+  call read_s362ani_mantle_model(myrank,'S362ANI')
+  !call read_s362ani_mantle_model(myrank,'S362WMANI')
+  !call read_s362ani_mantle_model(myrank,'S362ANI_PREM')
+  !call read_s362ani_mantle_model(myrank,'S2.9EA')
+
+end subroutine read_3d_mantle_model
+
+
+subroutine iso_mantle_model(radius,theta,phi, &
+     vpv,vph,vsv,vsh,rho,eta_aniso)
+
+  implicit none
+  include "constants.h"
+
+  double precision radius,theta,phi
+  double precision vpv,vph,vsv,vsh,rho,eta_aniso
+  double precision vp,vs
+
+  real(kind=4) xcolat,xlon,xrad,dvpv,dvph,dvsv,dvsh
+
+  ! XXX: This is only false for s362iso.
+  logical TRANSVERSE_ISOTROPY
+  TRANSVERSE_ISOTROPY = .true. ! XXX
+
+  ! 3D Harvard models s362ani, s362wmani, s362ani_prem and s2.9ea
+  dvpv = 0.
+  dvph = 0.
+  dvsv = 0.
+  dvsh = 0.
+  xcolat = sngl(theta*180.0d0/PI)
+  xlon = sngl(phi*180.0d0/PI)
+  xrad = sngl(radius*R_EARTH_KM)
+  call subshsv(xcolat,xlon,xrad,dvsh,dvsv,dvph,dvpv)
+  if(TRANSVERSE_ISOTROPY) then
+     vpv=vpv*(1.0d0+dble(dvpv))
+     vph=vph*(1.0d0+dble(dvph))
+     vsv=vsv*(1.0d0+dble(dvsv))
+     vsh=vsh*(1.0d0+dble(dvsh))
+  else
+     vpv=vpv+dvpv
+     vph=vph+dvph
+     vsv=vsv+dvsv
+     vsh=vsh+dvsh
+     vp = sqrt(((8.d0+4.d0*eta_aniso)*vph*vph + 3.d0*vpv*vpv + (8.d0 - 8.d0*eta_aniso)*vsv*vsv)/15.d0)
+     vs = sqrt(((1.d0-2.d0*eta_aniso)*vph*vph + vpv*vpv + 5.d0*vsh*vsh + (6.d0+4.d0*eta_aniso)*vsv*vsv)/15.d0)
+     vpv=vp
+     vph=vp
+     vsv=vs
+     vsh=vs
+     eta_aniso=1.0d0
+  endif
+
+end subroutine iso_mantle_model


Property changes on: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem
___________________________________________________________________
Name: svn:externals
   + common http://geodynamics.org/svn/cig/seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common



Property changes on: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani
___________________________________________________________________
Name: svn:externals
   + common http://geodynamics.org/svn/cig/seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common


Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in	2008-11-12 01:07:41 UTC (rev 13294)
@@ -188,7 +188,8 @@
 #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

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_1D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_1D.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_1D.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_2D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_2D.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_2D.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_corners_chunks.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_corners_chunks.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_corners_chunks.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_faces_chunks.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_faces_chunks.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/check_buffers_faces_chunks.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/combine_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/combine_AVS_DX.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/combine_AVS_DX.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/constants.h.in
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/constants.h.in	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/constants.h.in	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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
 

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_header_file.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_header_file.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_AVS_DX.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_AVS_DX.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_AVS_DX.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_GMT_global.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_GMT_global.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/create_movie_GMT_global.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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, &

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/meshfem3D.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/meshfem3D.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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)

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/read_compute_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/read_compute_parameters.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/read_compute_parameters.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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,12 +194,7 @@
   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
 ! calculations. If not, honor a fictitious Moho at the depth of 40 km
@@ -216,210 +211,23 @@
   ONE_CRUST = .false.
   CASE_3D = .false.
 
-! default is no 3D model
-  THREE_D_MODEL = 0
+  ! 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.
 
-  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.
+  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)
 
-  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.
+  if (ISOTROPIC_3D_MANTLE .and. ANISOTROPIC_3D_MANTLE) &
+       stop 'ISOTROPIC_3D_MANTLE and ANISOTROPIC_3D_MANTLE cannot both be 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
-
 ! set time step, radial distribution of elements, and attenuation period range
 ! right distribution is determined based upon maximum value of NEX
   NEX_MAX = max(NEX_XI,NEX_ETA)

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/specfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/specfem3D.f90	2008-11-11 23:37:37 UTC (rev 13293)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/specfem3D.f90	2008-11-12 01:07:41 UTC (rev 13294)
@@ -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