[cig-commits] r13298 - in seismo/3D/SPECFEM3D_GLOBE/branches/pluggable: . MODELS/3D_mantle MODELS/3D_mantle/s29ea MODELS/3D_mantle/s362ani MODELS/3D_mantle/s362ani_prem MODELS/3D_mantle/s362iso MODELS/3D_mantle/s362wmani
leif at geodynamics.org
leif at geodynamics.org
Wed Nov 12 12:38:06 PST 2008
Author: leif
Date: 2008-11-12 12:38:05 -0800 (Wed, 12 Nov 2008)
New Revision: 13298
Added:
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/build.mk
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/s29ea.f90
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/build.mk
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/s362ani_prem.f90
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/build.mk
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/s362iso.f90
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/build.mk
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/s362wmani.f90
Modified:
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90
seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in
Log:
Cloned & specialized s362ani.f90 to create s29ea.f90,
s362ani_prem.f90, s362iso.f90, and s362wmani.f90. Thanks to the
mirrored 'common' directory, the code duplication here is minimal.
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/build.mk (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/build.mk (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/build.mk 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,17 @@
+
+include $S/MODELS/1D_ref/ref/build.mk
+
+mantle_model_OBJECTS = \
+ $O/add_topography_410_650.o \
+ $O/s362ani_common.o \
+ $O/s29ea.o \
+ $(EMPTY_MACRO)
+
+$O/add_topography_410_650.o: constants.h $S/MODELS/3D_mantle/s29ea/common/add_topography_410_650.f90
+ ${FCCOMPILE_CHECK} -c -o $O/add_topography_410_650.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s29ea/common/add_topography_410_650.f90
+
+$O/s362ani_common.o: constants.h $S/MODELS/3D_mantle/s29ea/common/s362ani_common.f90
+ ${MPIFCCOMPILE_CHECK} -c -o $O/s362ani_common.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s29ea/common/s362ani_common.f90
+
+$O/s29ea.o: constants.h $S/MODELS/3D_mantle/s29ea/s29ea.f90
+ ${FCCOMPILE_CHECK} -c -o $O/s29ea.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s29ea/s29ea.f90
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/s29ea.f90 (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/s29ea.f90 (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s29ea/s29ea.f90 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,91 @@
+!=====================================================================
+!
+! 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
+
+ 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)
+
+ implicit none
+
+ integer myrank
+
+ 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
+
+ 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)
+ vpv=vpv*(1.0d0+dble(dvpv))
+ vph=vph*(1.0d0+dble(dvph))
+ vsv=vsv*(1.0d0+dble(dvsv))
+ vsh=vsh*(1.0d0+dble(dvsh))
+
+end subroutine iso_mantle_model
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-12 18:10:02 UTC (rev 13297)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk 2008-11-12 20:38:05 UTC (rev 13298)
@@ -1,5 +1,4 @@
-#include $S/MODELS/1D_ref/prem/build.mk
include $S/MODELS/1D_ref/ref/build.mk
mantle_model_OBJECTS = \
Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90 2008-11-12 18:10:02 UTC (rev 13297)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90 2008-11-12 20:38:05 UTC (rev 13298)
@@ -40,70 +40,15 @@
CRUSTAL,CASE_3D,&
ATTENUATION_3D
- character(len=150) MODEL ! XXX
+ 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.
- 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
@@ -114,9 +59,6 @@
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
@@ -133,11 +75,6 @@
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.
@@ -146,23 +83,9 @@
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
+ vpv=vpv*(1.0d0+dble(dvpv))
+ vph=vph*(1.0d0+dble(dvph))
+ vsv=vsv*(1.0d0+dble(dvsv))
+ vsh=vsh*(1.0d0+dble(dvsh))
end subroutine iso_mantle_model
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/build.mk (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/build.mk (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/build.mk 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,17 @@
+
+include $S/MODELS/1D_ref/prem/build.mk
+
+mantle_model_OBJECTS = \
+ $O/add_topography_410_650.o \
+ $O/s362ani_common.o \
+ $O/s362ani_prem.o \
+ $(EMPTY_MACRO)
+
+$O/add_topography_410_650.o: constants.h $S/MODELS/3D_mantle/s362ani_prem/common/add_topography_410_650.f90
+ ${FCCOMPILE_CHECK} -c -o $O/add_topography_410_650.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362ani_prem/common/add_topography_410_650.f90
+
+$O/s362ani_common.o: constants.h $S/MODELS/3D_mantle/s362ani_prem/common/s362ani_common.f90
+ ${MPIFCCOMPILE_CHECK} -c -o $O/s362ani_common.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362ani_prem/common/s362ani_common.f90
+
+$O/s362ani_prem.o: constants.h $S/MODELS/3D_mantle/s362ani_prem/s362ani_prem.f90
+ ${FCCOMPILE_CHECK} -c -o $O/s362ani_prem.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362ani_prem/s362ani_prem.f90
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/s362ani_prem.f90 (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/s362ani_prem.f90 (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani_prem/s362ani_prem.f90 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,91 @@
+!=====================================================================
+!
+! 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
+
+ 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)
+
+ implicit none
+
+ integer myrank
+
+ call read_s362ani_mantle_model(myrank,'S362ANI_PREM')
+
+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
+
+ 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)
+ vpv=vpv*(1.0d0+dble(dvpv))
+ vph=vph*(1.0d0+dble(dvph))
+ vsv=vsv*(1.0d0+dble(dvsv))
+ vsh=vsh*(1.0d0+dble(dvsh))
+
+end subroutine iso_mantle_model
Property changes on: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso
___________________________________________________________________
Name: svn:externals
+ common http://geodynamics.org/svn/cig/seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/common
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/build.mk (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/build.mk (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/build.mk 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,17 @@
+
+include $S/MODELS/1D_ref/ref/build.mk
+
+mantle_model_OBJECTS = \
+ $O/add_topography_410_650.o \
+ $O/s362ani_common.o \
+ $O/s362iso.o \
+ $(EMPTY_MACRO)
+
+$O/add_topography_410_650.o: constants.h $S/MODELS/3D_mantle/s362iso/common/add_topography_410_650.f90
+ ${FCCOMPILE_CHECK} -c -o $O/add_topography_410_650.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362iso/common/add_topography_410_650.f90
+
+$O/s362ani_common.o: constants.h $S/MODELS/3D_mantle/s362iso/common/s362ani_common.f90
+ ${MPIFCCOMPILE_CHECK} -c -o $O/s362ani_common.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362iso/common/s362ani_common.f90
+
+$O/s362iso.o: constants.h $S/MODELS/3D_mantle/s362iso/s362iso.f90
+ ${FCCOMPILE_CHECK} -c -o $O/s362iso.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362iso/s362iso.f90
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/s362iso.f90 (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/s362iso.f90 (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362iso/s362iso.f90 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,98 @@
+!=====================================================================
+!
+! 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
+
+ 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.
+
+end subroutine get_model_properties
+
+
+subroutine read_3d_mantle_model(myrank)
+
+ implicit none
+
+ integer myrank
+
+ call read_s362ani_mantle_model(myrank,'S362ANI')
+
+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
+
+ 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)
+ 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
+
+end subroutine iso_mantle_model
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/build.mk (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/build.mk)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/build.mk (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/build.mk 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,17 @@
+
+include $S/MODELS/1D_ref/ref/build.mk
+
+mantle_model_OBJECTS = \
+ $O/add_topography_410_650.o \
+ $O/s362ani_common.o \
+ $O/s362wmani.o \
+ $(EMPTY_MACRO)
+
+$O/add_topography_410_650.o: constants.h $S/MODELS/3D_mantle/s362wmani/common/add_topography_410_650.f90
+ ${FCCOMPILE_CHECK} -c -o $O/add_topography_410_650.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362wmani/common/add_topography_410_650.f90
+
+$O/s362ani_common.o: constants.h $S/MODELS/3D_mantle/s362wmani/common/s362ani_common.f90
+ ${MPIFCCOMPILE_CHECK} -c -o $O/s362ani_common.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362wmani/common/s362ani_common.f90
+
+$O/s362wmani.o: constants.h $S/MODELS/3D_mantle/s362wmani/s362wmani.f90
+ ${FCCOMPILE_CHECK} -c -o $O/s362wmani.o ${FCFLAGS_f90} $S/MODELS/3D_mantle/s362wmani/s362wmani.f90
Copied: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/s362wmani.f90 (from rev 13297, seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362ani/s362ani.f90)
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/s362wmani.f90 (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/MODELS/3D_mantle/s362wmani/s362wmani.f90 2008-11-12 20:38:05 UTC (rev 13298)
@@ -0,0 +1,91 @@
+!=====================================================================
+!
+! 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
+
+ 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)
+
+ implicit none
+
+ integer myrank
+
+ call read_s362ani_mantle_model(myrank,'S362WMANI')
+
+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
+
+ 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)
+ vpv=vpv*(1.0d0+dble(dvpv))
+ vph=vph*(1.0d0+dble(dvph))
+ vsv=vsv*(1.0d0+dble(dvsv))
+ vsh=vsh*(1.0d0+dble(dvsh))
+
+end subroutine iso_mantle_model
Modified: seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in 2008-11-12 18:10:02 UTC (rev 13297)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/pluggable/Makefile.in 2008-11-12 20:38:05 UTC (rev 13298)
@@ -185,6 +185,10 @@
include $S/MODELS/3D_mantle/s20rts/build.mk
#include $S/MODELS/3D_mantle/s362ani/build.mk
+#include $S/MODELS/3D_mantle/s29ea/build.mk
+#include $S/MODELS/3D_mantle/s362ani_prem/build.mk
+#include $S/MODELS/3D_mantle/s362iso/build.mk
+#include $S/MODELS/3D_mantle/s362wmani/build.mk
#include $S/MODELS/3D_mantle/Montagner/build.mk
#include $S/MODELS/3D_mantle/none/build.mk
More information about the CIG-COMMITS
mailing list