[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