[cig-commits] [commit] QA: Fix compile with ADIOS enabled. (076c717)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Mon Jan 20 07:11:44 PST 2014


Repository : ssh://geoshell/specfem3d

On branch  : QA
Link       : https://github.com/geodynamics/specfem3d/compare/4359ed56c14ef8f87387f46c8b705a1d395a40ba...8e7fca259d3e520c105549cfacfb92b6c83f8971

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

commit 076c717bb3785e6ae3680e8bed29e2b52dbf85db
Author: Elliott Sales de Andrade <esalesde at physics.utoronto.ca>
Date:   Sat Jan 18 01:42:58 2014 -0500

    Fix compile with ADIOS enabled.
    
    Three issues:
    * Some string constants were split without the join operator (//) between
      them.
    * The error "Procedure 'read_model_vp_rho_adios' at (1) with assumed-shape
      dummy argument 'rho_read' must have an explicit interface".
    * Some incorrect sizing of an array, followed by accessing unallocated
      indices, could cause a crash.


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

076c717bb3785e6ae3680e8bed29e2b52dbf85db
 src/generate_databases/Makefile.in                 |  4 +++-
 .../generate_databases_adios_stubs.f90             | 28 +++++++++++++++++++---
 src/generate_databases/get_model.f90               |  2 ++
 src/generate_databases/model_ipati_adios.F90       |  4 ++++
 src/specfem3D/read_mesh_databases_adios.F90        |  4 ++--
 src/specfem3D/save_forward_arrays_adios.F90        |  2 +-
 6 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/src/generate_databases/Makefile.in b/src/generate_databases/Makefile.in
index 3d495a8..7118469 100644
--- a/src/generate_databases/Makefile.in
+++ b/src/generate_databases/Makefile.in
@@ -221,7 +221,6 @@ $O/fault_generate_databases.o: $O/generate_databases_par.o
 $O/finalize_databases.o: $O/generate_databases_par.o
 $O/get_absorbing_boundary.o: $O/generate_databases_par.o
 $O/get_coupling_surfaces.o: $O/generate_databases_par.o
-$O/get_model.o: $O/generate_databases_par.o
 $O/get_MPI.o: $O/generate_databases_par.o
 $O/memory_eval.o: $O/generate_databases_par.o
 $O/model_1d_cascadia.o: $O/generate_databases_par.o
@@ -249,6 +248,9 @@ $O/generate_databases.o: $O/generate_databases_par.o $(ADIOS_PREOBJECTS)
 $O/save_arrays_solver_adios.adios.o: $O/generate_databases_par.o $(ADIOS_PREOBJECTS)
 $O/save_moho_adios.adios.o: $O/generate_databases_par.o $(ADIOS_PREOBJECTS)
 
+ at COND_ADIOS_TRUE@$O/get_model.o: $O/generate_databases_par.o $O/model_ipati_adios.adios.o
+ at COND_ADIOS_FALSE@$O/get_model.o: $O/generate_databases_par.o $O/generate_databases_adios_stubs.noadios.o
+
 $O/generate_databases_adios_stubs.noadios.o: $(ADIOS_PRESTUBS)
 
 $O/adios_helpers.shared_adios.o: \
diff --git a/src/generate_databases/generate_databases_adios_stubs.f90 b/src/generate_databases/generate_databases_adios_stubs.f90
index dea77dc..5d23ef5 100644
--- a/src/generate_databases/generate_databases_adios_stubs.f90
+++ b/src/generate_databases/generate_databases_adios_stubs.f90
@@ -22,24 +22,46 @@ end subroutine
 ! Subroutines from model_ipati_adios.F90 |
 !----------------------------------------'
 
-subroutine model_ipati_adios()
+module model_ipati_adios_mod
+contains
+
+subroutine model_ipati_adios(myrank,nspec,LOCAL_PATH)
   use adios_manager_mod
 
+  implicit none
+
+  integer, intent(in) :: myrank,nspec
+  character(len=256), intent(in) :: LOCAL_PATH
+
   call no_adios_err()
 end subroutine model_ipati_adios
 
-subroutine model_ipati_water_adios()
+subroutine model_ipati_water_adios(myrank,nspec,LOCAL_PATH)
   use adios_manager_mod
 
+  implicit none
+
+  integer, intent(in) :: myrank,nspec
+  character(len=256), intent(in) :: LOCAL_PATH
+
   call no_adios_err()
 end subroutine model_ipati_water_adios
 
-subroutine read_model_vp_rho_adios()
+subroutine read_model_vp_rho_adios(myrank, nspec, LOCAL_PATH, &
+                                   rho_read, vp_read)
   use adios_manager_mod
 
+  implicit none
+
+  integer, intent(in) :: myrank,nspec
+  character(len=256), intent(in) :: LOCAL_PATH
+  real, dimension(:,:,:,:), intent(inout) :: vp_read,rho_read
+
   call no_adios_err()
 end subroutine read_model_vp_rho_adios
 
+end module model_ipati_adios_mod
+
 !-------------------------------------------------.
 ! Subroutines from read_partition_files_adios.F90 |
 !-------------------------------------------------'
diff --git a/src/generate_databases/get_model.f90 b/src/generate_databases/get_model.f90
index dbace63..1bfac06 100644
--- a/src/generate_databases/get_model.f90
+++ b/src/generate_databases/get_model.f90
@@ -480,6 +480,8 @@
 
   use create_regions_mesh_ext_par
 
+  use model_ipati_adios_mod
+
   implicit none
 
   ! number of spectral elements in each block
diff --git a/src/generate_databases/model_ipati_adios.F90 b/src/generate_databases/model_ipati_adios.F90
index 95fa162..01030d0 100644
--- a/src/generate_databases/model_ipati_adios.F90
+++ b/src/generate_databases/model_ipati_adios.F90
@@ -25,6 +25,8 @@
 !=====================================================================
 
 
+module model_ipati_adios_mod
+contains
 !-----------------------------------------------------------------------------
 !
 ! IPATI
@@ -211,3 +213,5 @@ subroutine read_model_vp_rho_adios (myrank, nspec, LOCAL_PATH, &
   call adios_read_close(handle,ier)
   call adios_read_finalize_method(ADIOS_READ_METHOD_BP, ier)
 end subroutine read_model_vp_rho_adios
+
+end module model_ipati_adios_mod
diff --git a/src/specfem3D/read_mesh_databases_adios.F90 b/src/specfem3D/read_mesh_databases_adios.F90
index 4cbeef5..85d1051 100644
--- a/src/specfem3D/read_mesh_databases_adios.F90
+++ b/src/specfem3D/read_mesh_databases_adios.F90
@@ -926,8 +926,8 @@ subroutine read_mesh_databases_adios()
   endif
 
   if( POROELASTIC_SIMULATION ) then
-    if( num_phase_ispec_poroelastic < 0 ) stop 'error poroelastic simulation:'&
-                                       'num_phase_ispec_poroelastic is < zero'
+    if( num_phase_ispec_poroelastic < 0 ) &
+      stop 'error poroelastic simulation:num_phase_ispec_poroelastic is < zero'
     allocate( phase_ispec_inner_poroelastic(num_phase_ispec_poroelastic,2), &
               stat=ier)
     if( ier /= 0 ) stop 'error allocating array phase_ispec_inner_poroelastic'
diff --git a/src/specfem3D/save_forward_arrays_adios.F90 b/src/specfem3D/save_forward_arrays_adios.F90
index 69290e0..6c4d16c 100644
--- a/src/specfem3D/save_forward_arrays_adios.F90
+++ b/src/specfem3D/save_forward_arrays_adios.F90
@@ -66,7 +66,7 @@ subroutine save_forward_arrays_adios()
   !--- Variables to allreduce - wmax stands for world_max
   integer :: nglob_wmax, nspec_wmax, NSPEC_ATTENUATION_wmax, &
              NSPEC_STRAIN_wmax, NSPEC_ATTENUATION_kappa_wmax, N_SLS_wmax
-  integer, parameter :: num_vars = 2
+  integer, parameter :: num_vars = 5
   integer, dimension(num_vars) :: max_global_values
 
   integer :: ier



More information about the CIG-COMMITS mailing list