[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