[cig-commits] r22620 - in seismo/3D/SPECFEM3D_GLOBE/trunk/src: shared specfem3D
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Mon Jul 15 16:16:09 PDT 2013
Author: dkomati1
Date: 2013-07-15 16:16:09 -0700 (Mon, 15 Jul 2013)
New Revision: 22620
Modified:
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/rules.mk
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
Log:
found a trick to overcome the problem of some compilers refusing to preprocess include files; I now define a new flag in save_header_file.F90;
thus now really done vectorizing the two part1_*.f90 files
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/rules.mk
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/rules.mk 2013-07-15 23:06:06 UTC (rev 22619)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/rules.mk 2013-07-15 23:16:09 UTC (rev 22620)
@@ -149,8 +149,8 @@
$O/rthetaphi_xyz.o: ${SETUP}/constants.h $S/rthetaphi_xyz.f90
${FCCOMPILE_CHECK} -c -o $O/rthetaphi_xyz.o ${FCFLAGS_f90} $S/rthetaphi_xyz.f90
-$O/save_header_file.o: ${SETUP}/constants.h $S/save_header_file.f90
- ${FCCOMPILE_CHECK} -c -o $O/save_header_file.o ${FCFLAGS_f90} $S/save_header_file.f90
+$O/save_header_file.o: ${SETUP}/constants.h $S/save_header_file.F90
+ ${FCCOMPILE_CHECK} -c -o $O/save_header_file.o ${FCFLAGS_f90} $S/save_header_file.F90
$O/spline_routines.o: ${SETUP}/constants.h $S/spline_routines.f90
${FCCOMPILE_CHECK} -c -o $O/spline_routines.o ${FCFLAGS_f90} $S/spline_routines.f90
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90 2013-07-15 23:06:06 UTC (rev 22619)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/save_header_file.F90 2013-07-15 23:16:09 UTC (rev 22620)
@@ -571,7 +571,16 @@
else
write(IOUT,*) 'integer, parameter :: NM_KL_REG_PTS_VAL = 1'
endif
+ write(IOUT,*)
+!! DK DK Jul 2013: we need that for the part1_*.f90 and part2_*.f90 include files, which some compilers
+!! DK DK Jul 2013: refuse to preprocess even if we rename them *.F90
+#ifdef FORCE_VECTORIZATION
+ write(IOUT,*) 'logical, parameter :: FORCE_VECTORIZATION_VAL = .true.'
+#else
+ write(IOUT,*) 'logical, parameter :: FORCE_VECTORIZATION_VAL = .false.'
+#endif
+
close(IOUT)
end subroutine save_header_file
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90 2013-07-15 23:06:06 UTC (rev 22619)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_classical.f90 2013-07-15 23:16:09 UTC (rev 22620)
@@ -7,7 +7,7 @@
! Newmark time scheme update
! mantle
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_CRUST_MANTLE*NDIM
displ_crust_mantle(i,1) = displ_crust_mantle(i,1) &
+ deltat*veloc_crust_mantle(i,1) + deltatsqover2*accel_crust_mantle(i,1)
@@ -15,7 +15,7 @@
+ deltatover2*accel_crust_mantle(i,1)
accel_crust_mantle(i,1) = 0._CUSTOM_REAL
enddo
-#else
+ else
do i=1,NGLOB_CRUST_MANTLE
displ_crust_mantle(:,i) = displ_crust_mantle(:,i) &
+ deltat*veloc_crust_mantle(:,i) + deltatsqover2*accel_crust_mantle(:,i)
@@ -23,7 +23,7 @@
+ deltatover2*accel_crust_mantle(:,i)
accel_crust_mantle(:,i) = 0._CUSTOM_REAL
enddo
-#endif
+ endif
! outer core
do i=1,NGLOB_OUTER_CORE
@@ -35,7 +35,7 @@
enddo
! inner core
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_INNER_CORE*NDIM
displ_inner_core(i,1) = displ_inner_core(i,1) &
+ deltat*veloc_inner_core(i,1) + deltatsqover2*accel_inner_core(i,1)
@@ -43,7 +43,7 @@
+ deltatover2*accel_inner_core(i,1)
accel_inner_core(i,1) = 0._CUSTOM_REAL
enddo
-#else
+ else
do i=1,NGLOB_INNER_CORE
displ_inner_core(:,i) = displ_inner_core(:,i) &
+ deltat*veloc_inner_core(:,i) + deltatsqover2*accel_inner_core(:,i)
@@ -51,7 +51,7 @@
+ deltatover2*accel_inner_core(:,i)
accel_inner_core(:,i) = 0._CUSTOM_REAL
enddo
-#endif
+ endif
! integral of strain for adjoint movie volume
if(MOVIE_VOLUME .and. (MOVIE_VOLUME_TYPE == 2 .or. MOVIE_VOLUME_TYPE == 3) ) then
@@ -828,15 +828,15 @@
! Newmark time scheme - corrector for elastic parts
! mantle
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_CRUST_MANTLE*NDIM
veloc_crust_mantle(i,1) = veloc_crust_mantle(i,1) + deltatover2*accel_crust_mantle(i,1)
enddo
-#else
+ else
do i=1,NGLOB_CRUST_MANTLE
veloc_crust_mantle(:,i) = veloc_crust_mantle(:,i) + deltatover2*accel_crust_mantle(:,i)
enddo
-#endif
+ endif
! inner core
do i=1,NGLOB_INNER_CORE
@@ -847,15 +847,15 @@
accel_inner_core(3,i) = accel_inner_core(3,i)*rmass_inner_core(i)
enddo
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_INNER_CORE*NDIM
veloc_inner_core(i,1) = veloc_inner_core(i,1) + deltatover2*accel_inner_core(i,1)
enddo
-#else
+ else
do i=1,NGLOB_INNER_CORE
veloc_inner_core(:,i) = veloc_inner_core(:,i) + deltatover2*accel_inner_core(:,i)
enddo
-#endif
+ endif
! write the seismograms with time shift
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90 2013-07-15 23:06:06 UTC (rev 22619)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/part1_undo_att.f90 2013-07-15 23:16:09 UTC (rev 22620)
@@ -21,7 +21,7 @@
else
! mantle
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_CRUST_MANTLE*NDIM
displ_crust_mantle(i,1) = displ_crust_mantle(i,1) &
+ deltat*veloc_crust_mantle(i,1) + deltatsqover2*accel_crust_mantle(i,1)
@@ -29,7 +29,7 @@
+ deltatover2*accel_crust_mantle(i,1)
accel_crust_mantle(i,1) = 0._CUSTOM_REAL
enddo
-#else
+ else
do i=1,NGLOB_CRUST_MANTLE
displ_crust_mantle(:,i) = displ_crust_mantle(:,i) &
+ deltat*veloc_crust_mantle(:,i) + deltatsqover2*accel_crust_mantle(:,i)
@@ -37,7 +37,7 @@
+ deltatover2*accel_crust_mantle(:,i)
accel_crust_mantle(:,i) = 0._CUSTOM_REAL
enddo
-#endif
+ endif
! outer core
do i=1,NGLOB_OUTER_CORE
@@ -49,7 +49,7 @@
enddo
! inner core
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_INNER_CORE*NDIM
displ_inner_core(i,1) = displ_inner_core(i,1) &
+ deltat*veloc_inner_core(i,1) + deltatsqover2*accel_inner_core(i,1)
@@ -57,7 +57,7 @@
+ deltatover2*accel_inner_core(i,1)
accel_inner_core(i,1) = 0._CUSTOM_REAL
enddo
-#else
+ else
do i=1,NGLOB_INNER_CORE
displ_inner_core(:,i) = displ_inner_core(:,i) &
+ deltat*veloc_inner_core(:,i) + deltatsqover2*accel_inner_core(:,i)
@@ -65,7 +65,7 @@
+ deltatover2*accel_inner_core(:,i)
accel_inner_core(:,i) = 0._CUSTOM_REAL
enddo
-#endif
+ endif
endif
@@ -870,15 +870,15 @@
displ_crust_mantle(:,i) = displ_crust_mantle(:,i) + BETA_LDDRK(istage) * displ_crust_mantle_lddrk(:,i)
enddo
else
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_CRUST_MANTLE*NDIM
veloc_crust_mantle(i,1) = veloc_crust_mantle(i,1) + deltatover2*accel_crust_mantle(i,1)
enddo
-#else
+ else
do i=1,NGLOB_CRUST_MANTLE
veloc_crust_mantle(:,i) = veloc_crust_mantle(:,i) + deltatover2*accel_crust_mantle(:,i)
enddo
-#endif
+ endif
endif
! inner core
@@ -910,15 +910,15 @@
displ_inner_core(:,i) = displ_inner_core(:,i) + BETA_LDDRK(istage) * displ_inner_core_lddrk(:,i)
enddo
else
-#ifdef FORCE_VECTORIZATION
+ if(FORCE_VECTORIZATION_VAL) then
do i=1,NGLOB_INNER_CORE*NDIM
veloc_inner_core(i,1) = veloc_inner_core(i,1) + deltatover2*accel_inner_core(i,1)
enddo
-#else
+ else
do i=1,NGLOB_INNER_CORE
veloc_inner_core(:,i) = veloc_inner_core(:,i) + deltatover2*accel_inner_core(:,i)
enddo
-#endif
+ endif
endif
enddo ! end of very big external loop on istage for all the stages of the LDDRK time scheme (only one stage if Newmark)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-07-15 23:06:06 UTC (rev 22619)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2013-07-15 23:16:09 UTC (rev 22620)
@@ -2496,16 +2496,16 @@
!! DK DK it also handles the cases NOISE_TOMOGRAPHY == 1 and NOISE_TOMOGRAPHY == 2
!! DK DK
if(USE_LDDRK .or. EXACT_MASS_MATRIX_FOR_ROTATION) then
- include "part1_undo_att.F90"
+ include "part1_undo_att.f90"
else
- include "part1_classical.F90"
+ include "part1_classical.f90"
endif
!! DK DK
!! DK DK this first part handles the case SIMULATION_TYPE == 3
!! DK DK it also handles the case NOISE_TOMOGRAPHY == 3
!! DK DK
- include "part2_classical.F90"
+ include "part2_classical.f90"
include "part3_kernel_computation.f90"
@@ -2541,7 +2541,7 @@
seismo_current = seismo_current + 1
- include "part1_undo_att.F90"
+ include "part1_undo_att.f90"
enddo
enddo
@@ -2559,7 +2559,7 @@
seismo_current = seismo_current + 1
- include "part1_undo_att.F90"
+ include "part1_undo_att.f90"
enddo
enddo
@@ -2623,7 +2623,7 @@
it = it + 1
seismo_current = seismo_current + 1
- include "part2_undo_att.F90"
+ include "part2_undo_att.f90"
b_displ_crust_mantle_store_buffer(:,:,it_of_this_subset) = b_displ_crust_mantle(:,:)
b_displ_outer_core_store_buffer(:,it_of_this_subset) = b_displ_outer_core(:)
@@ -2681,7 +2681,7 @@
seismo_current = seismo_current + 1
- include "part1_undo_att.F90"
+ include "part1_undo_att.f90"
include "part3_kernel_computation.f90"
More information about the CIG-COMMITS
mailing list