[cig-commits] r17989 - in seismo/2D/SPECFEM2D/trunk: . EXAMPLES/Abel_Brest EXAMPLES/M2_UPPA EXAMPLES/Tape2007 EXAMPLES/Tromp2005 EXAMPLES/canyon EXAMPLES/fluid_solid doc/USER_MANUAL src

danielpeter at geodynamics.org danielpeter at geodynamics.org
Mon Feb 28 14:43:19 PST 2011


Author: danielpeter
Date: 2011-02-28 14:43:18 -0800 (Mon, 28 Feb 2011)
New Revision: 17989

Modified:
   seismo/2D/SPECFEM2D/trunk/EXAMPLES/Abel_Brest/process.sh
   seismo/2D/SPECFEM2D/trunk/EXAMPLES/M2_UPPA/process.sh
   seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tape2007/process.sh
   seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tromp2005/process.sh
   seismo/2D/SPECFEM2D/trunk/EXAMPLES/canyon/process.sh
   seismo/2D/SPECFEM2D/trunk/EXAMPLES/fluid_solid/process.sh
   seismo/2D/SPECFEM2D/trunk/Makefile.in
   seismo/2D/SPECFEM2D/trunk/configure
   seismo/2D/SPECFEM2D/trunk/convolve_source_timefunction.csh
   seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.pdf
   seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.tex
   seismo/2D/SPECFEM2D/trunk/src/get_MPI.F90
Log:
updates configure script, puts compiled binaries into bin/ subdirectory; fixes problem with MPI deadlocks

Modified: seismo/2D/SPECFEM2D/trunk/EXAMPLES/Abel_Brest/process.sh
===================================================================
--- seismo/2D/SPECFEM2D/trunk/EXAMPLES/Abel_Brest/process.sh	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/EXAMPLES/Abel_Brest/process.sh	2011-02-28 22:43:18 UTC (rev 17989)
@@ -34,8 +34,9 @@
 cd $currentdir
 
 # links executables
-ln -s ../../xmeshfem2D
-ln -s ../../xspecfem2D
+rm -f xmeshfem2D xspecfem2D
+ln -s ../../bin/xmeshfem2D
+ln -s ../../bin/xspecfem2D
 
 # stores setup
 cp DATA/Par_file OUTPUT_FILES/

Modified: seismo/2D/SPECFEM2D/trunk/EXAMPLES/M2_UPPA/process.sh
===================================================================
--- seismo/2D/SPECFEM2D/trunk/EXAMPLES/M2_UPPA/process.sh	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/EXAMPLES/M2_UPPA/process.sh	2011-02-28 22:43:18 UTC (rev 17989)
@@ -34,8 +34,9 @@
 cd $currentdir
 
 # links executables
-ln -s ../../xmeshfem2D
-ln -s ../../xspecfem2D
+rm -f xmeshfem2D xspecfem2D
+ln -s ../../bin/xmeshfem2D
+ln -s ../../bin/xspecfem2D
 
 # stores setup
 cp DATA/Par_file OUTPUT_FILES/

Modified: seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tape2007/process.sh
===================================================================
--- seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tape2007/process.sh	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tape2007/process.sh	2011-02-28 22:43:18 UTC (rev 17989)
@@ -34,8 +34,9 @@
 cd $currentdir
 
 # links executables
-ln -s ../../xmeshfem2D
-ln -s ../../xspecfem2D
+rm -f xmeshfem2D xspecfem2D
+ln -s ../../bin/xmeshfem2D
+ln -s ../../bin/xspecfem2D
 
 # stores setup
 cp DATA/Par_file OUTPUT_FILES/

Modified: seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tromp2005/process.sh
===================================================================
--- seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tromp2005/process.sh	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/EXAMPLES/Tromp2005/process.sh	2011-02-28 22:43:18 UTC (rev 17989)
@@ -34,8 +34,9 @@
 cd $currentdir
 
 # links executables
-ln -s ../../xmeshfem2D
-ln -s ../../xspecfem2D
+rm -f xmeshfem2D xspecfem2D
+ln -s ../../bin/xmeshfem2D
+ln -s ../../bin/xspecfem2D
 
 # stores setup
 cp DATA/Par_file OUTPUT_FILES/

Modified: seismo/2D/SPECFEM2D/trunk/EXAMPLES/canyon/process.sh
===================================================================
--- seismo/2D/SPECFEM2D/trunk/EXAMPLES/canyon/process.sh	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/EXAMPLES/canyon/process.sh	2011-02-28 22:43:18 UTC (rev 17989)
@@ -34,8 +34,9 @@
 cd $currentdir
 
 # links executables
-ln -s ../../xmeshfem2D
-ln -s ../../xspecfem2D
+rm -f xmeshfem2D xspecfem2D
+ln -s ../../bin/xmeshfem2D
+ln -s ../../bin/xspecfem2D
 
 # stores setup
 cp DATA/Par_file OUTPUT_FILES/

Modified: seismo/2D/SPECFEM2D/trunk/EXAMPLES/fluid_solid/process.sh
===================================================================
--- seismo/2D/SPECFEM2D/trunk/EXAMPLES/fluid_solid/process.sh	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/EXAMPLES/fluid_solid/process.sh	2011-02-28 22:43:18 UTC (rev 17989)
@@ -34,8 +34,9 @@
 cd $currentdir
 
 # links executables
-ln -s ../../xmeshfem2D
-ln -s ../../xspecfem2D
+rm -f xmeshfem2D xspecfem2D
+ln -s ../../bin/xmeshfem2D
+ln -s ../../bin/xspecfem2D
 
 # stores setup
 cp DATA/Par_file OUTPUT_FILES/

Modified: seismo/2D/SPECFEM2D/trunk/Makefile.in
===================================================================
--- seismo/2D/SPECFEM2D/trunk/Makefile.in	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/Makefile.in	2011-02-28 22:43:18 UTC (rev 17989)
@@ -61,20 +61,13 @@
 MPIFC = @MPIFC@
 MPILIBS = @MPILIBS@
 
-FLAGS_CHECK = @FLAGS_CHECK@
-FLAGS_NO_CHECK = @FLAGS_NO_CHECK@
+FLAGS_CHECK = @FLAGS_CHECK@ -Isetup
+FLAGS_NO_CHECK = @FLAGS_NO_CHECK@ -Isetup
 
-#FCFLAGS_f90 = @FCFLAGS_f90@
-
-
 CC = @CC@
-CFLAGS = @CFLAGS@ $(CPPFLAGS)
 CPPFLAGS = @CPPFLAGS@ $(COND_MPI_CPPFLAGS)
+CFLAGS = @CFLAGS@ $(CPPFLAGS) -Isetup
 
-#AR = ar
-#ARFLAGS = cru
-#RANLIB = ranlib
-
 ## serial or parallel
 @COND_MPI_TRUE at F90 = $(MPIFC) $(FCFLAGS) -DUSE_MPI -DUSE_SCOTCH -I"@SCOTCH_INCLUDEDIR@" $(MPILIBS)
 @COND_MPI_FALSE at F90 = $(FC) $(FCFLAGS)
@@ -88,6 +81,16 @@
 
 LINK = $(F90)
 
+## compilation directories
+## E : executables directory
+E = ./bin
+## source file directory
+S_TOP = @srcdir@
+S = @srcdir@/src
+## setup file directory
+SETUP = @srcdir@/setup
+
+
 ##.PHONY: clean default all backup bak generate_databases specfem3D meshfem3D
 
 ####
@@ -187,7 +190,7 @@
 
 all: default
 
-required: obj
+required: obj bin
 
 mesh : meshfem2D
 spec : specfem2D
@@ -212,7 +215,7 @@
 
 
 clean:
-	(rm -rf obj xmeshfem2D xmeshfem2D.trace \
+	(rm -rf obj bin xmeshfem2D xmeshfem2D.trace \
 	xspecfem2D xspecfem2D.trace \
 	$O/*.o *.o $O/*.il *.mod core \
 	xconvolve_source_timefunction \
@@ -234,256 +237,259 @@
 ## mesher
 ##
 xmeshfem2D: required $(OBJS_MESHFEM2D)
-	$(LINK) $(FLAGS_CHECK) -o xmeshfem2D $(OBJS_MESHFEM2D) $(LIB)
+	$(LINK) $(FLAGS_CHECK) -o ${E}/xmeshfem2D $(OBJS_MESHFEM2D) $(LIB)
 
 ##
 ## solver
 ##
 ### use optimized compilation option for solver only
 xspecfem2D: required $(OBJS_SPECFEM2D)
-	$(LINK) $(FLAGS_NO_CHECK) -o xspecfem2D $(OBJS_SPECFEM2D)
+	$(LINK) $(FLAGS_NO_CHECK) -o ${E}/xspecfem2D $(OBJS_SPECFEM2D)
 
 ##
 ## convolve_source_timefunction
 ##
 xconvolve_source_timefunction: required $O/convolve_source_timefunction.o
-	${F90} $(FLAGS_CHECK) -o xconvolve_source_timefunction $O/convolve_source_timefunction.o
+	${F90} $(FLAGS_CHECK) -o ${E}/xconvolve_source_timefunction $O/convolve_source_timefunction.o
 
 ##
 ## check_quality_external_mesh
 ##
 xcheck_quality_external_mesh: required $O/check_quality_external_mesh.o $O/read_value_parameters.o
-	${F90} $(FLAGS_CHECK) -o xcheck_quality_external_mesh $O/check_quality_external_mesh.o $O/read_value_parameters.o
+	${F90} $(FLAGS_CHECK) -o ${E}/xcheck_quality_external_mesh $O/check_quality_external_mesh.o $O/read_value_parameters.o
 
-$O/checkgrid.o: checkgrid.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/checkgrid.o checkgrid.F90
+##
+## object files
+##
+$O/checkgrid.o: ${S}/checkgrid.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/checkgrid.o ${S}/checkgrid.F90
 
-$O/meshfem2D.o: meshfem2D.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/meshfem2D.o meshfem2D.F90
+$O/meshfem2D.o: ${S}/meshfem2D.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/meshfem2D.o ${S}/meshfem2D.F90
 
-$O/read_interfaces_file.o: read_interfaces_file.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/read_interfaces_file.o read_interfaces_file.f90
+$O/read_interfaces_file.o: ${S}/read_interfaces_file.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/read_interfaces_file.o ${S}/read_interfaces_file.f90
 
-$O/read_materials.o: read_materials.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/read_materials.o read_materials.f90
+$O/read_materials.o: ${S}/read_materials.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/read_materials.o ${S}/read_materials.f90
 
-$O/read_parameter_file.o: read_parameter_file.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/read_parameter_file.o read_parameter_file.F90
+$O/read_parameter_file.o: ${S}/read_parameter_file.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/read_parameter_file.o ${S}/read_parameter_file.F90
 
-$O/read_regions.o: read_regions.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/read_regions.o read_regions.f90
+$O/read_regions.o: ${S}/read_regions.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/read_regions.o ${S}/read_regions.f90
 
-$O/read_source_file.o: read_source_file.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/read_source_file.o read_source_file.f90
+$O/read_source_file.o: ${S}/read_source_file.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/read_source_file.o ${S}/read_source_file.f90
 
-$O/get_node_number.o: get_node_number.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/get_node_number.o get_node_number.f90
+$O/get_node_number.o: ${S}/get_node_number.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/get_node_number.o ${S}/get_node_number.f90
 
-$O/createnum_fast.o: createnum_fast.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/createnum_fast.o createnum_fast.f90
+$O/createnum_fast.o: ${S}/createnum_fast.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/createnum_fast.o ${S}/createnum_fast.f90
 
-$O/createnum_slow.o: createnum_slow.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/createnum_slow.o createnum_slow.f90
+$O/createnum_slow.o: ${S}/createnum_slow.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/createnum_slow.o ${S}/createnum_slow.f90
 
-$O/convolve_source_timefunction.o: convolve_source_timefunction.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/convolve_source_timefunction.o convolve_source_timefunction.f90
+$O/convolve_source_timefunction.o: ${S}/convolve_source_timefunction.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/convolve_source_timefunction.o ${S}/convolve_source_timefunction.f90
 
-$O/check_quality_external_mesh.o: check_quality_external_mesh.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/check_quality_external_mesh.o check_quality_external_mesh.f90
+$O/check_quality_external_mesh.o: ${S}/check_quality_external_mesh.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/check_quality_external_mesh.o ${S}/check_quality_external_mesh.f90
 
-$O/read_value_parameters.o: read_value_parameters.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/read_value_parameters.o read_value_parameters.f90
+$O/read_value_parameters.o: ${S}/read_value_parameters.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/read_value_parameters.o ${S}/read_value_parameters.f90
 
-$O/datim.o: datim.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/datim.o datim.f90
+$O/datim.o: ${S}/datim.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/datim.o ${S}/datim.f90
 
-$O/lagrange_poly.o: lagrange_poly.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/lagrange_poly.o lagrange_poly.f90
+$O/lagrange_poly.o: ${S}/lagrange_poly.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/lagrange_poly.o ${S}/lagrange_poly.f90
 
-$O/gmat01.o: gmat01.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/gmat01.o gmat01.f90
+$O/gmat01.o: ${S}/gmat01.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/gmat01.o ${S}/gmat01.f90
 
-$O/gll_library.o: gll_library.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/gll_library.o gll_library.f90
+$O/gll_library.o: ${S}/gll_library.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/gll_library.o ${S}/gll_library.f90
 
-$O/define_derivation_matrices.o: define_derivation_matrices.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/define_derivation_matrices.o define_derivation_matrices.f90
+$O/define_derivation_matrices.o: ${S}/define_derivation_matrices.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/define_derivation_matrices.o ${S}/define_derivation_matrices.f90
 
-$O/plotgll.o: plotgll.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/plotgll.o plotgll.f90
+$O/plotgll.o: ${S}/plotgll.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/plotgll.o ${S}/plotgll.f90
 
-$O/plotpost.o: plotpost.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/plotpost.o plotpost.F90
+$O/plotpost.o: ${S}/plotpost.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/plotpost.o ${S}/plotpost.F90
 
-$O/locate_receivers.o: locate_receivers.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/locate_receivers.o locate_receivers.F90
+$O/locate_receivers.o: ${S}/locate_receivers.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/locate_receivers.o ${S}/locate_receivers.F90
 
-$O/recompute_jacobian.o: recompute_jacobian.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/recompute_jacobian.o recompute_jacobian.f90
+$O/recompute_jacobian.o: ${S}/recompute_jacobian.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/recompute_jacobian.o ${S}/recompute_jacobian.f90
 
-$O/locate_source_force.o: locate_source_force.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/locate_source_force.o locate_source_force.F90
+$O/locate_source_force.o: ${S}/locate_source_force.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/locate_source_force.o ${S}/locate_source_force.F90
 
-$O/locate_source_moment_tensor.o: locate_source_moment_tensor.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/locate_source_moment_tensor.o locate_source_moment_tensor.F90
+$O/locate_source_moment_tensor.o: ${S}/locate_source_moment_tensor.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/locate_source_moment_tensor.o ${S}/locate_source_moment_tensor.F90
 
-$O/define_shape_functions.o: define_shape_functions.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/define_shape_functions.o define_shape_functions.f90
+$O/define_shape_functions.o: ${S}/define_shape_functions.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/define_shape_functions.o ${S}/define_shape_functions.f90
 
-$O/attenuation_model.o: attenuation_model.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/attenuation_model.o attenuation_model.f90
+$O/attenuation_model.o: ${S}/attenuation_model.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/attenuation_model.o ${S}/attenuation_model.f90
 
-$O/get_poroelastic_velocities.o: get_poroelastic_velocities.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/get_poroelastic_velocities.o get_poroelastic_velocities.f90
+$O/get_poroelastic_velocities.o: ${S}/get_poroelastic_velocities.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/get_poroelastic_velocities.o ${S}/get_poroelastic_velocities.f90
 
 ### use optimized compilation option for solver only
-$O/specfem2D.o: specfem2D.F90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/specfem2D.o specfem2D.F90
+$O/specfem2D.o: ${S}/specfem2D.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/specfem2D.o ${S}/specfem2D.F90
 
 ### use optimized compilation option for solver only
-$O/enforce_acoustic_free_surface.o: enforce_acoustic_free_surface.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/enforce_acoustic_free_surface.o enforce_acoustic_free_surface.f90
+$O/enforce_acoustic_free_surface.o: ${S}/enforce_acoustic_free_surface.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/enforce_acoustic_free_surface.o ${S}/enforce_acoustic_free_surface.f90
 
 ### use optimized compilation option for solver only
-$O/compute_forces_acoustic.o: compute_forces_acoustic.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_acoustic.o compute_forces_acoustic.f90
+$O/compute_forces_acoustic.o: ${S}/compute_forces_acoustic.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_acoustic.o ${S}/compute_forces_acoustic.f90
 
 ### use optimized compilation option for solver only
-$O/compute_forces_viscoelastic.o: compute_forces_viscoelastic.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_viscoelastic.o compute_forces_viscoelastic.f90
+$O/compute_forces_viscoelastic.o: ${S}/compute_forces_viscoelastic.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_viscoelastic.o ${S}/compute_forces_viscoelastic.f90
 
 ### use optimized compilation option for solver only
-$O/compute_forces_poro_solid.o: compute_forces_poro_solid.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_poro_solid.o compute_forces_poro_solid.f90
+$O/compute_forces_poro_solid.o: ${S}/compute_forces_poro_solid.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_poro_solid.o ${S}/compute_forces_poro_solid.f90
 
 ### use optimized compilation option for solver only
-$O/compute_forces_poro_fluid.o: compute_forces_poro_fluid.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_poro_fluid.o compute_forces_poro_fluid.f90
+$O/compute_forces_poro_fluid.o: ${S}/compute_forces_poro_fluid.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_forces_poro_fluid.o ${S}/compute_forces_poro_fluid.f90
 
 ### use optimized compilation option for solver only
-$O/compute_gradient_attenuation.o: compute_gradient_attenuation.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_gradient_attenuation.o compute_gradient_attenuation.f90
+$O/compute_gradient_attenuation.o: ${S}/compute_gradient_attenuation.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_gradient_attenuation.o ${S}/compute_gradient_attenuation.f90
 
-$O/check_stability.o: check_stability.F90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/check_stability.o check_stability.F90
+$O/check_stability.o: ${S}/check_stability.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/check_stability.o ${S}/check_stability.F90
 
-$O/calendar.o: calendar.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/calendar.o calendar.f90
+$O/calendar.o: ${S}/calendar.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/calendar.o ${S}/calendar.f90
 
-$O/convert_time.o: convert_time.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/convert_time.o convert_time.f90
+$O/convert_time.o: ${S}/convert_time.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/convert_time.o ${S}/convert_time.f90
 
-$O/compute_energy.o: compute_energy.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_energy.o compute_energy.f90
+$O/compute_energy.o: ${S}/compute_energy.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_energy.o ${S}/compute_energy.f90
 
-$O/compute_vector_field.o: compute_vector_field.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/compute_vector_field.o compute_vector_field.f90
+$O/compute_vector_field.o: ${S}/compute_vector_field.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/compute_vector_field.o ${S}/compute_vector_field.f90
 
-$O/compute_pressure.o: compute_pressure.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/compute_pressure.o compute_pressure.f90
+$O/compute_pressure.o: ${S}/compute_pressure.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/compute_pressure.o ${S}/compute_pressure.f90
 
-$O/compute_curl_one_element.o: compute_curl_one_element.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/compute_curl_one_element.o compute_curl_one_element.f90
+$O/compute_curl_one_element.o: ${S}/compute_curl_one_element.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/compute_curl_one_element.o ${S}/compute_curl_one_element.f90
 
-$O/compute_Bielak_conditions.o: compute_Bielak_conditions.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/compute_Bielak_conditions.o compute_Bielak_conditions.f90
+$O/compute_Bielak_conditions.o: ${S}/compute_Bielak_conditions.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/compute_Bielak_conditions.o ${S}/compute_Bielak_conditions.f90
 
-$O/compute_arrays_source.o: compute_arrays_source.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/compute_arrays_source.o compute_arrays_source.f90
+$O/compute_arrays_source.o: ${S}/compute_arrays_source.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/compute_arrays_source.o ${S}/compute_arrays_source.f90
 
-$O/create_color_image.o: create_color_image.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/create_color_image.o create_color_image.f90
+$O/create_color_image.o: ${S}/create_color_image.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/create_color_image.o ${S}/create_color_image.f90
 
-$O/save_databases.o: save_databases.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/save_databases.o save_databases.f90
+$O/save_databases.o: ${S}/save_databases.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/save_databases.o ${S}/save_databases.f90
 
-$O/save_gnuplot_file.o: save_gnuplot_file.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/save_gnuplot_file.o save_gnuplot_file.f90
+$O/save_gnuplot_file.o: ${S}/save_gnuplot_file.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/save_gnuplot_file.o ${S}/save_gnuplot_file.f90
 
-$O/save_stations_file.o: save_stations_file.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/save_stations_file.o save_stations_file.f90
+$O/save_stations_file.o: ${S}/save_stations_file.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/save_stations_file.o ${S}/save_stations_file.f90
 
-$O/spline_routines.o: spline_routines.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/spline_routines.o spline_routines.f90
+$O/spline_routines.o: ${S}/spline_routines.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/spline_routines.o ${S}/spline_routines.f90
 
-$O/netlib_specfun_erf.o: netlib_specfun_erf.f90
-	${F90} $(FLAGS_CHECK) -c -o $O/netlib_specfun_erf.o netlib_specfun_erf.f90
+$O/netlib_specfun_erf.o: ${S}/netlib_specfun_erf.f90
+	${F90} $(FLAGS_CHECK) -c -o $O/netlib_specfun_erf.o ${S}/netlib_specfun_erf.f90
 
-$O/define_external_model.o: define_external_model.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/define_external_model.o define_external_model.f90
+$O/define_external_model.o: ${S}/define_external_model.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/define_external_model.o ${S}/define_external_model.f90
 
-$O/write_seismograms.o: write_seismograms.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/write_seismograms.o write_seismograms.F90
+$O/write_seismograms.o: ${S}/write_seismograms.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/write_seismograms.o ${S}/write_seismograms.F90
 
-$O/part_unstruct.o: part_unstruct.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/part_unstruct.o part_unstruct.F90
+$O/part_unstruct.o: ${S}/part_unstruct.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/part_unstruct.o ${S}/part_unstruct.F90
 
-$O/construct_acoustic_surface.o: construct_acoustic_surface.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/construct_acoustic_surface.o construct_acoustic_surface.f90
+$O/construct_acoustic_surface.o: ${S}/construct_acoustic_surface.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/construct_acoustic_surface.o ${S}/construct_acoustic_surface.f90
 
-$O/assemble_MPI.o: assemble_MPI.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/assemble_MPI.o assemble_MPI.F90
+$O/assemble_MPI.o: ${S}/assemble_MPI.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/assemble_MPI.o ${S}/assemble_MPI.F90
 
-$O/exit_mpi.o: exit_mpi.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/exit_mpi.o exit_mpi.F90
+$O/exit_mpi.o: ${S}/exit_mpi.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/exit_mpi.o ${S}/exit_mpi.F90
 
-$O/attenuation_compute_param.o: attenuation_compute_param.c
-	${CC} $(CFLAGS) -c -o $O/attenuation_compute_param.o attenuation_compute_param.c
+$O/attenuation_compute_param.o: ${S}/attenuation_compute_param.c
+	${CC} $(CFLAGS) -c -o $O/attenuation_compute_param.o ${S}/attenuation_compute_param.c
 
-$O/paco_beyond_critical.o: paco_beyond_critical.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/paco_beyond_critical.o paco_beyond_critical.f90
+$O/paco_beyond_critical.o: ${S}/paco_beyond_critical.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/paco_beyond_critical.o ${S}/paco_beyond_critical.f90
 
-$O/paco_convolve_fft.o: paco_convolve_fft.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/paco_convolve_fft.o paco_convolve_fft.f90
+$O/paco_convolve_fft.o: ${S}/paco_convolve_fft.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/paco_convolve_fft.o ${S}/paco_convolve_fft.f90
 
-$O/prepare_absorb.o: prepare_absorb.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/prepare_absorb.o prepare_absorb.f90
+$O/prepare_absorb.o: ${S}/prepare_absorb.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/prepare_absorb.o ${S}/prepare_absorb.f90
 
-$O/prepare_color_image.o: prepare_color_image.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/prepare_color_image.o prepare_color_image.F90
+$O/prepare_color_image.o: ${S}/prepare_color_image.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/prepare_color_image.o ${S}/prepare_color_image.F90
 
-$O/prepare_initialfield.o: prepare_initialfield.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/prepare_initialfield.o prepare_initialfield.F90
+$O/prepare_initialfield.o: ${S}/prepare_initialfield.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/prepare_initialfield.o ${S}/prepare_initialfield.F90
 
-$O/prepare_source_time_function.o: prepare_source_time_function.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/prepare_source_time_function.o prepare_source_time_function.f90
+$O/prepare_source_time_function.o: ${S}/prepare_source_time_function.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/prepare_source_time_function.o ${S}/prepare_source_time_function.f90
 
-$O/is_in_convex_quadrilateral.o: is_in_convex_quadrilateral.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/is_in_convex_quadrilateral.o is_in_convex_quadrilateral.f90
+$O/is_in_convex_quadrilateral.o: ${S}/is_in_convex_quadrilateral.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/is_in_convex_quadrilateral.o ${S}/is_in_convex_quadrilateral.f90
 
-$O/get_perm_cuthill_mckee.o: get_perm_cuthill_mckee.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/get_perm_cuthill_mckee.o get_perm_cuthill_mckee.f90
+$O/get_perm_cuthill_mckee.o: ${S}/get_perm_cuthill_mckee.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/get_perm_cuthill_mckee.o ${S}/get_perm_cuthill_mckee.f90
 
-$O/read_external_model.o: read_external_model.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/read_external_model.o read_external_model.f90
+$O/read_external_model.o: ${S}/read_external_model.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/read_external_model.o ${S}/read_external_model.f90
 
-$O/setup_sources_receivers.o: setup_sources_receivers.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/setup_sources_receivers.o setup_sources_receivers.f90
+$O/setup_sources_receivers.o: ${S}/setup_sources_receivers.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/setup_sources_receivers.o ${S}/setup_sources_receivers.f90
 
-$O/invert_mass_matrix.o: invert_mass_matrix.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/invert_mass_matrix.o invert_mass_matrix.f90
+$O/invert_mass_matrix.o: ${S}/invert_mass_matrix.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/invert_mass_matrix.o ${S}/invert_mass_matrix.f90
 
-$O/initialize_simulation.o: initialize_simulation.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/initialize_simulation.o initialize_simulation.F90
+$O/initialize_simulation.o: ${S}/initialize_simulation.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/initialize_simulation.o ${S}/initialize_simulation.F90
 
-$O/set_sources.o: set_sources.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/set_sources.o set_sources.f90
+$O/set_sources.o: ${S}/set_sources.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/set_sources.o ${S}/set_sources.f90
 
-$O/save_openDX_jacobian.o: save_openDX_jacobian.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/save_openDX_jacobian.o save_openDX_jacobian.f90
+$O/save_openDX_jacobian.o: ${S}/save_openDX_jacobian.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/save_openDX_jacobian.o ${S}/save_openDX_jacobian.f90
 
-$O/compute_normal_vector.o: compute_normal_vector.f90 constants.h
-	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_normal_vector.o compute_normal_vector.f90
+$O/compute_normal_vector.o: ${S}/compute_normal_vector.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_NO_CHECK) -c -o $O/compute_normal_vector.o ${S}/compute_normal_vector.f90
 
-$O/read_databases.o: read_databases.f90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/read_databases.o read_databases.f90
+$O/read_databases.o: ${S}/read_databases.f90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/read_databases.o ${S}/read_databases.f90
 
-$O/prepare_assemble_MPI.o: prepare_assemble_MPI.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/prepare_assemble_MPI.o prepare_assemble_MPI.F90
+$O/prepare_assemble_MPI.o: ${S}/prepare_assemble_MPI.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/prepare_assemble_MPI.o ${S}/prepare_assemble_MPI.F90
 
-$O/get_MPI.o: get_MPI.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/get_MPI.o get_MPI.F90
+$O/get_MPI.o: ${S}/get_MPI.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/get_MPI.o ${S}/get_MPI.F90
 
-$O/sort_array_coordinates.o: sort_array_coordinates.F90 constants.h
-	${F90} $(FLAGS_CHECK) -c -o $O/sort_array_coordinates.o sort_array_coordinates.F90
+$O/sort_array_coordinates.o: ${S}/sort_array_coordinates.F90 ${SETUP}/constants.h
+	${F90} $(FLAGS_CHECK) -c -o $O/sort_array_coordinates.o ${S}/sort_array_coordinates.F90
 

Modified: seismo/2D/SPECFEM2D/trunk/configure
===================================================================
--- seismo/2D/SPECFEM2D/trunk/configure	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/configure	2011-02-28 22:43:18 UTC (rev 17989)
@@ -1943,7 +1943,7 @@
 
 
 
-ac_config_headers="$ac_config_headers config.h"
+ac_config_headers="$ac_config_headers setup/config.h"
 
 
 
@@ -5541,7 +5541,7 @@
 # Checks for library functions.
 
 
-ac_config_files="$ac_config_files Makefile DATA/Par_file DATA/SOURCE constants.h precision_mpi.h scotch_5.1.11/src/Makefile.inc"
+ac_config_files="$ac_config_files Makefile DATA/Par_file DATA/SOURCE setup/constants.h setup/precision_mpi.h scotch_5.1.11/src/Makefile.inc"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -6240,12 +6240,12 @@
 for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
-    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+    "setup/config.h") CONFIG_HEADERS="$CONFIG_HEADERS setup/config.h" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "DATA/Par_file") CONFIG_FILES="$CONFIG_FILES DATA/Par_file" ;;
     "DATA/SOURCE") CONFIG_FILES="$CONFIG_FILES DATA/SOURCE" ;;
-    "constants.h") CONFIG_FILES="$CONFIG_FILES constants.h" ;;
-    "precision_mpi.h") CONFIG_FILES="$CONFIG_FILES precision_mpi.h" ;;
+    "setup/constants.h") CONFIG_FILES="$CONFIG_FILES setup/constants.h" ;;
+    "setup/precision_mpi.h") CONFIG_FILES="$CONFIG_FILES setup/precision_mpi.h" ;;
     "scotch_5.1.11/src/Makefile.inc") CONFIG_FILES="$CONFIG_FILES scotch_5.1.11/src/Makefile.inc" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;

Modified: seismo/2D/SPECFEM2D/trunk/convolve_source_timefunction.csh
===================================================================
--- seismo/2D/SPECFEM2D/trunk/convolve_source_timefunction.csh	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/convolve_source_timefunction.csh	2011-02-28 22:43:18 UTC (rev 17989)
@@ -17,7 +17,7 @@
 
 echo convolving $file with half_duration_triangle = $half_duration_triangle using lines $nlines 
 
-./xconvolve_source_timefunction < $file > ${file}.convolved
+./bin/xconvolve_source_timefunction < $file > ${file}.convolved
 
 rm input_convolve_code.txt
 

Modified: seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.pdf
===================================================================
--- seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.pdf	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.pdf	2011-02-28 22:43:18 UTC (rev 17989)
@@ -4991,8 +4991,9 @@
 /Filter /FlateDecode
 >>
 stream
-xÚuPÍkƒ0¿ûW䨰¤y/yF]§ÐAK©ºËºC¶Z†…´öß/ËØ §÷õûJëhQjÅÀÒ¬>1$-”ou.E¦«ì5®vŪ,6ø”¼ÕÏL	ÊG9dáÞ\Z—p$ol?ØÏæ…5"ÂQ˜+-rŒkå…)Hˆ;×õíõ܇±é»)þJ€âÖ]ºëwØ$ɦZú2ólœBqD!sŸ”·¹åº£r>ͦãÁaX„²Úî«?‹õv¿^þº—Îú S€Ñב¥ÿl_ ˜oÏIE at sH…IO›	œ?·lßÝ`Ý
-è!4(aâDEý á!fP
+xÚuPÉjÃ0½û+t´¡šhF’—cšÚBBˆí^šÔÆCQ@‰ýûÊ–Ci!§ÙÞ&=6Ñ¢R’a„Z±æÄH+¾U…€\JÖÙk\ïÊUUnè)ykž™]0NæáÞ^:—pÒ"Þ;˜Ïæ…CÒšFa.ŠWÒë@<Æ@ܹÞ~t׳
+ckû„tü• Ž;wé¯ßaZ´õÒ—™gìq
+ʼn@>JosËuGå|šMǃ°eµÝ×ëí~½üu¯œñA§ £o–Ažþ³}Iq2¼='…€æ˜B–f>m4nÕ½»Á¸9ås#pâDeý árfT
 endstream
 endobj
 192 0 obj <<
@@ -6519,29 +6520,36 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 483 0 obj <<
-/Length 1994      
+/Length 2041      
 /Filter /FlateDecode
 >>
 stream
-xÚ¥X[oÛ6~ï¯ð£
-Ä´¨»ô¡Í’-Cۍ÷0¬CAË”ÍM‰jêþú^u±šDMòÜ¿ïP¯÷/v÷a°ò=Ç~´Ú«Ä_ÅA„œ®öÇÕ_ëÛ3im7[?òÖþæïýozGˆ’4Ár‡·Ú†Jq¨7üB…`õIox¤ôh¶…«e±›]F©é]û35;ÞßÝÞß½õÖ¯/ÄÓ{kÒš
-Éÿ%'ó’óŠvzÈjý$úqúÊš$«ÐB¤,ÑfÀf½°’¬¥¹àíezÞÓ™åg=¼ðÞÌ)jaNàvG'àüáX°ZÚ‰1Ê¢XÛi´¿1‹.
-Õ¾‰“U
-¾‰Cépnæ%°1FqèÊ„ØóÖÛ¯_>zè|õ)Fþ`
-:}]pö֝˜ 8ÉÆ.OÃ7x}qÚ›£¥~†¨]NæVÉÜ-HËRÀÈlxbÊ%‰r‰ôiœAØjA”ƒ ˜íxßæF§œ©Tœê@×¼,ùƏàèú$=™ÀÐü6Hki¡Ò&U€Ô	¬Ó3Êä­
-ÐGÂQ`âdòqÈÒÍò¤å\Ì3æÚkØóP–]ymÉ_Q†’Äù­ÂÜîCè”alB¶I½5·©_ô<ÿÔÛÂp
-^×LÁ[—ÁfÔ]:A+“‡m_O²vf‹ïù;[@pÁ”ØSbä§new¦¶º¼e0¥·×qpÓ¦¨˜]L¨Ö̪ëÔÓ®›Ö5@¡?iš–7-#‚Î=EãÆÒÏ2HÙ[øø¦‹ŒÎ¿êŒ£òÿç
-ŽÖ\¡·¾±OÀ§b5«zë]f~´FCÒðª¢õÑÁÓÙîwC¥ˆ/MÉr&ÊËIŒ™]CsV\f±_0¾ªHmÕ¤zÆÞ{)“·¢%uæ¹Ý
-+iûÓRV,`
-Ú
-Ù¡ êþö%Qâ{ ”^'8o«ØW:Öd@^ÌL×.S¡É{A¥5ÕîEVúNæD¾PMIIç
-ÇBf‚M§ü²œƒtꉏ¾m¶¸€?Ä®-ñ4¤6¡¥Í"D‘ö#ØŠåO¬gjK•-Ï¡hl¤sX{ã쨗´â}y\ ¦!h‡‚4SSàîà{AWooß?ÀD¯Y¥(lûÄÄyS‹iIŽ#Âÿ_íAKK6Ï—/·¿Ë
-ÞßþªßKvh‰E}‚`CÒAù@8ûÎIUû×{€D•©§@Ö‡þZ×'>p¨Õ=ÆYÿ­‡G¹ã3;*c`†2)US•H0͇`¹W€†à D‘æ<%-1§[uRÁLË{hᴝ^:6oÁ"…ja¬ EK©Íb3Clàå8‚Ò’ëV
-¦ý¼ú„	·ç_;.^Sad«¦ÎƒÖ å•žzC^x0¿Öæì‡w^é¡*2x¾æí‘’þ‹òT¢¤æP$ÛQã@]rr”àb BçÕ=ØÜ9-•†öÚ}K’g! Gv»T̉"Vx£¢ÝAÐÿî¢Ûu9ùy©qðƒa/:ÝØÎèFA„¢Ë 	ãiü€¨Ã"‡!oïö–ÜrÁF±2RA'›8KbŽdÚ‚)•‘~€ë€½>Xdƒ$—G™ƒr@[[R¯C:ÙvWÀÏ„m"lßé¾ñ›Yª!Ñ–ÒqªÔsÍ\¡hèjT<>E²ý]ìÓ ø,žG¥¬5dÌŸC‡[¹
-ÉÁqRo]}…i"smN2ä'³¸/vECvØø@4õ±tôb]xb ÇÑsˆlˆ8O‘Õš¥i›u£KãÌ!æ^5RÓùÄvXzGÅb7eLuY%eÇ"J>ˆ]ÉþÒ‰°…ÄYHìaM³ñÇo}'¦×Š©HÝÇR³µÅYŒ<¸Ì¡$Jÿ?óŽßK^îÀ	r~”œM߸!úüi^Ž¢ìô9 ­è¡ò¸LC+gduËç7zâÄÍ^óìúÃs%ëC†AøãE%ž¸p)0“RZJŽKmþBbV?¼{Ü¿zó‰/K}nAÀ‚Ùõ.L<ä¥á4_ÿÜ`ÕƒAF äEFý"¼©”‡ç˜äLl{AøÍágËµÓ3
-@á9©3xWH(%œÍ1E/z{¤!:óÑ‹¼%—ÀE5
-ñ˜Ö€ÕžžžPI-“”fXÈ,œ˜¤Ññ]CK*éÝrž‰­ÑYTåbˆh未aYNX×[¸~ì›F•ƒœ38…mÁcÍrzh{$º†ˆšõg]¬`F·Í>°Eg>X&Í‚üÀÁêÞŕæ¤ï¾Ñ-NxúŠþž§Õ(²	•¢0Φu9\A葉ç.ø¡‡¢Ø¥ó[ò/-àÖ·t¿‡ö»;àTŸß¬*~Ô¯ªÄ-Íß©ePø—M­º²§¸n¾ß·I9†i‹Ÿ’§ôe¨Çõe‹šúhžwÛŸÿx¼û@ùݏæ*ÜÍÙÃÅÕö%®…zÿ0½Ä&XsµŒœ½ UL×=S
-9ßwq õè¶{¥ËložÙã\4i”AG駓;ù«Â5pó믉Üɲ0ô÷S^vÔZ‘ë>k¢åèÙ4ï¿q]úúPAâþà‡«` o?•¸o·_´{ü £ÈƒPù€ÿú Hþðânÿâ?0
+xÚ¥XYÛ¶}ϯð£
+ŒiQ»
+ô!™Î´S$iñ}(š" eÊf+‰‚DeâüúûqÕbÍ$¸Œ(šÛ·s¨7ûW»û0XùŠc?Zí‹Uâ¯â BNWûãê¯õí™4‚¶›­ykó÷þw=#DIš`9Ã[mÃ¥8Ô~¥B°ú¤'<
+Ò
+z4ÓÂU†²ØÍ¬£Ô‹ô¬ý™šînïïÞù¿è׎âiƒ½5iÍ€†äÿ’“yÉyE;Ýdµ~ý8}cM;«8…nHY¢Í6€Ìxaw>²–æ‚·—ézOg–ŸuóÂ{Ó§NT³·3:ëË‚ÕÒNŒQÅÚNsú3èÒPí›8Y¥à›8”¾çf^c¦‰ž¨Lˆ=o½ýöõK¡›ÎWŸc„áÆ Ó·goÝŠ	¬Œ]ž†oðúâN3LŽb”ú	¢f¹=·jÏÝÂnYŠh™	OL¹$Q.‘>3[-ˆrpb ½ïÛÜœ)çG*§:Pãq/K¾ñ#Xº>IO&Ð4¿
+»µ´Pi*@jÖéeòVh‹£á(0q2ù8äéfyÒr.æsí5ìy(Ë®¼¶ä¯(CIâü…Ì©ÂÜîCè”alB¶I½5·©_ò<ÿÔÛÂp¼®™‚·.ƒM«»t‚V&Û¾ždíÌßóv¶ÀÆSÛ.˜#?u#»3µåÐå-k„)½½Žƒë6EÅì`"àhͬºN=íºimAPú³Ð‘¦iyÓ2"èÜSD0n,ý"ˆ”½…g]dÎü›Î8*ÿÙàh
+Ézë{â	øT¬fUo½Ë̏ÖhH^U´>:x:Ûùa¨ÜâkS²œ‰ò2Acf×Ðœ—Y쌯*R›jR½`ï½Ü“·¢%uæ¹Ù
++iûÓRVŒ1Å€?Ú
+Ù¡ êþög[‰¥Q†óF°Š}£ã£Œ"È‹™íÚg*6y/È¡´¶Ú£ÐJçɤȪ¡))é\åX¬q›ÙŸ`FÓ)Ǭ$PéÔŸ|?Úl#ð+~ˆ>\ZæiHtBK›Fˆ"Óì;Ç°êŸXÏÔ–+[žCÕØPç0öÆÙQ/Š÷åq›†¨
+ÒLMQâ}7êêí݇è€è2­‡mŸ˜8o¡k1/ Ëq2ÝâÔ--Ù<\¾<Þþ!Kxû›~/Ù¡%ömT ‚
+Iõàpì;+-€¿> &ªL=µ€0>ô׺@¡ñ‘C±Þè6βøoÝ„8Ê_ØQ=´I©2˜ªD‚>P‚åº]vØŠ4çÙVÒ³º5Q'ô´¼
+§íôÒ±y@¤`-ŒöÁ£h)Õ­Yl gˆ
+¼GXZr­Õ ûpÑÏ{€¡OA˜p»þµãâ5fo¥ê<Ð-¯t×[òæãƒùµ6k?¼ÿøðZ7U‘Áó
+o”ô_•§µkE²`çQã@]rr”àb Bo8Ϋ'z°¹sZ*!úÚ}Ë’g! Gv»T̉"Vz£¢ÝAÐÿyÑíºœ‹ü¼¤ü CJÄI­lg|£ Bñe„‡ñÔ. #ê°ÈaÈ»»ýãe·\°Q¬L…T à¤Š³,æX¦¡-˜R™Ýp°÷‹lär)³PhkKêµ£Hw&öÝð3aU„Ž‘ŽÏf©†D[JÇé¡^RsY„¢AÖ¨x|Ž¤þ]Ài€â4žG¥¬5lÌ_B‡[¹
+ÉÁqRo]}…i"s:	'ò“YÜeÑ Âˆ¦>–Ž^¬¯Rã8z‘
+ç)²Z³4m³ntkœ9Ä\¬FÇt>±‹o[‹rʘêNd)l±P²ÀðAìJÖð—N„-$ÎB`£xPÍÆ¿÷˜Þ+¦n ¨%µµÅYŒ<¸Ì¡’ñÿfÞñû`ÉÏ;p‚œï’³É$#7pFH†¾š—#„(;ýB@+º©<.ÓÐÊYÝò9$Áî8q3×<»þðRÉúP…aþxÑB‰'.\
+Ìä.-%Ç%¤?‘˜Ñï÷¯ß¾Eâë’Ѝ#”Àýrz¿y '%ùç+
+D€’ÝéExS)Ï1ÉžØjAøÍágËµÓ=
+@á9©3xWH(w8›eŠ^ôvICt°Í'/ò–\7Õ(ÄcZV{zzB%9´LRša!3pb:FÇw
+-©¤wËy&j´FgQ•Kˆ!¢™s.
+ËrºÞÂõcß4ªdŸÁ)lk–ÓM«‘ é5ãϺX1ÀŒ–Í>°Eg¾Ø#ÌÁð¬·s 9é»gÔ℧¯èïeZ"›P)
+ãl*š‡+=2ñÒ
+?ôP»t~Gþ¥\û–.ø ÿ±‹±þáèó›UŏúU•¸¥ù;5
+ÿ²‰£õ@Wv§æ»ñ…›”c˜¶ø)yJßæzœ.[ÄÐÔG.ïElùÏãÝg Êï~Í0wánÎ.®V—8	õáazˆM°æÇ2ûLHŸRŨîÙÑ@Èù¾‹­G·Ý«ó¸Ìöæ™=ÎE“F(J?^Ê_NÁÍï¿&t'Kà ð§Ä층"×BkrÌÑ7²iâ?s]úþPAæþè§{ Þ~-qŸoŸý–0ú<ÒJVä”$då•
+^i»h
+FIæ‰v€À;€uÒ8š3Iš>‘ÃP™¯ö‘üéÕÝþÕö³U¾
 endstream
 endobj
 482 0 obj <<
@@ -6555,33 +6563,33 @@
 477 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[0 1 0]
-/Rect [99.228 321.854 187.805 332.758]
+/Rect [99.228 323.029 187.805 333.933]
 /Subtype /Link
 /A << /S /GoTo /D (cite.PeRo96) >>
 >> endobj
 478 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[0 1 0]
-/Rect [190.714 321.854 212.632 332.758]
+/Rect [190.714 323.029 212.632 333.933]
 /Subtype /Link
 /A << /S /GoTo /D (cite.PeRo96) >>
 >> endobj
 479 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[0 1 1]
-/Rect [230.953 297.943 472.049 308.847]
+/Rect [230.953 299.119 472.049 310.023]
 /Subtype/Link/A<</Type/Action/S/URI/URI(https://gforge.inria.fr/projects/scotch/)>>
 >> endobj
 480 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[0 1 1]
-/Rect [419.452 188.608 540.996 199.512]
+/Rect [419.452 189.979 540.996 200.883]
 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.labri.fr/perso/pelegrin/scotch/scotch_en.html)>>
 >> endobj
 485 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[0 1 1]
-/Rect [95.91 176.653 313.096 187.557]
+/Rect [95.91 178.024 313.096 188.928]
 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.labri.fr/perso/pelegrin/scotch/scotch_en.html)>>
 >> endobj
 484 0 obj <<
@@ -8974,28 +8982,20 @@
 /ProcSet [ /PDF /Text /ImageC ]
 >> endobj
 499 0 obj <<
-/Length 2081      
+/Length 2084      
 /Filter /FlateDecode
 >>
 stream
-xڝXmsã6þž_áé'y&VDQoîÍM§íf¯é\·{]÷Óµ“‘%ÚÖE½zÙ$ýõ ^¥»íî“ ‚`¾Û]ݼ’ÕÖÝF~´ÚV±¿Še²Úå«ÿ:ßÿðíûÝí/ëzŽt×›0òœŸn?ü@’ݾ»ýåÛµÂÙÝýünýûîÇ›·A01DÒõÄv命˜Tb9QÙ2q…ðW?¡$Í*íTS¤e{(Jµ`9IÜ(Š­á¢"át'Eƒº¯öª¡±>\,Zã4;hÖSk?t>­Eè¨æ™E¥ªTݱõ¯×)}'­iZԝBí£Ý¨IëcQqâ;‡FW$¼½f×ö•ÎUÙâ¡V›(rãpµÂ݆!FׯJ³Ê¢Vîv>|&bø<t·}}h”ºoûæfê5ð„¹Ñ;éI‚Gz¾ó›çù¥"a®Ú¬)öæT¸ÆJÒQùQµ$ +V£Bšé¾íŠŒuÀ+’£kkáÁ:o¨€¢½1ÔÁ718%%r	¨€/6”Æó¦íHŠ ]
-¬JŸÈ[R#Ù3¨w ›l$°Á%Õnµ%Ñ€ÈÌ; E3ÈñÐ÷æÄÞü¬)¬JáœuANÈÐññÇãø…5—ð‹¨AÁj´?È­ƒRL”6/Ð9¢¹ƒRŒ›t§‚m0".]Õ݁¤Ïº§A®í®
-Ášg‹{]ÏNÑÉÿ×ӍzιçG?6Qaozÿ-iÒ}«ŒòÏfŽŒÜ If¼XŒa`sÇÓÜ™)qîàp¼ˆ whº×}§Ma?Bò’Q¤å‰Æb<ÆÍ)PmZñ(,™ã©N‹ëôýeÔ"ÜhüdñÄ6Òg7ÐwB4+ßçªSYWèú>ë›O¯ï´õ\?h,Óu—5(Ox<½œp ¤xÌø¥>¶ Bê[•“çâ(bë»r;ÔžV÷
-àQã%”÷¶-¸¼‘‘çÆQt‘Úu¾´Kì~`7iTöE;?tC9¢¿	âÐùpÒ}™cÐ@,)úÅ@­y|l 8•Ãñ¥HŒ;F¬›ÜÈi–•:{x,ZÅFß
-|2_‡u
-ÄÀ‡#ó\þ|Æ^
-µÕ½§ë?ÐHip¬¨¡†·sX¨—€¸çÊŒ|ü7ß¡—ñ<§8ÐÄZ08¥k߆„Ý®:C æ4{,:Þã§÷w×WSµg•‡ç‹ÃŽUÃ㪁ÚèLµ­jÙ_üí‘·a»Œîù¼”¦~àn½x~H÷æ©Ríé *ÿÍR(.}ƒ-ŠŒ"'kÀKc*è0 at k4Â+y<O‹²¤ÑžUÛN7&n`\Ôô›à ^òN›†íÏ¿îÞÿº»{÷ïÛ7¾Ç±{Å`d¸K	Y…VëOÁ€.5ðýYC„§0Mâ? ÜýÀ)ºËÃê¾Ã‚DQ‡®”ñ<¯ÛiCiºMøÒFn––Y¼B·3øþ&íÒ}ÚªoÌ¿¥fX‚úÀ„×6-8ì¨vÏ„£ÎÀvu»»B轕 jÛºPQV2®ˆ¶«¬ºúxå™^þó¯Ú/XpsWÉÕ}õøo—6ÖÚfbî;|p\P ÞKˆD?t†·Å±o”}xøXñ E¸}J«s©æ”Òϱ)ò)Ä,U5`ßÙôÝ/EŸH¶nF_)PÇg‡¡J´û©hû´,þxIǺ?—ºã 
-ä
-ê³"ŸÊ‘¼	€µã-…ãBõñ€¾‡’Ö¬’uYr;9a“¸c÷|†åÂ'xâ`äÕ6ðLú¾<4[>‰¨f€1¶ßâ…
-¤?ßzX<š`VÔK6S»àøV²‘=Òn_”ùèìõß¡¼ì¤²‡{öï^ñ.÷¯~‘‘Ýèb·àÙ>ʆñWò+˜—ÜÖök0«L>öªÅîgÐʵØܪÜ0aJr ÒMOêtå4"j1†•QmÁEâ[2¾41ðN}y<é’‡ÄØèÅ)m/ÕÐ+N/<6†û…œ4xTéSQõ	øDHn5°ö
-ˆÞÅÖ ±3Óε§˜f~©°À`8N 
-z¤jOs¬#+´¶™ñÞZ¨u<±YM¿ðÈÆ
-¼p:~ÂDñI˜pÎF¶±ÆõI¤’¤Õ‡Ž2
-ëœÓì!=ò„ZG´ÁUˆGcxÅÖ±`êÀÍ4-7êE÷âhJ†Î˜‡¹¼ðÑ‚½ðrº¼(z-˜|
-¢ñù`#&°5…ô²‰œrü®!‰Âèà&Q
-/”ŽDÐ߆$4y´×áÐOMçØð7ºoÍk&¶/kb´ï¹‰G’Œ.…d%ûÁÁü€Ø1“Ébd#YÙòbG\GÚ#pÆd¼~q|‡’_SòcѪ¡7»W•w´’½–…m̝ÝÑ
-ù–#`”–­ÁD ys±-/Єv§¡Ÿ¯hJw-ßcCeŠ½ætÑ_	èÊp̐‘x÷¥INòL³/Ø“2]»ßÆÞÂÞüvx	Æ?-äqxmk£ÛqÁ²‰
-Ž‚7<ê•"ÕéÎVFæ´XÁK»k]ê6¦µ°UêRy€úò÷ŽÅëë/¬^Ü)¬7”~™ª5Ô²a;?[Ë"AÃÓ_ërïÀU‡¾œ#ˆ•«2­ÿ+A=«ü/.`@©èl©70¤£.§‰“–úE?Óöö¤ÅØ4[8›†þ0ö«ÿÆ{p
+xڝXÛrã6}÷W¨òDUY4Að¦lm¥’ŒgãÔf2›Qž6)EB×$¡áelçë·ÝàE¦3“؍Fã qº¡ïvW7o£dµu·‘­v‡Uì¯b™¬vùê¿Î÷?|û~wûËz㇞#Ýõ&Œ<ç§Û?ä_·ïnùv-„pvw?¿[ÿ¾ûñæmLŒ‘t=±]yd/&•XNT6L\!üÕƏA(I³J;ÕiÙÞŠR-XN7Šbk¸hÁ£H8ÝIQ£î«½j¨­ƒÖ8õšõÔڝOk:ªyfQ©*UwlýëõFJßIkêu§PûhjÒúXÔGìøΡщ/¯Ùµ}¥sU¶¸©Õ&ŠÜ8\m„p·aH›Ñ5Á«ÒìD­²¨•»„ÓDÓCwÐìC£Ô}Û7‡4S¯'¼È¦ØIO<Òóß<Ï/	sÕfM±7»Â1V’ŽÊª% X±‚ÒL÷mWd¬^‘][Æy9 at 5 퉡žØ¸ˆÁ)	Ü(‘K@|°¡4ž7mGRízP`Uš"lIdC̠ށdl:°‘À—Tk8Õ–D"3ïÍ0 ÇCOsÍŽ½ù^S•Â9ë‚œ¡ããÇãø…1—ðEÔÀ `5ZäÖA)&J{/Ð9¢¹ƒRŒ‹t§‚m0".Õ݁¤Ïº§F®íª5Áš{‹k]ÏvÑÎÿ×Ó‰zιç†G{QaozþíÒ¤ûV7埽92rƒ$™ñN`1††½;؞ޝ™ßlŽ£Âàu÷º¯ó´)ì$ä!/ÕÑHÚÑ="pÃX̃Ǹ9ªM+n¥“!³] Õi2pý‘¾¿ŒZ„S@lC ½pvp'D°ò}®:•u…®ï³¾ùôúJ[Ïõ“Æ2]wiQÃv`€î	·§ç€}ƒ6€¿ÔgÃ@H}«rRà»xŠØú®Ü¹§Õ}xÔxå}§-B.odä¹q]\í:_Z%v?°‹4*û¢„º¡Ñßqè|8é¾Ì1h –}1Pkn Nå°})ãŽë&7rêe¥Î‹V±Ñw_‡ÌסE1ða‹Áü.þÆ^
+µÕ½§ë?ÐHip¬¨!‡·sXÈ—€¸çÊŒ|ü7ß¡–ñ<§8Ðb-hœÒµoCÂ.W! sê=¯ñÓû»ë‹ÉÕÀTíYeÅáùb³cÖð8k@ 6:Sm«ZöW ¿@ùE$ÅeØn £{>/]S?p·^<ߤ{óT©ötP•ÿf)—æa™"£ÈÉS›’:4еðXOEÆÝÇ¢,©µgնӍ‰h5}óâäÏK{€'°¡ûó¯»÷¿îîßÞýûöÃÍ‚ïqìÆÞ@3îÒ%‚›…VëOÁ€J5ðýYQ„»0…â? äýÀ)ºËÍê¾Ã¤D‘‡®”ñün·Ó¢ÒTœô¥Þ,-1º¸7„ŠgðýMÚ¥û´Uߘ¿¥‚X‚úÀ†×öjpèQþž]Ž<ÛÕíî
+¡÷VèmëBVYÉ@¸"Ú®²êêã•gêEøç¯Ú,¸¹«äꍾúüÛ¡µ¶™˜û´èƒ÷"Ñíámqìe>f=(nŸÒê\ªù-JéslŠ|
+1KU
+Øwö
+ï—¢O$[7	£/‹HŠãÓÃÐ%ÚýT´}Z¼¤ŠcÝŸKÝq€r9Z‘O)ÁƒƒƒHÞÀÜñ–ŒÂv!yÀPßCZkÖ@˺,¹¤œ0ÊG\±{¾ Ãòá<s0òjxæú¾Ü\>í‰èf€1¶óñÂÒŸ/=ŒNNÐ+ê)›©]ð|+ÙÈ©·/Ê|töúïÒ^vRÙÃ=ûx¯x¥ûW X$Bd8:Üm ˜¶†º¡ý•üŠæE·µu4Æl½j±ŠÁ”tí¹*7‰L˜ÔH vS›zÕ9µˆ^Œae[”cp8›Œ1uÄS_Oºä&±6zqJÛK5ôJ£ÓŽáŒá^<ªô©¨úŠ¼#$¸Ç˜ë	dïb‰ŠØ™içŠÊTƒ
+LÑ _J.Ðöƒ(")ëSs	HÁ
+­-j ½·jÝOlVÓÛ˜‰vÇO™(ž 	¾·‘-°q|­$iõ¡£MÃ:ç4{HÜ¡mð¯ñhOn2†v,˜>p1MÍ:C⽘ÅiÃÐóP(—>Z°^P—E¯sgƒh|F؈	lžG!½p"§ç5$Qü²Ñ$Já¥Ò‘êܐ„æí5B8ÔUÃ9þî[óª‰íï&0bMŒö=7ñH’Ñá£.YÉ~p0? ¶AÌ„²ÙÅHX6ÅØGç’¶Àœ±_ìߣä×” A4āj(ήUAö­äCý‚©asgwtB¾åh¥ek0hÞlËôÐî4Ôõu鬅ã{l¨L±æœú‹aâ#á ]΁2ðºÔ© éÀNž©7âkÒ
+A×.ƒÀ·±·°6¿!^‚ñOy^Û|Çèvœ´,Gb‘£àmãz%Quº³Ù‘ù -VðâîZ—*Ži>l•ºT ¾|dã¹cûú3WëMé[&k
+¹lXÎÅÏæ²ÈFÐð€Öå<ށ«}9G3WeÊÿW‚z–ý_À€RÑÙtoª`¸Žºœ^œ´Ô/jš¶Ï°.-ÆÂÙÂÙ4ô»ÀX³þþ@
 endstream
 endobj
 498 0 obj <<
@@ -9524,26 +9524,24 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 512 0 obj <<
-/Length 2051      
+/Length 2054      
 /Filter /FlateDecode
 >>
 stream
 xÚ¥Xmoã¸þž_!Ü'»ˆJÔë~ÛÛ ÅÝ5½õá>t‹@±h›XIÔêe÷×w†CÊ’­l·-DÔˆ‡Ï<3㟷7wCáœÅqyÛ½—^,"&üÔÛÞ?VïŽyÓËv½	"¾
-×ÿÜþ•V„,IWpof,õCZðûPת>Ђþ(iðI—ßÖ>_9M/]#w{Yï­ÊÐËX±Õù,åiÜ®S¾Ò´®ê͝ѡ搯ní×S#ߐæ8™h³3žxD(Aõìî»Ælfk¬I=˜#¸5ÆT¹²¢‰aæý3øÐÉ«|Npn£¼jê½6E¤,"7M[½òë ÖA´ú†ÿòRÖ=ÉÕžž'=Ð`§As)z{Vý‘FMÞæe)KköÐ4ºíÁZŸ­7aÌWÛ£êÜšÒÎÒCßýÅÙ;©º
-Ú
-Ί8K|ôšÏ²Èz­Ò‡6¯@W«¼.hÐÕyÓuoåzOOº`<#nòuÀWäN’î[]»%yOÏŽ>ØËÖ8ÁhQ•]Ðõ²±óñ†h~+w½nOw"Àp.œ¯ÿöÇöáíãÇû_>|º[¸™$a	OÝlð›ã3na«oªòRýKŽ‡«nÉS"MY"Ò¹§¿03ðW?-¡X°|kw;À©bðþÌÆop0£ßØFQ êYÚý‹ù±,I½‰˜®æ',#6"«ÿA€7nͤÛɃîúnת¦§Ÿ9JÙÑGã|øð|T»#‰íbéªÍ*Ȳ )ʪjeÓÊîYÚ„gcTp¶0Œc–&ÙܹyÛjÄÉs‡l&¸Tq«PÜ]•÷»#Ѽ)ئÝãvæ, ³ûÁ(§GúBÃFÕvTªZÚ]ð8ÿ©ÓíÓ¨\‡Ñyh¥¬I*Åø´SÞ%¨„aÈx6BEU
-9ÆÊÉ/ñÈU•$!ˆ',ÊB¸DPâMÄì x
-!ÀkæÏYEA±A4U"µ™–ìÛ‘®<‡dGF½´`x¤Œ¬7_
-Ÿà³¾Ø
-ag;ív¯˜ŠÜB	ÓpŽ £bš„€MöµÍ~Ýnh¥ÍV…ld]ŒISÛ÷|4ÄY
-ÇÁñjN–êÒn²w;Œ–9¢Æ±ª—ˆNd,ǬòþíöíÝCÞ>î!U¼Æt# (KÀ¬›Û¼bîùx*È`áíª›¯7œQ%ΘŽÍÇ(6b/ÌFáÝ}zïõÍßáÏéõØ…™[ô?hŒ–5úÿ‡ÊøR%ð9„ˆ¡n8ŸÿgSgÍÜxAÆ·ˆú¨€‡õ&‰ýUÈü7k ž«?1…Lî|DΛ$ÎÄ&N›«ÇA!‰²†²§u¼äUSÚYË67èÁקÅD(|ðøn©'L ™Ø©ÏGä+Ô‹F%±Š¼V¿YÆ8/Ì öÑPÁãHE—™É猧c4™ÁD„…;PÌÂqðRFYß’-•ZTdçi–(ÀR`M ´ µòC)óÎÛNם*ä9݇½.Ë)y!hÈ*Ý­uYîBù|®%ß'nMÍ0©I?}­7‘-È«ÀԏÆy
-pNT_¢Ž›(SMmÜébʆºýҝi°v\7RÙ.·ªç$ÕŸukÇY0¶=ÑK¥…Úvy¯Kö¶3èe×/YD7ǃxúžÃ`Ef*XW¥^{¸/}½$tÔ¸\i%³J«“•ùb2£½äò2 „˦
-òÖ¬(šqüöÓ»û{ž«.x±w•ü9Ӂ‚k¨ê¨F©+”An
-4xŽNAe-9×®²NM#5¾-"¨Á‹ÃT?8L¨«¾MB´·£´•¼äyÒùÖG¤<ÙÏc1]\‚q†–^ëòt¥úbºÐÛ‹t©ê®ÏëÕ¿TH‰ÌgbRIÕCSê~á®BèåBq®vl¹$ø¯á[5?ËÈN?K‰ÃP‚¥i~X°'† Ý6yשCý(_€dë¼|„@‘åePËñ‘22cIýg‚„$†ÅÊb¦è¿«+ð~¸… úƒ¸§Ô;ÕŸÈ1gø©À¹N:žòŠŸB—\ôUTRñ²</¹
-D4EX¨‚@LÃ@ï—Ž™™òøGÏ	^Ù,gâþè6‡k„0°ûåãÆhŸÍ Ï­ê{š.0e;ÖV“ã	$™ûn¦ÖùÎf·82¾lÙÑ¡6(¯ÊÑB·âÊÑýwŠM_„¦š¶Ç‡
-Z™ز}Æ—~‡ñCHÝÑ«nShœØß9(‰ÆéHÉêÚ¸’†
-B¿G”%M@ \Š{?ÊD¯³x‘6 SbÇýt»ån)вˆÅá¬çýº±i¬2im%`4†ž0oO4~øíWšhªŸŽ„…êš2?áÑÌ•A×Çb_Ìø›£ B$Î^õ(þ¬Y£Ðô¬±ÃÁ¼AÉï¿Ð`ÒÛâ+R¼ÂCwôn²Ue»v#¨éI¿!Åü²'%…ýx’=ׇœ
-c+5÷Gk¡Å*Mýel©­È„Ô͹ãN .ÍOF¦¨P`µÕ˜±h}QD"HVïÀí½®7êÃ×Aa2Ä9æ'8x~ÒU%Û½©Ìñ]~rwjxÅì"óLBá~NCyGÊu]žHòdŸeŽm¿ÙbÎÏ·ø»RB÷¢Ù5˜j‚x€­‹:_꺳¢p¤]
+×ÿÜþ•V„,IWpof,õCZðûPת>Ђþ(iðI—ßÖ>_9M/]#w{Yï­ÊÐËX±Õù,åiÜ®S¾Ò´®ê͝ѡ搯ní×S#ߐæ8™h³3žxD(AõìîIÕwß5h3[gÍêÁ$Á­I80&á Ê•MŒ3ïŸyćN.Xæûpâ8€³åU£Pïµ)"ei¹iÚê•_µ¢Õ7ü——²îI®öô<é;
+šKYÐÛ³ê4jò6/KYZ³‡¦ÑmÖúl½	c¾ÚUçÖ”v–úfè/ÎÞIÕmÐnpVÄYâ£×|–EÖk•>´yº‚8XåuAƒ®Î›î¨{+×{zÒ%Ã౓¯¾"w’tßêÚ-É{zpdðÁ^¶Æ	F‹ªì‚®—7Dó[¹ëu{Z¸†sá|ý·?¶l?ÞÿòáÓÝÂÍ$	KxêfƒßDŸ±[}Sݐ—ê_r<\uKžiÊ‘Î=…†™¿úi	É‚…à[»ÛNƒ÷g6~ƒƒý>À6ŠPϒІé_Ì—ˆeIêMÄüs}4?a™±ùY…ø¼qk&ÝHt×w»V5=}øÌyPÊŽ>bçÇç£ÚIlûKWmVñ@–MQVU+›VvpÏÒ~ <£*€³…a³4ÉæÎÍÛV#Nž;dŒ0Á
+Ä Š;ˆX…Úà߉ÊàMÁ6íÞ·3g™ÝF9=z8Ð6ª¶£RÕÒîB€ÇùOnŸFå²8üˆÎC+eMšP)Ƨêô.A%CƳ*ªjÈ1VN~‰@®ªü 	A<aQ–‚Ä%‚o"fˆÀk^3† È"(rŠ" ©©Í|´Ô`ߎtmä9$;z4êÅ ë ed½ùjøŸõ…Àn;Øi·{ÕÀTäBHX˜†sÓD´ Üh
+܈°¯mDèvC+mÆ*d#ëbLœÚ¦¹ç£!¶ÈR8ŽW{t²„P—v“½Ûa´Ì5ŽU½Dt"cA8f•÷o·oïòöq©â5¦EYfÝ|ØÞàsÏ÷ÐÀSA soWÝ|½á,ˆ(pÆtl>F±{a6
+ïî«Ð{¯oþN¯Æ,ÌÜ¢ÿAc´¬Ñÿ?TÆ—*Ï! DuÃùü?›ZkæÆÀÈ0¾EÔGu <¬7Iì¯Bæ¿Yð„Xý‰)drç#¢pÞ$q&6q¢Ø\=
+I”5”=͐¨ã%¯šÒÎ8ÈZ¶¹A¾>-&Bá³x„ÇwK¥8aÈÄN}>"_¡^,0*‰•äµúÈ2Æy|`µ†
+G*ºÌL>g<ó É&",܁bŽƒ—2ÚÈúvl©ÔŠ ";O³\@–k¡©-’J™w6ØvºîT!Ï1è>ìuYNÉ9 at CVén]¨Ëz,rJès-ù†8pkj†IMúèk½‰lA¶X5 ¦~4ÎS€sÚ ú
+pÜD™jjãNS6Ôí—îLƒµãº‘Êv¹U58'©þ¬[;΂Y°í‰^*](Ô¶Ë{åX²·ÝA/»~É"º9.ÄÓ÷+2SÁº*õÚƒÀ}éë%¡£ÆåJ+™UZ¬Ì“ýë%——%\6U·Î`Eь㷟ÞÝßÓð\uÁ‹½+¨äÏ™Ä\CUw at 5"H]¡rS Ást
+*kɹv•uj±h¬ñmAÕ^¦úÁaB]õn¢¥¸¥­„ä%ϓη>"åÉ~‹éâŒ3´ôZ— +ÕÓ‰Þ^¤KUw}^ï¬þ¥BJd>“JªšR÷wB/ŠsµcË- ÑÀ
+تùYFvúYJ†,MóÂ=1ô Aè¶É»NêGù$[çå#Š,—(3€ZŽ”¹ÈK‚ì?$$ùs0,V3Eÿ]]÷Ã-ÑÄ=¥Þ©þDŽ18ÃO…ÎuÒñܐWüº¤à¢¯¢’Š‡”-àyÉm ¢)ÂBÒ`z¿tÌÌ”Ç?zNðŠÈf9÷G·9\#„Ý/7FûlxnUßÓt)Û)°¶šO0 ÉÜw3µÎw6»eÀ‘ñeËŽµAyUŽ’¸}·PŽî¿Slú"4Õ´=>T(ÐÊ\À–í3¾ô;ŒBêŽ^åp›BãÄþÎAI4NGúKV÷ÐÆ•4Tú=¢,	láRÜûQÆ zÅˆ´™;î§Ø-wK–E,g=è׍M[`•I[hl+¡ £1ô„y{¢ñÃo¿ÒDSýt$,T×”ù	f®º>ûbÎÀ?Ø”"qöªGñgÈ…¦gæ]J~ý…“Þ_‘⺣w“­*ÛµAMOú
+)æ—½8))ìÇ“ì¸>äT[©¹?Z-Viê/cKm@&¤nÎwpi~22E…»¨­Æ„ˆEë‹Â A²znïu½ùP¾
+“!Î1?ÁÁó“®*ÙîMeŽïò됻SÃ+f™`z
+÷sÊ;R®ëòD’'û,slûÍûs~¾Åß•ºÍ®ÁTàÀl=X”ÐùRםý[¥Å
 endstream
 endobj
 511 0 obj <<
@@ -15355,10 +15353,10 @@
 >> endobj
 669 0 obj <<
 /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords()
-/CreationDate (D:20110215181538+01'00')
-/ModDate (D:20110215181538+01'00')
+/CreationDate (D:20110228173318-05'00')
+/ModDate (D:20110228173318-05'00')
 /Trapped /False
-/PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6)
+/PTEX.Fullbanner (This is pdfTeX, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6)
 >> endobj
 xref
 0 670
@@ -15369,55 +15367,55 @@
 0000000000 00000 f 
 0000000015 00000 n 
 0000458529 00000 n 
-0001413926 00000 n 
+0001413979 00000 n 
 0000000060 00000 n 
 0000000092 00000 n 
 0000470843 00000 n 
-0001413854 00000 n 
+0001413907 00000 n 
 0000000139 00000 n 
 0000000170 00000 n 
 0000470899 00000 n 
-0001413781 00000 n 
+0001413834 00000 n 
 0000000218 00000 n 
 0000000248 00000 n 
-0000474259 00000 n 
-0001413694 00000 n 
+0000474306 00000 n 
+0001413747 00000 n 
 0000000294 00000 n 
 0000000330 00000 n 
-0000836156 00000 n 
-0001413569 00000 n 
+0000836203 00000 n 
+0001413622 00000 n 
 0000000376 00000 n 
 0000000412 00000 n 
-0000836208 00000 n 
-0001413495 00000 n 
+0000836255 00000 n 
+0001413548 00000 n 
 0000000460 00000 n 
 0000000503 00000 n 
-0000905092 00000 n 
-0001413421 00000 n 
+0000905142 00000 n 
+0001413474 00000 n 
 0000000551 00000 n 
 0000000617 00000 n 
-0001257733 00000 n 
-0001413296 00000 n 
+0001257786 00000 n 
+0001413349 00000 n 
 0000000663 00000 n 
 0000000713 00000 n 
-0001272496 00000 n 
-0001413222 00000 n 
+0001272549 00000 n 
+0001413275 00000 n 
 0000000761 00000 n 
 0000000835 00000 n 
-0001280872 00000 n 
-0001413148 00000 n 
+0001280925 00000 n 
+0001413201 00000 n 
 0000000883 00000 n 
 0000000931 00000 n 
-0001284463 00000 n 
-0001413023 00000 n 
+0001284516 00000 n 
+0001413076 00000 n 
 0000000977 00000 n 
 0000001017 00000 n 
-0001284515 00000 n 
-0001412962 00000 n 
+0001284568 00000 n 
+0001413015 00000 n 
 0000001065 00000 n 
 0000001128 00000 n 
-0001308229 00000 n 
-0001412887 00000 n 
+0001308282 00000 n 
+0001412940 00000 n 
 0000001175 00000 n 
 0000001211 00000 n 
 0000001403 00000 n 
@@ -15426,7 +15424,7 @@
 0000001262 00000 n 
 0000430123 00000 n 
 0000430174 00000 n 
-0001412270 00000 n 
+0001412323 00000 n 
 0000005004 00000 n 
 0000005195 00000 n 
 0000005242 00000 n 
@@ -15556,8 +15554,8 @@
 0000430741 00000 n 
 0000430630 00000 n 
 0000430292 00000 n 
-0001411564 00000 n 
-0001411737 00000 n 
+0001411617 00000 n 
+0001411790 00000 n 
 0000431704 00000 n 
 0000431536 00000 n 
 0000430826 00000 n 
@@ -15706,65 +15704,65 @@
 0000438086 00000 n 
 0000434859 00000 n 
 0000458476 00000 n 
-0001411393 00000 n 
+0001411446 00000 n 
 0000439706 00000 n 
 0000440092 00000 n 
 0000442936 00000 n 
 0000448970 00000 n 
 0000450040 00000 n 
-0001410795 00000 n 
+0001410848 00000 n 
 0000452048 00000 n 
 0000455485 00000 n 
 0000456580 00000 n 
-0001292047 00000 n 
-0001292230 00000 n 
-0001301212 00000 n 
-0001292290 00000 n 
-0001301456 00000 n 
-0001301151 00000 n 
-0001306521 00000 n 
-0001291621 00000 n 
-0001305793 00000 n 
-0001291743 00000 n 
-0001296489 00000 n 
-0001296672 00000 n 
-0001295940 00000 n 
-0001296550 00000 n 
-0001305854 00000 n 
-0001301822 00000 n 
-0001296611 00000 n 
-0001291682 00000 n 
-0001291986 00000 n 
-0001296367 00000 n 
-0001296184 00000 n 
-0001296245 00000 n 
-0001296123 00000 n 
-0001296428 00000 n 
-0001305671 00000 n 
-0001301639 00000 n 
-0001306036 00000 n 
-0001296306 00000 n 
-0001296001 00000 n 
-0001296062 00000 n 
-0001305975 00000 n 
-0001296794 00000 n 
-0001297038 00000 n 
-0001306400 00000 n 
-0001300847 00000 n 
-0001292108 00000 n 
-0001301091 00000 n 
-0001300908 00000 n 
-0001300969 00000 n 
-0001296733 00000 n 
-0001306582 00000 n 
-0001306278 00000 n 
-0001296977 00000 n 
-0001301761 00000 n 
-0001291803 00000 n 
-0001291864 00000 n 
-0001306158 00000 n 
-0001300786 00000 n 
-0001301273 00000 n 
+0001292100 00000 n 
+0001292283 00000 n 
+0001301265 00000 n 
+0001292343 00000 n 
+0001301509 00000 n 
+0001301204 00000 n 
+0001306574 00000 n 
+0001291674 00000 n 
+0001305846 00000 n 
+0001291796 00000 n 
+0001296542 00000 n 
+0001296725 00000 n 
+0001295993 00000 n 
+0001296603 00000 n 
+0001305907 00000 n 
+0001301875 00000 n 
+0001296664 00000 n 
+0001291735 00000 n 
+0001292039 00000 n 
+0001296420 00000 n 
+0001296237 00000 n 
+0001296298 00000 n 
+0001296176 00000 n 
+0001296481 00000 n 
+0001305724 00000 n 
+0001301692 00000 n 
+0001306089 00000 n 
+0001296359 00000 n 
+0001296054 00000 n 
+0001296115 00000 n 
+0001306028 00000 n 
+0001296847 00000 n 
+0001297091 00000 n 
+0001306453 00000 n 
+0001300900 00000 n 
+0001292161 00000 n 
+0001301144 00000 n 
+0001300961 00000 n 
+0001301022 00000 n 
+0001296786 00000 n 
+0001306635 00000 n 
+0001306331 00000 n 
+0001297030 00000 n 
+0001301814 00000 n 
+0001291856 00000 n 
+0001291917 00000 n 
+0001306211 00000 n 
+0001300839 00000 n 
+0001301326 00000 n 
 0000462568 00000 n 
 0000462875 00000 n 
 0000463029 00000 n 
@@ -15818,225 +15816,225 @@
 0000460702 00000 n 
 0000458691 00000 n 
 0000470790 00000 n 
-0001412087 00000 n 
+0001412140 00000 n 
 0000461938 00000 n 
 0000462722 00000 n 
 0000464135 00000 n 
 0000469356 00000 n 
-0001301334 00000 n 
-0001301395 00000 n 
-0001292169 00000 n 
-0001306097 00000 n 
-0001296916 00000 n 
-0001296855 00000 n 
-0001292351 00000 n 
-0001306339 00000 n 
-0001305915 00000 n 
-0001306461 00000 n 
-0001301030 00000 n 
-0001301578 00000 n 
-0001305549 00000 n 
-0001301517 00000 n 
-0001305610 00000 n 
-0001301700 00000 n 
-0000473305 00000 n 
-0000473458 00000 n 
-0000473612 00000 n 
-0000473800 00000 n 
-0000474311 00000 n 
-0000473141 00000 n 
+0001301387 00000 n 
+0001301448 00000 n 
+0001292222 00000 n 
+0001306150 00000 n 
+0001296969 00000 n 
+0001296908 00000 n 
+0001292404 00000 n 
+0001306392 00000 n 
+0001305968 00000 n 
+0001306514 00000 n 
+0001301083 00000 n 
+0001301631 00000 n 
+0001305602 00000 n 
+0001301570 00000 n 
+0001305663 00000 n 
+0001301753 00000 n 
+0000473352 00000 n 
+0000473505 00000 n 
+0000473659 00000 n 
+0000473847 00000 n 
+0000474358 00000 n 
+0000473188 00000 n 
 0000471066 00000 n 
-0000474206 00000 n 
-0000474004 00000 n 
-0001412385 00000 n 
-0001305732 00000 n 
-0000476187 00000 n 
-0000835915 00000 n 
-0000836326 00000 n 
-0000476055 00000 n 
-0000474409 00000 n 
-0000836103 00000 n 
-0000836264 00000 n 
-0001411222 00000 n 
-0000838747 00000 n 
-0000905148 00000 n 
-0000838635 00000 n 
-0000836473 00000 n 
-0000904979 00000 n 
-0000905032 00000 n 
-0000902963 00000 n 
-0000903225 00000 n 
-0000904403 00000 n 
-0000904426 00000 n 
-0000904614 00000 n 
-0000907544 00000 n 
-0000986303 00000 n 
-0001099326 00000 n 
-0001257846 00000 n 
-0000907432 00000 n 
-0000905300 00000 n 
-0001257680 00000 n 
-0001257785 00000 n 
-0001261286 00000 n 
-0001261483 00000 n 
-0001261641 00000 n 
-0001261799 00000 n 
-0001261952 00000 n 
-0001262107 00000 n 
-0001262259 00000 n 
-0001262414 00000 n 
-0001262569 00000 n 
-0001265056 00000 n 
+0000474253 00000 n 
+0000474051 00000 n 
+0001412438 00000 n 
+0001305785 00000 n 
+0000476234 00000 n 
+0000835962 00000 n 
+0000836373 00000 n 
+0000476102 00000 n 
+0000474456 00000 n 
+0000836150 00000 n 
+0000836311 00000 n 
+0001411275 00000 n 
+0000838797 00000 n 
+0000905198 00000 n 
+0000838685 00000 n 
+0000836520 00000 n 
+0000905029 00000 n 
+0000905082 00000 n 
+0000903013 00000 n 
+0000903275 00000 n 
+0000904453 00000 n 
+0000904476 00000 n 
+0000904664 00000 n 
+0000907597 00000 n 
+0000986356 00000 n 
+0001099379 00000 n 
+0001257899 00000 n 
+0000907485 00000 n 
+0000905350 00000 n 
+0001257733 00000 n 
+0001257838 00000 n 
+0001261339 00000 n 
+0001261536 00000 n 
+0001261694 00000 n 
+0001261852 00000 n 
+0001262005 00000 n 
+0001262160 00000 n 
+0001262312 00000 n 
+0001262467 00000 n 
+0001262622 00000 n 
+0001265109 00000 n 
+0001262838 00000 n 
+0001261143 00000 n 
+0001258059 00000 n 
 0001262785 00000 n 
-0001261090 00000 n 
-0001258006 00000 n 
-0001262732 00000 n 
-0001410939 00000 n 
-0001291925 00000 n 
+0001410992 00000 n 
+0001291978 00000 n 
+0001272373 00000 n 
+0001272008 00000 n 
+0001272164 00000 n 
+0001272605 00000 n 
+0001264969 00000 n 
+0001262974 00000 n 
 0001272320 00000 n 
-0001271955 00000 n 
-0001272111 00000 n 
-0001272552 00000 n 
-0001264916 00000 n 
-0001262921 00000 n 
-0001272267 00000 n 
-0001411081 00000 n 
-0001272382 00000 n 
-0001272439 00000 n 
-0001269185 00000 n 
-0001269396 00000 n 
-0001269452 00000 n 
-0001269846 00000 n 
-0001269868 00000 n 
-0001270149 00000 n 
-0001306218 00000 n 
-0001280511 00000 n 
-0001280665 00000 n 
-0001275120 00000 n 
-0001280985 00000 n 
-0001274980 00000 n 
-0001272729 00000 n 
-0001280819 00000 n 
-0001280924 00000 n 
-0001412502 00000 n 
-0001280242 00000 n 
-0001280442 00000 n 
-0001280489 00000 n 
-0001282057 00000 n 
-0001282211 00000 n 
+0001411134 00000 n 
+0001272435 00000 n 
+0001272492 00000 n 
+0001269238 00000 n 
+0001269449 00000 n 
+0001269505 00000 n 
+0001269899 00000 n 
+0001269921 00000 n 
+0001270202 00000 n 
+0001306271 00000 n 
+0001280564 00000 n 
+0001280718 00000 n 
+0001275173 00000 n 
+0001281038 00000 n 
+0001275033 00000 n 
+0001272782 00000 n 
+0001280872 00000 n 
+0001280977 00000 n 
+0001412555 00000 n 
+0001280295 00000 n 
+0001280495 00000 n 
+0001280542 00000 n 
+0001282110 00000 n 
+0001282264 00000 n 
+0001282469 00000 n 
+0001281970 00000 n 
+0001281177 00000 n 
 0001282416 00000 n 
-0001281917 00000 n 
-0001281124 00000 n 
-0001282363 00000 n 
-0001284571 00000 n 
-0001284298 00000 n 
-0001282514 00000 n 
-0001284410 00000 n 
-0001285730 00000 n 
-0001285508 00000 n 
-0001284669 00000 n 
-0001285620 00000 n 
+0001284624 00000 n 
+0001284351 00000 n 
+0001282567 00000 n 
+0001284463 00000 n 
+0001285783 00000 n 
+0001285561 00000 n 
+0001284722 00000 n 
 0001285673 00000 n 
-0001286994 00000 n 
-0001287332 00000 n 
-0001287613 00000 n 
-0001286846 00000 n 
-0001285841 00000 n 
-0001287503 00000 n 
+0001285726 00000 n 
+0001287047 00000 n 
+0001287385 00000 n 
+0001287666 00000 n 
+0001286899 00000 n 
+0001285894 00000 n 
 0001287556 00000 n 
-0001287164 00000 n 
-0001288284 00000 n 
-0001288062 00000 n 
-0001287711 00000 n 
-0001288174 00000 n 
+0001287609 00000 n 
+0001287217 00000 n 
+0001288337 00000 n 
+0001288115 00000 n 
+0001287764 00000 n 
 0001288227 00000 n 
-0001292412 00000 n 
-0001291399 00000 n 
-0001288369 00000 n 
-0001291511 00000 n 
+0001288280 00000 n 
+0001292465 00000 n 
+0001291452 00000 n 
+0001288422 00000 n 
 0001291564 00000 n 
-0001411910 00000 n 
-0001412619 00000 n 
-0001297099 00000 n 
-0001295775 00000 n 
-0001292510 00000 n 
-0001295887 00000 n 
-0001301882 00000 n 
-0001300621 00000 n 
-0001297197 00000 n 
-0001300733 00000 n 
-0001306643 00000 n 
-0001305384 00000 n 
-0001301980 00000 n 
-0001305496 00000 n 
-0001308338 00000 n 
-0001308064 00000 n 
-0001306741 00000 n 
-0001308176 00000 n 
-0001308281 00000 n 
-0001410230 00000 n 
-0001308436 00000 n 
-0001309332 00000 n 
-0001309373 00000 n 
-0001309484 00000 n 
-0001309599 00000 n 
-0001309794 00000 n 
-0001310153 00000 n 
-0001310520 00000 n 
-0001311494 00000 n 
-0001311971 00000 n 
-0001314235 00000 n 
-0001314468 00000 n 
-0001316720 00000 n 
-0001316962 00000 n 
-0001318400 00000 n 
-0001318639 00000 n 
-0001327337 00000 n 
-0001327611 00000 n 
-0001344587 00000 n 
-0001345045 00000 n 
-0001360947 00000 n 
-0001361387 00000 n 
-0001381741 00000 n 
-0001382400 00000 n 
-0001393549 00000 n 
-0001393866 00000 n 
-0001409789 00000 n 
-0001412728 00000 n 
-0001412813 00000 n 
-0001414035 00000 n 
-0001414225 00000 n 
-0001414409 00000 n 
-0001414632 00000 n 
-0001414868 00000 n 
-0001415079 00000 n 
-0001415293 00000 n 
-0001415528 00000 n 
-0001415742 00000 n 
-0001415965 00000 n 
-0001416185 00000 n 
-0001416389 00000 n 
-0001416614 00000 n 
-0001416840 00000 n 
-0001417042 00000 n 
-0001417209 00000 n 
-0001417377 00000 n 
-0001417542 00000 n 
-0001417720 00000 n 
-0001417915 00000 n 
-0001418048 00000 n 
-0001418165 00000 n 
-0001418294 00000 n 
-0001418412 00000 n 
-0001418496 00000 n 
-0001418595 00000 n 
-0001418633 00000 n 
-0001418843 00000 n 
+0001291617 00000 n 
+0001411963 00000 n 
+0001412672 00000 n 
+0001297152 00000 n 
+0001295828 00000 n 
+0001292563 00000 n 
+0001295940 00000 n 
+0001301935 00000 n 
+0001300674 00000 n 
+0001297250 00000 n 
+0001300786 00000 n 
+0001306696 00000 n 
+0001305437 00000 n 
+0001302033 00000 n 
+0001305549 00000 n 
+0001308391 00000 n 
+0001308117 00000 n 
+0001306794 00000 n 
+0001308229 00000 n 
+0001308334 00000 n 
+0001410283 00000 n 
+0001308489 00000 n 
+0001309385 00000 n 
+0001309426 00000 n 
+0001309537 00000 n 
+0001309652 00000 n 
+0001309847 00000 n 
+0001310206 00000 n 
+0001310573 00000 n 
+0001311547 00000 n 
+0001312024 00000 n 
+0001314288 00000 n 
+0001314521 00000 n 
+0001316773 00000 n 
+0001317015 00000 n 
+0001318453 00000 n 
+0001318692 00000 n 
+0001327390 00000 n 
+0001327664 00000 n 
+0001344640 00000 n 
+0001345098 00000 n 
+0001361000 00000 n 
+0001361440 00000 n 
+0001381794 00000 n 
+0001382453 00000 n 
+0001393602 00000 n 
+0001393919 00000 n 
+0001409842 00000 n 
+0001412781 00000 n 
+0001412866 00000 n 
+0001414088 00000 n 
+0001414278 00000 n 
+0001414462 00000 n 
+0001414685 00000 n 
+0001414921 00000 n 
+0001415132 00000 n 
+0001415346 00000 n 
+0001415581 00000 n 
+0001415795 00000 n 
+0001416018 00000 n 
+0001416238 00000 n 
+0001416442 00000 n 
+0001416667 00000 n 
+0001416893 00000 n 
+0001417095 00000 n 
+0001417262 00000 n 
+0001417430 00000 n 
+0001417595 00000 n 
+0001417773 00000 n 
+0001417968 00000 n 
+0001418101 00000 n 
+0001418218 00000 n 
+0001418347 00000 n 
+0001418465 00000 n 
+0001418549 00000 n 
+0001418648 00000 n 
+0001418686 00000 n 
+0001418896 00000 n 
 trailer
 << /Size 670
 /Root 668 0 R
 /Info 669 0 R
-/ID [<0CCA2D3704ECF337E3C8FB98937C31C3> <0CCA2D3704ECF337E3C8FB98937C31C3>] >>
+/ID [<6BFAAD905DAA381A3187CC993C01344B> <6BFAAD905DAA381A3187CC993C01344B>] >>
 startxref
-1419174
+1419210
 %%EOF

Modified: seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.tex
===================================================================
--- seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.tex	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/doc/USER_MANUAL/manual_SPECFEM2D.tex	2011-02-28 22:43:18 UTC (rev 17989)
@@ -286,7 +286,7 @@
 \begin{lyxcode}
 make
 \end{lyxcode}
-to create all executables.
+to create all executables which will be placed into the folder \texttt{./bin/}. 
 
 
 
@@ -340,7 +340,7 @@
 \end{itemize}
 Then type
 \begin{lyxcode}
-./xmeshfem2D
+./bin/xmeshfem2D
 \end{lyxcode}
 to create the mesh (which will be stored in directory \texttt{OUTPUT\_FILES/}). \texttt{xmeshfem2D} is serial; it will output several files called \texttt{Database??????}, one for each process.
 
@@ -361,7 +361,7 @@
 
 To examine the quality of the elements in your externally build mesh, type
 \begin{lyxcode}
-./xcheck\_quality\_external\_mesh
+./bin/xcheck\_quality\_external\_mesh
 \end{lyxcode}
 (and answer "3" to the first question asked).
 This code will tell you which element in the whole mesh has the worst quality (maximum skewness, i.e. maximum deformation of the element angles) and it should be enough to modify this element with the external software package used for the meshing, and
@@ -384,7 +384,7 @@
 
 To run the solver, type:
 \begin{lyxcode}
-./xspecfem2D
+./bin/xspecfem2D
 \end{lyxcode}
 to run the main solver (use \texttt{mpirun} or equivalent if you compiled with parallel support). This will output the seismograms and snapshots of the wave fronts at different time steps in directory \texttt{OUTPUT\_FILES/}. To visualize them, type "\texttt{gs OUTPUT\_FILES/vect*.ps}" to see the Postscript files (in which the wave field is represented with small arrows, fluid/solid matching interfaces with a thick pink line, and absorbing edges with a thick green line) and "\texttt{gimp OUTPUT\_FILES/image*.gif}" to see the color snapshot showing a pixelized image of one of the two components of the wave field (or pressure, depending on what you have selected for the output in \texttt{DATA/Par\_file}).
 

Modified: seismo/2D/SPECFEM2D/trunk/src/get_MPI.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/get_MPI.F90	2011-02-28 21:55:11 UTC (rev 17988)
+++ seismo/2D/SPECFEM2D/trunk/src/get_MPI.F90	2011-02-28 22:43:18 UTC (rev 17989)
@@ -228,13 +228,15 @@
   deallocate(nibool_interfaces_true)
 
   ! outputs total number of MPI interface points
-  call MPI_ALLREDUCE(num_points2, num_points1, 1, MPI_INTEGER, &
-                    MPI_SUM, MPI_COMM_WORLD, ier)  
+  call MPI_REDUCE(num_points2, num_points1, 1, MPI_INTEGER, &
+                    MPI_SUM, 0, MPI_COMM_WORLD, ier)  
   if( myrank == 0 .and. ipass == 1 ) then
     write(IOUT,*) 'total MPI interface points: ',num_points1
   endif
 
   ! checks interfaces in acoustic domains
+  inum = 0
+  count = 0
   if ( ninterface_acoustic > 0) then
 
     ! checks with assembly of test fields
@@ -262,19 +264,24 @@
     allocate(tab_requests_send_recv_acoustic(ninterface_acoustic*2))
     allocate(buffer_send_faces_vector_ac(max_nibool_interfaces,ninterface_acoustic))
     allocate(buffer_recv_faces_vector_ac(max_nibool_interfaces,ninterface_acoustic))
-
     inum = 0
     do iinterface = 1, ninterface
       inum = inum + nibool_interfaces_acoustic(iinterface)
     enddo
+  endif
+  
+  ! note: this mpi reduction awaits information from all processes.
+  !          thus, avoid an mpi deadlock in case some of the paritions have no acoustic interface
+  call MPI_REDUCE(inum, num_points1, 1, MPI_INTEGER, &
+                    MPI_SUM, 0, MPI_COMM_WORLD, ier)  
 
-    call MPI_ALLREDUCE(inum, num_points2, 1, MPI_INTEGER, &
-                    MPI_SUM, MPI_COMM_WORLD, ier)  
-
-    if( myrank == 0 .and. ipass == 1 ) then
-      write(IOUT,*) '       acoustic interface points: ',num_points2
-    endif
+  if( myrank == 0 .and. ipass == 1 ) then
+    write(IOUT,*) '       acoustic interface points: ',num_points1
+  endif
   
+  ! checks if assembly works
+  inum = 0
+  if( ninterface_acoustic > 0 ) then
     ! adds contributions from different partitions to flag arrays
     ! custom_real arrays
     call assemble_MPI_vector_ac(test_flag_cr,npoin, &
@@ -285,34 +292,34 @@
                     buffer_recv_faces_vector_ac, my_neighbours)
 
     ! checks number of interface points
-    i = 0
+    inum = 0
     do iglob=1,npoin
       ! only counts flags with MPI contributions
-      if( test_flag_cr(iglob) > myrank+1.0_CUSTOM_REAL ) i = i + 1
+      if( nint(test_flag_cr(iglob)) > myrank+1 ) inum = inum + 1
     enddo
-    call MPI_ALLREDUCE(inum, iglob, 1, MPI_INTEGER, &
-                    MPI_SUM, MPI_COMM_WORLD, ier)  
-  
-    if( myrank == 0 .and. ipass == 1 ) then
-      write(IOUT,*) '       assembled acoustic MPI interface points:',iglob
-    endif
-    if( num_points2 /= iglob ) then
-      print*,'error assembly:',myrank
-      print*,'  count = ',count
-      print*,'  inum = ',inum
-      print*,'  i = ',i
-      print*,' total: ',num_points2,' not equal to assembled ',iglob
-      call exit_MPI('error acoustic MPI assembly')
-    endif
+    
     deallocate(tab_requests_send_recv_acoustic)
     deallocate(buffer_send_faces_vector_ac)
     deallocate(buffer_recv_faces_vector_ac)
-
-    deallocate(test_flag_cr)
-        
+    deallocate(test_flag_cr)    
   endif
 
+  ! note: this mpi reduction awaits information from all processes.  
+  call MPI_REDUCE(inum, num_points2, 1, MPI_INTEGER, &
+                    MPI_SUM, 0, MPI_COMM_WORLD, ier)  
   
+  if( myrank == 0 ) then
+    if( ipass == 1 ) then
+      write(IOUT,*) '       assembly acoustic MPI interface points:',num_points2
+    endif 
+
+    ! they don't need to fit, somehow..
+    !if( num_points2 /= num_points1 ) then
+    !  print*,'error acoustic assembly:' !,myrank
+    !  print*,'  total = ',num_points1,' not equal to assembled ',num_points2
+    !  call exit_MPI('error acoustic MPI assembly')
+    !endif  
+  endif
   
   end subroutine get_MPI
 



More information about the CIG-COMMITS mailing list