[cig-commits] r22231 - seismo/3D/SPECFEM3D_GLOBE/branches/SUNFLOWER_ADIOS/src/meshfem3D

lefebvre at geodynamics.org lefebvre at geodynamics.org
Wed Jun 12 07:51:13 PDT 2013


Author: lefebvre
Date: 2013-06-12 07:51:13 -0700 (Wed, 12 Jun 2013)
New Revision: 22231

Modified:
   seismo/3D/SPECFEM3D_GLOBE/branches/SUNFLOWER_ADIOS/src/meshfem3D/save_arrays_solver_adios.F90
Log:
arrays_solver written in a single adios file
modified:   ../meshfem3D/save_arrays_solver_adios.F90

Modified: seismo/3D/SPECFEM3D_GLOBE/branches/SUNFLOWER_ADIOS/src/meshfem3D/save_arrays_solver_adios.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/branches/SUNFLOWER_ADIOS/src/meshfem3D/save_arrays_solver_adios.F90	2013-06-12 12:18:29 UTC (rev 22230)
+++ seismo/3D/SPECFEM3D_GLOBE/branches/SUNFLOWER_ADIOS/src/meshfem3D/save_arrays_solver_adios.F90	2013-06-12 14:51:13 UTC (rev 22231)
@@ -1072,86 +1072,83 @@
   call MPI_Comm_dup (MPI_COMM_WORLD, comm, ierr)
 
   ! isotropic model
-  !---------------------------------------------------------
-  !--- vp arrays -------------------------------------------
-  !---------------------------------------------------------
-  outputname = trim(reg_name) // "vp.bp" 
-  write(group_name,"('SPECFEM3D_GLOBE_VP_reg',i1)") iregion_code
+  outputname = trim(reg_name) // "solver_meshfiles.bp" 
+  write(group_name,"('SPECFEM3D_GLOBE_solver_meshfiles_reg',i1)") iregion_code
+
   group_size_inc = 0
+
   call adios_declare_group(adios_group, group_name, &
       "", 0, adios_err)
   call adios_select_method(adios_group, "MPI", "", "", adios_err)
 
   !--- Define ADIOS variables -----------------------------
+  !--- vp arrays -------------------------------------------
   local_dim = size (kappavstore) 
   call define_adios_global_real_1d_array(adios_group, "vp", &
       local_dim, group_size_inc)
+  !--- vs arrays -------------------------------------------
+  local_dim = size (rhostore) 
+  call define_adios_global_real_1d_array(adios_group, "vs", &
+      local_dim, group_size_inc)
+  !--- rho arrays ------------------------------------------
+  local_dim = size (rhostore) 
+  call define_adios_global_real_1d_array(adios_group, "rho", &
+      local_dim, group_size_inc)
+  ! transverse isotropic model
+  if( TRANSVERSE_ISOTROPY ) then
+    !--- vpv arrays ----------------------------------------
+    local_dim = size (kappavstore) 
+    call define_adios_global_real_1d_array(adios_group, "vpv", &
+        local_dim, group_size_inc)
+    !--- vph arrays ----------------------------------------
+    local_dim = size (kappavstore) 
+    call define_adios_global_real_1d_array(adios_group, "vph", &
+        local_dim, group_size_inc)
+    !--- vsv arrays ----------------------------------------
+    local_dim = size (rhostore) 
+    call define_adios_global_real_1d_array(adios_group, "vsv", &
+        local_dim, group_size_inc)
+    !--- vsh arrays ----------------------------------------
+    local_dim = size (rhostore) 
+    call define_adios_global_real_1d_array(adios_group, "vsh", &
+        local_dim, group_size_inc)
+    !--- eta arrays ----------------------------------------
+    local_dim = size (eta_anisostore) 
+    call define_adios_global_real_1d_array(adios_group, "eta", &
+        local_dim, group_size_inc)
+  endif
+  if( ATTENUATION ) then
+    !--- Qmu arrays ----------------------------------------
+    local_dim = NGLLX * NGLLY * NGLLZ * nspec
+    call define_adios_global_real_1d_array(adios_group, "qmu", &
+        local_dim, group_size_inc)
+  endif
+
   !--- Open an ADIOS handler to the restart file. ---------
   call adios_open (adios_handle, group_name, &
       outputname, "w", comm, adios_err);
   call adios_group_size (adios_handle, group_size_inc, &
                          adios_totalsize, adios_err)
+
   !--- Schedule writes for the previously defined ADIOS variables
+  !--- vp arrays -------------------------------------------
+  local_dim = size (kappavstore) 
   call adios_set_path (adios_handle, "vp", adios_err)
   call write_1D_global_array_adios_dims(adios_handle, myrank, &
       local_dim, sizeprocs)
   call adios_write(adios_handle, "array", &
       sqrt( (kappavstore+4.*muvstore/3.)/rhostore )*scaleval1, &
       adios_err)
-
-  !--- Reset the path to zero and perform the actual write to disk
-  call adios_set_path (adios_handle, "", adios_err)
-  call adios_close(adios_handle, adios_err)
-  !---------------------------------------------------------
   !--- vs arrays -------------------------------------------
-  !---------------------------------------------------------
-  outputname = trim(reg_name) // "vs.bp" 
-  write(group_name,"('SPECFEM3D_GLOBE_VS_reg',i1)") iregion_code
-  group_size_inc = 0
-  call adios_declare_group(adios_group, group_name, &
-      "", 0, adios_err)
-  call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-  !--- Define ADIOS variables -----------------------------
   local_dim = size (rhostore) 
-  call define_adios_global_real_1d_array(adios_group, "vs", &
-      local_dim, group_size_inc)
-  !--- Open an ADIOS handler to the restart file. ---------
-  call adios_open (adios_handle, group_name, &
-      outputname, "w", comm, adios_err);
-  call adios_group_size (adios_handle, group_size_inc, &
-                         adios_totalsize, adios_err)
-  !--- Schedule writes for the previously defined ADIOS variables
   call adios_set_path (adios_handle, "vs", adios_err)
   call write_1D_global_array_adios_dims(adios_handle, myrank, &
       local_dim, sizeprocs)
   call adios_write(adios_handle, "array", &
       sqrt( muvstore/rhostore )*scaleval1, &
       adios_err)
-
-  !--- Reset the path to zero and perform the actual write to disk
-  call adios_set_path (adios_handle, "", adios_err)
-  call adios_close(adios_handle, adios_err)
-  !---------------------------------------------------------
   !--- rho arrays ------------------------------------------
-  !---------------------------------------------------------
-  outputname = trim(reg_name) // "rho.bp" 
-  write(group_name,"('SPECFEM3D_GLOBE_RHO_reg',i1)") iregion_code
-  group_size_inc = 0
-  call adios_declare_group(adios_group, group_name, &
-      "", 0, adios_err)
-  call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-  !--- Define ADIOS variables -----------------------------
   local_dim = size (rhostore) 
-  call define_adios_global_real_1d_array(adios_group, "rho", &
-      local_dim, group_size_inc)
-  !--- Open an ADIOS handler to the restart file. ---------
-  call adios_open (adios_handle, group_name, &
-      outputname, "w", comm, adios_err);
-  call adios_group_size (adios_handle, group_size_inc, &
-                         adios_totalsize, adios_err)
-  !--- Schedule writes for the previously defined ADIOS variables
   call adios_set_path (adios_handle, "rho", adios_err)
   call write_1D_global_array_adios_dims(adios_handle, myrank, &
       local_dim, sizeprocs)
@@ -1159,162 +1156,48 @@
       rhostore *scaleval2, &
       adios_err)
 
-  !--- Reset the path to zero and perform the actual write to disk
-  call adios_set_path (adios_handle, "", adios_err)
-  call adios_close(adios_handle, adios_err)
-
   ! transverse isotropic model
   if( TRANSVERSE_ISOTROPY ) then
-    !-------------------------------------------------------
     !--- vpv arrays ----------------------------------------
-    !-------------------------------------------------------
-    outputname = trim(reg_name) // "vpv.bp" 
-    write(group_name,"('SPECFEM3D_GLOBE_VPV_reg',i1)") iregion_code
-    group_size_inc = 0
-    call adios_declare_group(adios_group, group_name, &
-        "", 0, adios_err)
-    call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-    !--- Define ADIOS variables ----------------------------
     local_dim = size (kappavstore) 
-    call define_adios_global_real_1d_array(adios_group, "vpv", &
-        local_dim, group_size_inc)
-    !--- Open an ADIOS handler to the restart file. --------
-    call adios_open (adios_handle, group_name, &
-        outputname, "w", comm, adios_err);
-    call adios_group_size (adios_handle, group_size_inc, &
-                           adios_totalsize, adios_err)
-    !--- Schedule writes for the previously defined ADIOS variables
     call adios_set_path (adios_handle, "vpv", adios_err)
     call write_1D_global_array_adios_dims(adios_handle, myrank, &
         local_dim, sizeprocs)
     call adios_write(adios_handle, "array", &
         sqrt( (kappavstore+4.*muvstore/3.)/rhostore )*scaleval1, &
         adios_err)
-
-    !--- Reset the path to zero and perform the actual write to disk
-    call adios_set_path (adios_handle, "", adios_err)
-    call adios_close(adios_handle, adios_err)
-    !-------------------------------------------------------
     !--- vph arrays ----------------------------------------
-    !-------------------------------------------------------
-    outputname = trim(reg_name) // "vph.bp" 
-    write(group_name,"('SPECFEM3D_GLOBE_VPH_reg',i1)") iregion_code
-    group_size_inc = 0
-    call adios_declare_group(adios_group, group_name, &
-        "", 0, adios_err)
-    call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-    !--- Define ADIOS variables ----------------------------
     local_dim = size (kappavstore) 
-    call define_adios_global_real_1d_array(adios_group, "vph", &
-        local_dim, group_size_inc)
-    !--- Open an ADIOS handler to the restart file. --------
-    call adios_open (adios_handle, group_name, &
-        outputname, "w", comm, adios_err);
-    call adios_group_size (adios_handle, group_size_inc, &
-                           adios_totalsize, adios_err)
-    !--- Schedule writes for the previously defined ADIOS variables
     call adios_set_path (adios_handle, "vph", adios_err)
     call write_1D_global_array_adios_dims(adios_handle, myrank, &
         local_dim, sizeprocs)
     call adios_write(adios_handle, "array", &
         sqrt( (kappahstore+4.*muhstore/3.)/rhostore )*scaleval1, &
         adios_err)
-
-    !--- Reset the path to zero and perform the actual write to disk
-    call adios_set_path (adios_handle, "", adios_err)
-    call adios_close(adios_handle, adios_err)
-    !-------------------------------------------------------
     !--- vsv arrays ----------------------------------------
-    !-------------------------------------------------------
-    outputname = trim(reg_name) // "vsv.bp" 
-    write(group_name,"('SPECFEM3D_GLOBE_VSV_reg',i1)") iregion_code
-    group_size_inc = 0
-    call adios_declare_group(adios_group, group_name, &
-        "", 0, adios_err)
-    call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-    !--- Define ADIOS variables ----------------------------
     local_dim = size (rhostore) 
-    call define_adios_global_real_1d_array(adios_group, "vsv", &
-        local_dim, group_size_inc)
-    !--- Open an ADIOS handler to the restart file. --------
-    call adios_open (adios_handle, group_name, &
-        outputname, "w", comm, adios_err);
-    call adios_group_size (adios_handle, group_size_inc, &
-                           adios_totalsize, adios_err)
-    !--- Schedule writes for the previously defined ADIOS variables
     call adios_set_path (adios_handle, "vsv", adios_err)
     call write_1D_global_array_adios_dims(adios_handle, myrank, &
         local_dim, sizeprocs)
     call adios_write(adios_handle, "array", &
         sqrt( muvstore/rhostore )*scaleval1, &
         adios_err)
-
-    !--- Reset the path to zero and perform the actual write to disk
-    call adios_set_path (adios_handle, "", adios_err)
-    call adios_close(adios_handle, adios_err)
-    !-------------------------------------------------------
     !--- vsh arrays ----------------------------------------
-    !-------------------------------------------------------
-    outputname = trim(reg_name) // "vsh.bp" 
-    write(group_name,"('SPECFEM3D_GLOBE_VSH_reg',i1)") iregion_code
-    group_size_inc = 0
-    call adios_declare_group(adios_group, group_name, &
-        "", 0, adios_err)
-    call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-    !--- Define ADIOS variables ----------------------------
     local_dim = size (rhostore) 
-    call define_adios_global_real_1d_array(adios_group, "vsh", &
-        local_dim, group_size_inc)
-    !--- Open an ADIOS handler to the restart file. --------
-    call adios_open (adios_handle, group_name, &
-        outputname, "w", comm, adios_err);
-    call adios_group_size (adios_handle, group_size_inc, &
-                           adios_totalsize, adios_err)
-    !--- Schedule writes for the previously defined ADIOS variables
     call adios_set_path (adios_handle, "vsh", adios_err)
     call write_1D_global_array_adios_dims(adios_handle, myrank, &
         local_dim, sizeprocs)
     call adios_write(adios_handle, "array", &
         sqrt( muhstore/rhostore )*scaleval1, &
         adios_err)
-
-    !--- Reset the path to zero and perform the actual write to disk
-    call adios_set_path (adios_handle, "", adios_err)
-    call adios_close(adios_handle, adios_err)
-    !-------------------------------------------------------
     !--- eta arrays ----------------------------------------
-    !-------------------------------------------------------
-    outputname = trim(reg_name) // "eta.bp" 
-    write(group_name,"('SPECFEM3D_GLOBE_ETA_reg',i1)") iregion_code
-    group_size_inc = 0
-    call adios_declare_group(adios_group, group_name, &
-        "", 0, adios_err)
-    call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-    !--- Define ADIOS variables ----------------------------
     local_dim = size (eta_anisostore) 
-    call define_adios_global_real_1d_array(adios_group, "eta", &
-        local_dim, group_size_inc)
-    !--- Open an ADIOS handler to the restart file. --------
-    call adios_open (adios_handle, group_name, &
-        outputname, "w", comm, adios_err);
-    call adios_group_size (adios_handle, group_size_inc, &
-                           adios_totalsize, adios_err)
-    !--- Schedule writes for the previously defined ADIOS variables
     call adios_set_path (adios_handle, "eta", adios_err)
     call write_1D_global_array_adios_dims(adios_handle, myrank, &
         local_dim, sizeprocs)
     call adios_write(adios_handle, "array", &
         eta_anisostore, &
         adios_err)
-
-    !--- Reset the path to zero and perform the actual write to disk
-    call adios_set_path (adios_handle, "", adios_err)
-    call adios_close(adios_handle, adios_err)
   endif ! TRANSVERSE_ISOTROPY
 
   ! shear attenuation
@@ -1350,23 +1233,7 @@
       enddo
     endif
 
-    outputname = trim(reg_name) // "qmu.bp" 
-    write(group_name,"('SPECFEM3D_GLOBE_QMU_reg',i1)") iregion_code
-    group_size_inc = 0
-    call adios_declare_group(adios_group, group_name, &
-        "", 0, adios_err)
-    call adios_select_method(adios_group, "MPI", "", "", adios_err)
-
-    !--- Define ADIOS variables -----------------------------
-    local_dim = size (temp_store) 
-    call define_adios_global_real_1d_array(adios_group, "qmu", &
-        local_dim, group_size_inc)
-    !--- Open an ADIOS handler to the restart file. --------
-    call adios_open (adios_handle, group_name, &
-        outputname, "w", comm, adios_err);
-    call adios_group_size (adios_handle, group_size_inc, &
-                           adios_totalsize, adios_err)
-    !--- Schedule writes for the previously defined ADIOS variables
+    local_dim = NGLLX * NGLLY * NGLLZ * nspec
     call adios_set_path (adios_handle, "qmu", adios_err)
     call write_1D_global_array_adios_dims(adios_handle, myrank, &
         local_dim, sizeprocs)
@@ -1374,14 +1241,14 @@
         temp_store, &
         adios_err)
 
-    !--- Reset the path to zero and perform the actual write to disk
-    call adios_set_path (adios_handle, "", adios_err)
-    call adios_close(adios_handle, adios_err)
-
     ! frees temporary memory
     deallocate(temp_store)
   endif ! ATTENUATION
 
+  !--- Reset the path to zero and perform the actual write to disk
+  call adios_set_path (adios_handle, "", adios_err)
+  call adios_close(adios_handle, adios_err)
+
 end subroutine save_arrays_solver_meshfiles_adios
 
 



More information about the CIG-COMMITS mailing list