[cig-commits] r12607 - in seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta: DATA src

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Mon Aug 11 16:27:28 PDT 2008


Author: dkomati1
Date: 2008-08-11 16:27:28 -0700 (Mon, 11 Aug 2008)
New Revision: 12607

Modified:
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/Par_file
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/attenuation_model.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_regions_mesh.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/read_compute_parameters.f90
Log:
fixed the implementation of attenuation in the merged code; it now works fine.


Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/Par_file
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/Par_file	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/Par_file	2008-08-11 23:27:28 UTC (rev 12607)
@@ -39,7 +39,7 @@
 TOPOGRAPHY                      = .true.
 GRAVITY                         = .false.
 ROTATION                        = .false.
-ATTENUATION                     = .false.
+ATTENUATION                     = .true.
 
 # absorbing boundary conditions for a regional simulation
 ABSORBING_CONDITIONS            = .false.

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/attenuation_model.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/attenuation_model.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/attenuation_model.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -288,7 +288,7 @@
   integer myrank
   integer, save :: first_time_called = 1
 
-  stop 'DK DK should do this in MPI instead of writing to a local file'
+  print *,'DK DK we should do this in MPI instead of writing to a local file'
 
   call MPI_COMM_RANK(MPI_COMM_WORLD, myrank, ier)
   if(myrank == 0 .AND. iregion_code == IREGION_CRUST_MANTLE .AND. first_time_called == 1) then
@@ -655,7 +655,7 @@
 
   integer, save :: first_time_called = 1
 
-  stop 'DK DK should do this in MPI instead of writing to a file'
+  print *,'DK DK we should do this in MPI instead of writing to a local file'
 
   if(myrank == 0 .AND. iregion_code == IREGION_CRUST_MANTLE .AND. first_time_called == 1) then
      first_time_called = 0
@@ -952,7 +952,7 @@
   ! All of the following reads use the output parameters as their temporary arrays
   ! use the filename to determine the actual contents of the read
 
-  stop 'DK DK should do this in MPI instead of writing to a disk file'
+  print *,'DK DK we should do this in MPI instead of writing to a local file'
 
   open(unit=27, file='OUTPUT_FILES/attenuation3D.bin',status='old',action='read',form='unformatted')
   read(27) tau_s

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -20,5 +20,5 @@
   npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
   npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
   npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core,rmass_ocean_load, &
-  normal_top_crust_mantle,ibelm_top_crust_mantle)
+  normal_top_crust_mantle,ibelm_top_crust_mantle,AM_V)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -20,5 +20,5 @@
   npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
   npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
   npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core,rmass_ocean_load, &
-  normal_top_crust_mantle,ibelm_top_crust_mantle)
+  normal_top_crust_mantle,ibelm_top_crust_mantle,AM_V)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -2,11 +2,6 @@
 !! DK DK created this for merged version
 
   call specfem3D( &
-!! DK DK to do later, for attenuation only; not done yet by lack of time
-  omsb_crust_mantle_dble,factor_scale_crust_mantle_dble, omsb_inner_core_dble,factor_scale_inner_core_dble, &
-  one_minus_sum_beta_crust_mantle,factor_scale_crust_mantle, one_minus_sum_beta_inner_core,factor_scale_inner_core, &
-  factor_common_crust_mantle,factor_common_inner_core,factor_common_crust_mantle_dble, factor_common_inner_core_dble, &
-!! DK DK already computed
   myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES,npoin2D_max_all, &
   NDIM_smaller_buffers,nrec,NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle,ibool_outer_core,ibool_inner_core, &
   idoubling_crust_mantle,idoubling_inner_core,ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
@@ -25,5 +20,5 @@
   npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
   npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
   npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core,rmass_ocean_load, &
-  normal_top_crust_mantle,ibelm_top_crust_mantle)
+  normal_top_crust_mantle,ibelm_top_crust_mantle,AM_V)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -2,11 +2,6 @@
 !! DK DK created this for merged version
 
   subroutine specfem3D( &
-!! DK DK to do later, for attenuation only; not done yet by lack of time
-  omsb_crust_mantle_dble,factor_scale_crust_mantle_dble, omsb_inner_core_dble,factor_scale_inner_core_dble, &
-  one_minus_sum_beta_crust_mantle,factor_scale_crust_mantle, one_minus_sum_beta_inner_core,factor_scale_inner_core, &
-  factor_common_crust_mantle,factor_common_inner_core,factor_common_crust_mantle_dble, factor_common_inner_core_dble, &
-!! DK DK already computed
   myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES,npoin2D_max_all, &
   NDIM_smaller_buffers,nrec,NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle,ibool_outer_core,ibool_inner_core, &
   idoubling_crust_mantle,idoubling_inner_core,ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
@@ -25,5 +20,5 @@
   npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
   npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
   npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core,rmass_ocean_load, &
-  normal_top_crust_mantle,ibelm_top_crust_mantle)
+  normal_top_crust_mantle,ibelm_top_crust_mantle,AM_V)
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_regions_mesh.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_regions_mesh.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_regions_mesh.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -1426,6 +1426,11 @@
 
   endif
 
+!! DK DK save Brian's attenuation files to a shared disk
+!! DK DK obviously we should do this with MPI or with subroutine arguments
+!! DK DK shared by the mesher and the solver subroutines at some point
+  call attenuation_save_arrays(iregion_code, AM_V)
+
 ! compute volume, bottom and top area of that part of the slice
   volume_local = ZERO
   area_local_bottom = ZERO

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -1,11 +1,5 @@
 
-!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
-!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
-!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
-!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
-!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
-!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
-!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
+!! DK DK for merged version, all the arrays below are allocated statically instead
 
   integer npoin2D_faces_crust_mantle(NUMFACES_SHARED)
   integer npoin2D_faces_outer_core(NUMFACES_SHARED)
@@ -33,11 +27,7 @@
 
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,NSPEC_INNER_CORE) :: kappavstore_inner_core,muvstore_inner_core
 
-!! DK DK added this for the merged version
-!! DK DK these arrays are useless in the solver and will therefore be allocated with a dummy size of 1
-
 ! 2-D jacobians and normals
-
   integer, dimension(NSPEC2D_BOTTOM_CM) :: ibelm_bottom_crust_mantle
 
   integer, dimension(NSPEC2D_BOTTOM_OC) :: ibelm_bottom_outer_core
@@ -79,29 +69,12 @@
   integer, dimension(NGLOB2DMAX_XMIN_XMAX_IC) :: iboolleft_xi_inner_core,iboolright_xi_inner_core
   integer, dimension(NGLOB2DMAX_YMIN_YMAX_IC) :: iboolleft_eta_inner_core,iboolright_eta_inner_core
 
-  double precision, dimension(ATT1,ATT2,ATT3,ATT4) :: omsb_crust_mantle_dble, factor_scale_crust_mantle_dble
-
-  double precision, dimension(ATT1,ATT2,ATT3,ATT5) :: omsb_inner_core_dble, factor_scale_inner_core_dble
-
-  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT4) :: one_minus_sum_beta_crust_mantle, factor_scale_crust_mantle
-
-  real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT5) :: one_minus_sum_beta_inner_core, factor_scale_inner_core
-
-  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT4) :: factor_common_crust_mantle
-
-  real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT5) :: factor_common_inner_core
-
-  double precision, dimension(N_SLS,ATT1,ATT2,ATT3,ATT4) :: factor_common_crust_mantle_dble
-
-  double precision, dimension(N_SLS,ATT1,ATT2,ATT3,ATT5) :: factor_common_inner_core_dble
-
   integer :: npoin2D_max_all,NDIM_smaller_buffers
 
 ! receiver information
   integer :: nrec,ios
   character(len=150) :: STATIONS,rec_filename,dummystring
 
-!! DK DK added this for the merged version
 !---- arrays to assemble between chunks
 
 ! communication pattern for faces between chunks
@@ -110,3 +83,25 @@
 ! communication pattern for corners between chunks
   integer, dimension(NCORNERSCHUNKS_VAL) :: iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners
 
+! attenuation_model_variables
+  type attenuation_model_variables
+    sequence
+    double precision min_period, max_period
+    double precision                          :: QT_c_source        ! Source Frequency
+    double precision, dimension(N_SLS)        :: Qtau_s             ! tau_sigma
+    double precision, dimension(:), pointer   :: QrDisc             ! Discontinutitues Defined
+    double precision, dimension(:), pointer   :: Qr                 ! Radius
+    integer, dimension(:), pointer            :: Qs                 ! Steps
+    double precision, dimension(:), pointer   :: Qmu                ! Shear Attenuation
+    double precision, dimension(:,:), pointer :: Qtau_e             ! tau_epsilon
+    double precision, dimension(:), pointer   :: Qomsb, Qomsb2      ! one_minus_sum_beta
+    double precision, dimension(:,:), pointer :: Qfc, Qfc2          ! factor_common
+    double precision, dimension(:), pointer   :: Qsf, Qsf2          ! scale_factor
+    integer, dimension(:), pointer            :: Qrmin              ! Max and Mins of idoubling
+    integer, dimension(:), pointer            :: Qrmax              ! Max and Mins of idoubling
+    integer                                   :: Qn                 ! Number of points
+  end type attenuation_model_variables
+
+  type (attenuation_model_variables) AM_V
+! attenuation_model_variables
+

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/read_compute_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/read_compute_parameters.f90	2008-08-11 22:00:11 UTC (rev 12606)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/read_compute_parameters.f90	2008-08-11 23:27:28 UTC (rev 12607)
@@ -797,6 +797,8 @@
 
   if(ROTATION) stop 'ROTATION not implemented in the reduced merged version yet because useless at high frequency'
 
+  if(ABSORBING_CONDITIONS) stop 'ABSORBING_CONDITIONS not implemented in the reduced merged version yet'
+
 ! radii in PREM or IASP91
 ! and normalized density at fluid-solid interface on fluid size for coupling
 ! ROCEAN: radius of the ocean (m)



More information about the cig-commits mailing list