[cig-commits] r19885 - in seismo/3D/SPECFEM3D_GLOBE/trunk/src: create_header_file meshfem3D shared

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Tue Mar 27 15:04:57 PDT 2012


Author: dkomati1
Date: 2012-03-27 15:04:57 -0700 (Tue, 27 Mar 2012)
New Revision: 19885

Modified:
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90
Log:
fixed a bug I had introduced in attenuation yesterday: I had forgotten to convert some arrays from double to single precision.
also put display of exact surface back when chunk has a size of 90 degrees x 90 degrees.


Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/create_header_file/create_header_file.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -250,7 +250,13 @@
   print *,'   (but that can be perfectly acceptable if you can afford it and'
   print *,'    want faster results by using more cores)'
   print *
-  print *,'size of static arrays for all slices = ',static_memory_size*dble(NPROCTOT)/1.d9,' GB'
+  if(static_memory_size*dble(NPROCTOT)/1.d6 < 10000.d0) then
+    print *,'size of static arrays for all slices = ',static_memory_size*dble(NPROCTOT)/1.d6,' MB'
+    print *,'                                     = ',static_memory_size*dble(NPROCTOT)/1048576.d0,' MiB'
+    print *,'                                     = ',static_memory_size*dble(NPROCTOT)/1.d9,' GB'
+  else
+    print *,'size of static arrays for all slices = ',static_memory_size*dble(NPROCTOT)/1.d9,' GB'
+  endif
   print *,'                                     = ',static_memory_size*dble(NPROCTOT)/1073741824.d0,' GiB'
   print *,'                                     = ',static_memory_size*dble(NPROCTOT)/1.d12,' TB'
   print *,'                                     = ',static_memory_size*dble(NPROCTOT)/1099511627776.d0,' TiB'

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/compute_element_properties.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -97,8 +97,8 @@
 
 ! attenuation
   integer nspec_att
-  double precision, dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  double precision, dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
   double precision, dimension(N_SLS)                  :: tau_s
   double precision  T_c_source
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_central_cube.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -114,8 +114,8 @@
 
 ! attenuation
   integer nspec_att
-  double precision, dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  double precision, dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
   double precision, dimension(N_SLS)                  :: tau_s
   double precision  T_c_source
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_doubling_elements.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -125,8 +125,8 @@
 
 ! attenuation
   integer nspec_att
-  double precision, dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  double precision, dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
   double precision, dimension(N_SLS)                  :: tau_s
   double precision  T_c_source
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regions_mesh.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -206,8 +206,8 @@
   double precision, dimension(NDIM,NDIM) :: rotation_matrix
 
   ! attenuation
-  double precision, dimension(:,:,:,:),   allocatable :: Qmu_store
-  double precision, dimension(:,:,:,:,:), allocatable :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(:,:,:,:),   allocatable :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(:,:,:,:,:), allocatable :: tau_e_store
   double precision, dimension(N_SLS)                  :: tau_s
   double precision  T_c_source
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/create_regular_elements.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -130,8 +130,8 @@
 
 ! attenuation
   integer nspec_att
-  double precision, dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
-  double precision, dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ,nspec_att) :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS,NGLLX,NGLLY,NGLLZ,nspec_att) :: tau_e_store
   double precision, dimension(N_SLS)                  :: tau_s
   double precision  T_c_source
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/get_model.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -70,8 +70,8 @@
   ! attenuation values
   integer vx,vy,vz,vnspec
   double precision, dimension(N_SLS)                     :: tau_s
-  double precision, dimension(vx, vy, vz, vnspec)        :: Qmu_store
-  double precision, dimension(N_SLS, vx, vy, vz, vnspec) :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec)        :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: tau_e_store
   double precision  T_c_source
 
   logical ABSORBING_CONDITIONS

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -693,7 +693,7 @@
     call meshfem3D_compute_area(myrank,NCHUNKS,iregion_code, &
                               area_local_bottom,area_local_top,&
                               volume_local,volume_total, &
-                              RCMB,RICB,R_CENTRAL_CUBE)
+                              RCMB,RICB,R_CENTRAL_CUBE,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES)
 
     ! create chunk buffers if more than one chunk
     if(NCHUNKS > 1) then
@@ -738,12 +738,13 @@
       ! take the central cube into account
       ! it is counted 6 times because of the fictitious elements
       if(INCLUDE_CENTRAL_CUBE) then
-        write(IMAIN,*) '     exact volume: ', &
+        write(IMAIN,*) '     similar volume: ', &
           dble(NCHUNKS)*((4.0d0/3.0d0)*PI*(R_UNIT_SPHERE**3)+5.*(2.*(R_CENTRAL_CUBE/R_EARTH)/sqrt(3.))**3)/6.d0
       else
-        write(IMAIN,*) '     exact volume: ', &
+        write(IMAIN,*) '     similar volume: ', &
           dble(NCHUNKS)*((4.0d0/3.0d0)*PI*(R_UNIT_SPHERE**3)-(2.*(R_CENTRAL_CUBE/R_EARTH)/sqrt(3.))**3)/6.d0
       endif
+      write(IMAIN,*) '     (but not exact because the central cube is purposely inflated)'
     endif
   endif
 
@@ -1174,7 +1175,7 @@
   subroutine meshfem3D_compute_area(myrank,NCHUNKS,iregion_code, &
                                     area_local_bottom,area_local_top,&
                                     volume_local,volume_total, &
-                                    RCMB,RICB,R_CENTRAL_CUBE)
+                                    RCMB,RICB,R_CENTRAL_CUBE,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES)
 
   use meshfem3D_models_par
 
@@ -1184,7 +1185,7 @@
 
   integer :: myrank,NCHUNKS,iregion_code
 
-  double precision :: area_local_bottom,area_local_top,volume_local
+  double precision :: area_local_bottom,area_local_top,volume_local,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES
   double precision :: volume_total
   double precision :: RCMB,RICB,R_CENTRAL_CUBE
 
@@ -1229,14 +1230,16 @@
     write(IMAIN,*) 'calculated bottom area: ',area_total_bottom
 
     ! compare to exact theoretical value
-    if(NCHUNKS == 6 .and. .not. TOPOGRAPHY) then
+    if((NCHUNKS == 6 .or. (abs(ANGULAR_WIDTH_XI_IN_DEGREES - 90.d0) < TINYVAL .and. &
+                           abs(ANGULAR_WIDTH_ETA_IN_DEGREES - 90.d0) < TINYVAL)) .and. .not. TOPOGRAPHY) then
       select case(iregion_code)
         case(IREGION_CRUST_MANTLE)
           write(IMAIN,*) '            exact area: ',dble(NCHUNKS)*(4.0d0/6.0d0)*PI*(RCMB/R_EARTH)**2
         case(IREGION_OUTER_CORE)
           write(IMAIN,*) '            exact area: ',dble(NCHUNKS)*(4.0d0/6.0d0)*PI*(RICB/R_EARTH)**2
         case(IREGION_INNER_CORE)
-          write(IMAIN,*) '            similar area (central cube): ',dble(NCHUNKS)*(2.*(R_CENTRAL_CUBE / R_EARTH)/sqrt(3.))**2
+          write(IMAIN,*) '            similar (but not exact) area (central cube): ', &
+                                                    dble(NCHUNKS)*(2.*(R_CENTRAL_CUBE / R_EARTH)/sqrt(3.))**2
         case default
           call exit_MPI(myrank,'incorrect region code')
       end select
@@ -1244,7 +1247,5 @@
 
   endif
 
-
   end subroutine meshfem3D_compute_area
 
-

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/save_arrays_solver.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -50,26 +50,6 @@
 
   include "constants.h"
 
-! model_attenuation_variables
-!  type model_attenuation_variables
-!    sequence
-!    double precision min_period, max_period
-!    double precision                          :: QT_c_source        ! Source Frequency
-!    double precision, dimension(:), pointer   :: Qtau_s             ! tau_sigma
-!    double precision, dimension(:), pointer   :: QrDisc             ! Discontinutitues Defined
-!    double precision, dimension(:), pointer   :: Qr                 ! Radius
-!    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, dimension(:), pointer            :: interval_Q                 ! Steps
-!    integer                                   :: Qn                 ! Number of points
-!    integer dummy_pad ! padding 4 bytes to align the structure
-!  end type model_attenuation_variables
-
   logical ATTENUATION
 
   character(len=150) prname
@@ -150,8 +130,8 @@
   integer vx, vy, vz, vnspec
   double precision  T_c_source
   double precision, dimension(N_SLS)                     :: tau_s
-  double precision, dimension(vx, vy, vz, vnspec)        :: Qmu_store
-  double precision, dimension(N_SLS, vx, vy, vz, vnspec) :: tau_e_store
+  real(kind=CUSTOM_REAL), dimension(vx, vy, vz, vnspec)        :: Qmu_store
+  real(kind=CUSTOM_REAL), dimension(N_SLS, vx, vy, vz, vnspec) :: tau_e_store
 
   logical ABSORBING_CONDITIONS,SAVE_MESH_FILES
 

Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90	2012-03-27 21:00:53 UTC (rev 19884)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.f90	2012-03-27 22:04:57 UTC (rev 19885)
@@ -281,7 +281,13 @@
   write(IOUT,*) '! (but that can be perfectly acceptable if you can afford it and'
   write(IOUT,*) '!  want faster results by using more cores)'
   write(IOUT,*) '!'
-  write(IOUT,*) '! size of static arrays for all slices = ',static_memory_size*dble(NPROCTOT)/1.d9,' GB'
+  if(static_memory_size*dble(NPROCTOT)/1.d6 < 10000.d0) then
+    write(IOUT,*) '! size of static arrays for all slices = ',static_memory_size*dble(NPROCTOT)/1.d6,' MB'
+    write(IOUT,*) '!                                      = ',static_memory_size*dble(NPROCTOT)/1048576.d0,' MiB'
+    write(IOUT,*) '!                                      = ',static_memory_size*dble(NPROCTOT)/1.d9,' GB'
+  else
+    write(IOUT,*) '! size of static arrays for all slices = ',static_memory_size*dble(NPROCTOT)/1.d9,' GB'
+  endif
   write(IOUT,*) '!                                      = ',static_memory_size*dble(NPROCTOT)/1073741824.d0,' GiB'
   write(IOUT,*) '!                                      = ',static_memory_size*dble(NPROCTOT)/1.d12,' TB'
   write(IOUT,*) '!                                      = ',static_memory_size*dble(NPROCTOT)/1099511627776.d0,' TiB'



More information about the CIG-COMMITS mailing list