[cig-commits] [commit] devel: Fix allocation of regular kernel arrays. (32686e3)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Apr 30 16:39:52 PDT 2014


Repository : ssh://geoshell/specfem3d_globe

On branch  : devel
Link       : https://github.com/geodynamics/specfem3d_globe/compare/811ae11b80604736d2845c4e5a062755069fc9a6...fedf291c8257de6ffc3151362afcb814578beb7e

>---------------------------------------------------------------

commit 32686e351459db13af0fd6dba8ab3fc856755f87
Author: Elliott Sales de Andrade <esalesde at physics.utoronto.ca>
Date:   Fri Aug 23 16:25:28 2013 -0400

    Fix allocation of regular kernel arrays.
    
    Depending on certain flags, some of these arrays were not allocated at
    the necessary time.


>---------------------------------------------------------------

32686e351459db13af0fd6dba8ab3fc856755f87
 src/specfem3D/save_regular_kernels.f90 | 85 ++++++++++++++++------------------
 1 file changed, 39 insertions(+), 46 deletions(-)

diff --git a/src/specfem3D/save_regular_kernels.f90 b/src/specfem3D/save_regular_kernels.f90
index 0ebe45b..5387db1 100644
--- a/src/specfem3D/save_regular_kernels.f90
+++ b/src/specfem3D/save_regular_kernels.f90
@@ -72,65 +72,59 @@
   scale_kl_rho = scale_t / scale_displ / RHOAV * 1.d9
 
   ! allocates temporary arrays
-  allocate(cijkl_kl_crust_mantle_reg(21,npoints_slice), &
-           rho_kl_crust_mantle_reg(npoints_slice), &
+  allocate(rho_kl_crust_mantle_reg(npoints_slice), &
            beta_kl_crust_mantle_reg(npoints_slice), &
            alpha_kl_crust_mantle_reg(npoints_slice))
 
-  if( SAVE_TRANSVERSE_KL_ONLY ) then
-    ! transverse isotropic kernel arrays for file output
-    allocate(alphav_kl_crust_mantle(npoints_slice), &
-             alphah_kl_crust_mantle(npoints_slice), &
-             betav_kl_crust_mantle(npoints_slice), &
-             betah_kl_crust_mantle(npoints_slice), &
-             eta_kl_crust_mantle(npoints_slice))
-
-    ! isotropic kernel arrays for file output
-    allocate(bulk_c_kl_crust_mantle(npoints_slice), &
-             bulk_betav_kl_crust_mantle(npoints_slice), &
-             bulk_betah_kl_crust_mantle(npoints_slice), &
-             bulk_beta_kl_crust_mantle(npoints_slice))
-  endif
-
-  if( .not. ANISOTROPIC_KL ) then
+  if (ANISOTROPIC_KL) then
+    allocate(cijkl_kl_crust_mantle_reg(21, npoints_slice))
+    if (SAVE_TRANSVERSE_KL_ONLY) then
+      ! transverse isotropic kernel arrays for file output
+      allocate(alphav_kl_crust_mantle(npoints_slice), &
+               alphah_kl_crust_mantle(npoints_slice), &
+               betav_kl_crust_mantle(npoints_slice), &
+               betah_kl_crust_mantle(npoints_slice), &
+               eta_kl_crust_mantle(npoints_slice))
+
+      ! isotropic kernel arrays for file output
+      allocate(bulk_c_kl_crust_mantle(npoints_slice), &
+               bulk_betav_kl_crust_mantle(npoints_slice), &
+               bulk_betah_kl_crust_mantle(npoints_slice), &
+               bulk_beta_kl_crust_mantle(npoints_slice))
+    endif
+  else
     ! allocates temporary isotropic kernel arrays for file output
     allocate(bulk_c_kl_crust_mantle(npoints_slice), &
              bulk_beta_kl_crust_mantle(npoints_slice))
-
-    allocate(kappa_kl_crust_mantle(npoints_slice), &
-             mu_kl_crust_mantle(npoints_slice), &
+    allocate(mu_kl_crust_mantle(npoints_slice), &
+             kappa_kl_crust_mantle(npoints_slice), &
              rhonotprime_kl_crust_mantle(npoints_slice))
   endif
 
   ! crust_mantle
   do ipoint = 1, npoints_slice
     ispec = ispec_reg(ipoint)
+    rho_kl_crust_mantle_reg(ipoint) = 0.0
+    alpha_kl_crust_mantle_reg(ipoint) = 0.0
+    beta_kl_crust_mantle_reg(ipoint) = 0.0
     if (ANISOTROPIC_KL) then
-      if ( SAVE_TRANSVERSE_KL_ONLY ) then
+      cijkl_kl_crust_mantle_reg(:,ipoint) = 0.0
+      if (SAVE_TRANSVERSE_KL_ONLY) then
         alphav_kl_crust_mantle(ipoint) = 0.0
         alphah_kl_crust_mantle(ipoint) = 0.0
         betav_kl_crust_mantle(ipoint) = 0.0
         betah_kl_crust_mantle(ipoint) = 0.0
         eta_kl_crust_mantle(ipoint) = 0.0
-        rho_kl_crust_mantle_reg(ipoint) = 0.0
         bulk_c_kl_crust_mantle(ipoint) = 0.0
         bulk_betav_kl_crust_mantle(ipoint) = 0.0
         bulk_betah_kl_crust_mantle(ipoint) = 0.0
-        alpha_kl_crust_mantle_reg(ipoint) = 0.0
-        beta_kl_crust_mantle_reg(ipoint) = 0.0
         bulk_beta_kl_crust_mantle(ipoint) = 0.0
-      else
-        rho_kl_crust_mantle_reg(ipoint) = 0.0
-        cijkl_kl_crust_mantle_reg(:,ipoint) = 0.0
       endif
     else
       rhonotprime_kl_crust_mantle(ipoint) = 0.0
       kappa_kl_crust_mantle(ipoint) = 0.0
       mu_kl_crust_mantle(ipoint) = 0.0
 
-      rho_kl_crust_mantle_reg(ipoint) = 0.0
-      alpha_kl_crust_mantle_reg(ipoint) = 0.0
-      beta_kl_crust_mantle_reg(ipoint) = 0.0
       bulk_c_kl_crust_mantle(ipoint) = 0.0
       bulk_beta_kl_crust_mantle(ipoint) = 0.0
     endif
@@ -497,24 +491,23 @@
   endif ! ADIOS_FOR_KERNELS
 
   ! cleans up temporary kernel arrays
-  if (SAVE_TRANSVERSE_KL_ONLY) then
-    deallocate(alphav_kl_crust_mantle,alphah_kl_crust_mantle, &
-               betav_kl_crust_mantle,betah_kl_crust_mantle, &
-               eta_kl_crust_mantle)
-    deallocate(bulk_c_kl_crust_mantle,bulk_betah_kl_crust_mantle, &
-               bulk_betav_kl_crust_mantle,bulk_beta_kl_crust_mantle)
-  endif
-
-  if (.not. ANISOTROPIC_KL) then
-    deallocate(bulk_c_kl_crust_mantle,bulk_beta_kl_crust_mantle)
-    deallocate(kappa_kl_crust_mantle,mu_kl_crust_mantle,rhonotprime_kl_crust_mantle)
+  if (ANISOTROPIC_KL) then
+    deallocate(cijkl_kl_crust_mantle_reg)
+    if (SAVE_TRANSVERSE_KL_ONLY) then
+      deallocate(alphav_kl_crust_mantle,alphah_kl_crust_mantle, &
+                 betav_kl_crust_mantle,betah_kl_crust_mantle, &
+                 eta_kl_crust_mantle)
+      deallocate(bulk_c_kl_crust_mantle,bulk_betah_kl_crust_mantle, &
+                 bulk_betav_kl_crust_mantle,bulk_beta_kl_crust_mantle)
+    endif
+  else
+    deallocate(bulk_c_kl_crust_mantle,bulk_beta_kl_crust_mantle, &
+               mu_kl_crust_mantle,kappa_kl_crust_mantle, &
+               rhonotprime_kl_crust_mantle)
   endif
-
-  deallocate(cijkl_kl_crust_mantle_reg, &
-             rho_kl_crust_mantle_reg, &
+  deallocate(rho_kl_crust_mantle_reg, &
              beta_kl_crust_mantle_reg, &
              alpha_kl_crust_mantle_reg)
 
   end subroutine save_regular_kernels_crust_mantle
 
-



More information about the CIG-COMMITS mailing list