[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