[cig-commits] [commit] devel: Reads locally and broadcasts Stacey database (6407410)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Fri Dec 5 07:23:03 PST 2014


Repository : https://github.com/geodynamics/specfem3d_globe

On branch  : devel
Link       : https://github.com/geodynamics/specfem3d_globe/compare/b9fb1aa33196d161098710455fadbb4ed91c5e47...897de40783bd1a4630c2aacd3fa5f8b016d4c189

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

commit 640741015e1966ff793e92c262f98aa0d26e3bc9
Author: Matthieu Lefebvre <ml15 at princeton.edu>
Date:   Tue Dec 2 10:31:11 2014 -0500

    Reads locally and broadcasts Stacey database


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

640741015e1966ff793e92c262f98aa0d26e3bc9
 src/specfem3D/read_mesh_databases.F90 | 112 ++++++++++++++++++++++------------
 1 file changed, 73 insertions(+), 39 deletions(-)

diff --git a/src/specfem3D/read_mesh_databases.F90 b/src/specfem3D/read_mesh_databases.F90
index 22cbdf1..2f3daa4 100644
--- a/src/specfem3D/read_mesh_databases.F90
+++ b/src/specfem3D/read_mesh_databases.F90
@@ -1285,45 +1285,48 @@
   integer :: ier
 
   ! reads in arrays
-  if (ADIOS_FOR_ARRAYS_SOLVER) then
-    call read_mesh_databases_stacey_adios()
-  else
-    ! crust and mantle
-
-    ! create name of database
-    call create_name_database(prname,myrank,IREGION_CRUST_MANTLE,LOCAL_PATH)
-
-    ! read arrays for Stacey conditions
-    open(unit=IIN,file=prname(1:len_trim(prname))//'stacey.bin', &
-          status='old',form='unformatted',action='read',iostat=ier)
-    if (ier /= 0 ) call exit_MPI(myrank,'Error opening stacey.bin file for crust mantle')
-
-    read(IIN) nimin_crust_mantle
-    read(IIN) nimax_crust_mantle
-    read(IIN) njmin_crust_mantle
-    read(IIN) njmax_crust_mantle
-    read(IIN) nkmin_xi_crust_mantle
-    read(IIN) nkmin_eta_crust_mantle
-    close(IIN)
-
-    ! outer core
-
-    ! create name of database
-    call create_name_database(prname,myrank,IREGION_OUTER_CORE,LOCAL_PATH)
-
-    ! read arrays for Stacey conditions
-    open(unit=IIN,file=prname(1:len_trim(prname))//'stacey.bin', &
-          status='old',form='unformatted',action='read',iostat=ier)
-    if (ier /= 0 ) call exit_MPI(myrank,'Error opening stacey.bin file for outer core')
-
-    read(IIN) nimin_outer_core
-    read(IIN) nimax_outer_core
-    read(IIN) njmin_outer_core
-    read(IIN) njmax_outer_core
-    read(IIN) nkmin_xi_outer_core
-    read(IIN) nkmin_eta_outer_core
-    close(IIN)
-  endif ! ADIOS
+  if (I_should_read_the_database) then 
+    if (ADIOS_FOR_ARRAYS_SOLVER) then
+      call read_mesh_databases_stacey_adios()
+    else
+      ! crust and mantle
+
+      ! create name of database
+      call create_name_database(prname,myrank,IREGION_CRUST_MANTLE,LOCAL_PATH)
+
+      ! read arrays for Stacey conditions
+      open(unit=IIN,file=prname(1:len_trim(prname))//'stacey.bin', &
+            status='old',form='unformatted',action='read',iostat=ier)
+      if (ier /= 0 ) call exit_MPI(myrank,'Error opening stacey.bin file for crust mantle')
+
+      read(IIN) nimin_crust_mantle
+      read(IIN) nimax_crust_mantle
+      read(IIN) njmin_crust_mantle
+      read(IIN) njmax_crust_mantle
+      read(IIN) nkmin_xi_crust_mantle
+      read(IIN) nkmin_eta_crust_mantle
+      close(IIN)
+
+      ! outer core
+
+      ! create name of database
+      call create_name_database(prname,myrank,IREGION_OUTER_CORE,LOCAL_PATH)
+
+      ! read arrays for Stacey conditions
+      open(unit=IIN,file=prname(1:len_trim(prname))//'stacey.bin', &
+            status='old',form='unformatted',action='read',iostat=ier)
+      if (ier /= 0 ) call exit_MPI(myrank,'Error opening stacey.bin file for outer core')
+
+      read(IIN) nimin_outer_core
+      read(IIN) nimax_outer_core
+      read(IIN) njmin_outer_core
+      read(IIN) njmax_outer_core
+      read(IIN) nkmin_xi_outer_core
+      read(IIN) nkmin_eta_outer_core
+      close(IIN)
+    endif ! ADIOS
+  endif ! I_should_read_the_database
+  call bcast_mesh_databases_stacey()
 
   end subroutine read_mesh_databases_stacey
 
@@ -1926,3 +1929,34 @@
   endif
 
   end subroutine bcast_mesh_databases_MPI_IC
+
+!
+!-------------------------------------------------------------------------------------------------
+!
+
+  subroutine bcast_mesh_databases_stacey()
+
+  use specfem_par
+  use specfem_par_crustmantle
+  use specfem_par_innercore
+  use specfem_par_outercore
+
+  implicit none
+
+  ! crust and mantle
+  call bcast_all_i_for_database(nimin_crust_mantle(1,1), size(nimin_crust_mantle))
+  call bcast_all_i_for_database(nimax_crust_mantle(1,1), size(nimax_crust_mantle))
+  call bcast_all_i_for_database(njmin_crust_mantle(1,1), size(njmin_crust_mantle))
+  call bcast_all_i_for_database(njmax_crust_mantle(1,1), size(njmax_crust_mantle))
+  call bcast_all_i_for_database(nkmin_xi_crust_mantle(1,1), size(nkmin_xi_crust_mantle))
+  call bcast_all_i_for_database(nkmin_eta_crust_mantle(1,1), size(nkmin_eta_crust_mantle))
+
+  ! outer core
+  call bcast_all_i_for_database(nimin_outer_core(1,1), size(nimin_outer_core))
+  call bcast_all_i_for_database(nimax_outer_core(1,1), size(nimax_outer_core))
+  call bcast_all_i_for_database(njmin_outer_core(1,1), size(njmin_outer_core))
+  call bcast_all_i_for_database(njmax_outer_core(1,1), size(njmax_outer_core))
+  call bcast_all_i_for_database(nkmin_xi_outer_core(1,1), size(nkmin_xi_outer_core))
+  call bcast_all_i_for_database(nkmin_eta_outer_core(1,1), size(nkmin_eta_outer_core))
+
+  end subroutine bcast_mesh_databases_stacey



More information about the CIG-COMMITS mailing list