[cig-commits] r22610 - seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Sun Jul 14 16:16:30 PDT 2013


Author: dkomati1
Date: 2013-07-14 16:16:30 -0700 (Sun, 14 Jul 2013)
New Revision: 22610

Modified:
   seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
Log:
remove useless array copies in specfem3D.F90


Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90	2013-07-14 16:21:07 UTC (rev 22609)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90	2013-07-14 23:16:30 UTC (rev 22610)
@@ -395,8 +395,7 @@
   real(kind=CUSTOM_REAL), dimension(5,N_SLS,NGLLX,NGLLY,NGLLZ,NSPEC_CRUST_MANTLE_ATTENUAT) :: R_memory_crust_mantle
   real(kind=CUSTOM_REAL), dimension(:,:,:,:,:), allocatable :: epsilondev_crust_mantle
   real(kind=CUSTOM_REAL), dimension(:,:,:,:), allocatable :: eps_trace_over_3_crust_mantle
-  real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc
-  real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ) :: eps_trace_over_3_loc
+
   real(kind=CUSTOM_REAL), dimension(5,NGLLX,NGLLY,NGLLZ) :: epsilondev_loc_crust_mantle
   real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NGLLZ) :: eps_trace_over_3_loc_crust_mantle
 
@@ -2601,19 +2600,15 @@
         if(COMPUTE_AND_STORE_STRAIN_VAL) then
           if(.not. USE_DEVILLE_PRODUCTS_VAL) &
              call exit_MPI(myrank,'COMPUTE_AND_STORE_STRAIN_VAL is not implemented without USE_DEVILLE_PRODUCTS_VAL')
+! after reading the restart files of displacement back from disk, recompute the strain from displacement;
+! this is better than storing the strain to disk as well, which would drastically increase I/O volume
           do ispec = 1, NSPEC_INNER_CORE
             call compute_element_strain_att_Dev(ispec,NGLOB_INNER_CORE,NSPEC_INNER_CORE,b_displ_inner_core,&
                                             b_veloc_inner_core,0._CUSTOM_REAL,ibool_inner_core,hprime_xx,hprime_xxT,&
                                             xix_inner_core,xiy_inner_core,xiz_inner_core,&
                                             etax_inner_core,etay_inner_core,etaz_inner_core,&
                                             gammax_inner_core,gammay_inner_core,gammaz_inner_core,&
-                                            epsilondev_loc,eps_trace_over_3_loc)
-            eps_trace_over_3_inner_core(:,:,:,ispec) = eps_trace_over_3_loc(:,:,:)
-            epsilondev_inner_core(1,:,:,:,ispec) = epsilondev_loc(1,:,:,:)
-            epsilondev_inner_core(2,:,:,:,ispec) = epsilondev_loc(2,:,:,:)
-            epsilondev_inner_core(3,:,:,:,ispec) = epsilondev_loc(3,:,:,:)
-            epsilondev_inner_core(4,:,:,:,ispec) = epsilondev_loc(4,:,:,:)
-            epsilondev_inner_core(5,:,:,:,ispec) = epsilondev_loc(5,:,:,:)
+                                            epsilondev_inner_core(1,1,1,1,ispec),eps_trace_over_3_inner_core(1,1,1,ispec))
           enddo
 
           do ispec = 1, NSPEC_crust_mantle
@@ -2622,13 +2617,7 @@
                                             xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
                                             etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
                                             gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,&
-                                            epsilondev_loc,eps_trace_over_3_loc)
-            eps_trace_over_3_crust_mantle(:,:,:,ispec) = eps_trace_over_3_loc(:,:,:)
-            epsilondev_crust_mantle(1,:,:,:,ispec) = epsilondev_loc(1,:,:,:)
-            epsilondev_crust_mantle(2,:,:,:,ispec) = epsilondev_loc(2,:,:,:)
-            epsilondev_crust_mantle(3,:,:,:,ispec) = epsilondev_loc(3,:,:,:)
-            epsilondev_crust_mantle(4,:,:,:,ispec) = epsilondev_loc(4,:,:,:)
-            epsilondev_crust_mantle(5,:,:,:,ispec) = epsilondev_loc(5,:,:,:)
+                                            epsilondev_crust_mantle(1,1,1,1,ispec),eps_trace_over_3_crust_mantle(1,1,1,ispec))
           enddo
         endif
 
@@ -2651,19 +2640,15 @@
       if(COMPUTE_AND_STORE_STRAIN_VAL) then
         if(.not. USE_DEVILLE_PRODUCTS_VAL) &
            call exit_MPI(myrank,'COMPUTE_AND_STORE_STRAIN_VAL is not implemented without USE_DEVILLE_PRODUCTS_VAL')
+! after reading the restart files of displacement back from disk, recompute the strain from displacement;
+! this is better than storing the strain to disk as well, which would drastically increase I/O volume
         do ispec = 1, NSPEC_INNER_CORE
           call compute_element_strain_att_Dev(ispec,NGLOB_INNER_CORE,NSPEC_INNER_CORE,displ_inner_core,&
                                             veloc_inner_core,0._CUSTOM_REAL,ibool_inner_core,hprime_xx,hprime_xxT,&
                                             xix_inner_core,xiy_inner_core,xiz_inner_core,&
                                             etax_inner_core,etay_inner_core,etaz_inner_core,&
                                             gammax_inner_core,gammay_inner_core,gammaz_inner_core,&
-                                            epsilondev_loc,eps_trace_over_3_loc)
-          eps_trace_over_3_inner_core(:,:,:,ispec) = eps_trace_over_3_loc(:,:,:)
-          epsilondev_inner_core(1,:,:,:,ispec) = epsilondev_loc(1,:,:,:)
-          epsilondev_inner_core(2,:,:,:,ispec) = epsilondev_loc(2,:,:,:)
-          epsilondev_inner_core(3,:,:,:,ispec) = epsilondev_loc(3,:,:,:)
-          epsilondev_inner_core(4,:,:,:,ispec) = epsilondev_loc(4,:,:,:)
-          epsilondev_inner_core(5,:,:,:,ispec) = epsilondev_loc(5,:,:,:)
+                                            epsilondev_inner_core(1,1,1,1,ispec),eps_trace_over_3_inner_core(1,1,1,ispec))
         enddo
 
         do ispec = 1, NSPEC_crust_mantle
@@ -2672,13 +2657,7 @@
                                           xix_crust_mantle,xiy_crust_mantle,xiz_crust_mantle,&
                                           etax_crust_mantle,etay_crust_mantle,etaz_crust_mantle,&
                                           gammax_crust_mantle,gammay_crust_mantle,gammaz_crust_mantle,&
-                                          epsilondev_loc,eps_trace_over_3_loc)
-          eps_trace_over_3_crust_mantle(:,:,:,ispec) = eps_trace_over_3_loc(:,:,:)
-          epsilondev_crust_mantle(1,:,:,:,ispec) = epsilondev_loc(1,:,:,:)
-          epsilondev_crust_mantle(2,:,:,:,ispec) = epsilondev_loc(2,:,:,:)
-          epsilondev_crust_mantle(3,:,:,:,ispec) = epsilondev_loc(3,:,:,:)
-          epsilondev_crust_mantle(4,:,:,:,ispec) = epsilondev_loc(4,:,:,:)
-          epsilondev_crust_mantle(5,:,:,:,ispec) = epsilondev_loc(5,:,:,:)
+                                          epsilondev_crust_mantle(1,1,1,1,ispec),eps_trace_over_3_crust_mantle(1,1,1,ispec))
         enddo
       endif
 



More information about the CIG-COMMITS mailing list