[cig-commits] r12585 - in seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta: . DATA OUTPUT_FILES setup src
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Thu Aug 7 16:02:22 PDT 2008
Author: dkomati1
Date: 2008-08-07 16:02:22 -0700 (Thu, 07 Aug 2008)
New Revision: 12585
Added:
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/ok_until_here.f90
Modified:
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/CMTSOLUTION
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/setup/constants.h
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_chunk_buffers.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_header_file.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_mesher.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/locate_sources.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/main_program.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/meshfem3D.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/save_header_file.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/specfem3D.f90
Log:
The merged version now works for an isotropic elastic and/or acoustic medium;
I still need to convert some arrays from heap to stack.
I also need to make sure that anisotropy works, and to implement the merged
version of attenuation (ignored for now)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/CMTSOLUTION
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/CMTSOLUTION 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/DATA/CMTSOLUTION 2008-08-07 23:02:22 UTC (rev 12585)
@@ -2,7 +2,7 @@
event name: 060994A
time shift: 0.0000
half duration: 100.0000
-latitude: 43.8200
+latitude: 87.8200
longitude: 12.2500
depth: 647.1000
Mrr: -7.600000e+27
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/Makefile 2008-08-07 23:02:22 UTC (rev 12585)
@@ -25,15 +25,19 @@
#
#=====================================================================
-# Makefile. Generated from Makefile.in by configure.
+# Makefile
+# you need to add "ulimit -S -s unlimited" to your ~/.bash_profile
+# or "limit stacksize unlimited" to your ~/.cshrc before running the code,
+# because it makes extensive use of the memory stack to store arrays
+
#
# Intel ifort
#
FC = ifort
MPIFC = mpif90
#FLAGS_NO_CHECK = -O1 -vec-report0 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -std95 -check nobounds -align sequence -assume byterecl -ftrapuv -fpe0 -ftz -traceback
-FLAGS_NO_CHECK = -O1 -vec-report0 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn declarations -std95 -check nobounds -align sequence -assume byterecl -ftrapuv -fpe0 -ftz -traceback
+FLAGS_NO_CHECK = -O1 -vec-report0 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -std95 -check all -align sequence -assume byterecl -ftrapuv -fpe0 -ftz -traceback
#FLAGS_NO_CHECK = -O3 -xP -vec-report0 -e95 -implicitnone -warn truncated_source -warn argument_checking -warn unused -warn declarations -std95 -check nobounds -align sequence -assume byterecl -fpe3 -ftz
#
@@ -41,7 +45,7 @@
#
#FC = gfortran
#MPIFC = /opt/mpich2_gfortran/bin/mpif90
-#FLAGS_NO_CHECK = -std=gnu -fimplicit-none -frange-check -O3 -fmax-errors=10 -pedantic -pedantic-errors -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wno-tabs -Wunderflow -fno-trapping-math
+#FLAGS_NO_CHECK = -std=gnu -fimplicit-none -frange-check -O3 -fmax-errors=10 -pedantic -pedantic-errors -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wno-tabs -Wunderflow -fno-trapping-math -fbounds-check
#
# Portland pgf90
@@ -98,12 +102,12 @@
$O/count_number_of_sources.o \
$O/create_central_cube_buffers.o \
$O/create_chunk_buffers.o \
- $O/create_header_file.o \
$O/create_regions_mesh.o \
$O/crustal_model.o \
$O/define_derivation_matrices.o \
$O/define_superbrick.o \
$O/euler_angles.o \
+ $O/meshfem3D.o \
$O/get_MPI_1D_buffers.o \
$O/get_MPI_cutplanes_eta.o \
$O/get_MPI_cutplanes_xi.o \
@@ -194,7 +198,7 @@
####
# rules for the main programs
-XMESHFEM_OBJECTS = $O/meshfem3D.o $O/exit_mpi.o $(SOLVER_ARRAY_OBJECTS) $(LIBSPECFEM)
+XMESHFEM_OBJECTS = $O/main_program.o $O/exit_mpi.o $(SOLVER_ARRAY_OBJECTS) $(LIBSPECFEM)
xspecfem3D: $(XMESHFEM_OBJECTS)
## use MPI here
${MPIFCCOMPILE_CHECK} -o $(BIN)/xspecfem3D $(XMESHFEM_OBJECTS) $(MPILIBS)
@@ -366,6 +370,10 @@
${FCCOMPILE_CHECK} -c -o $O/euler_angles.o ${FCFLAGS_f90} $S/euler_angles.f90
## use MPI here
+$O/main_program.o: $(SPECINC)/constants.h $S/main_program.f90
+ ${MPIFCCOMPILE_CHECK} -c -o $O/main_program.o ${FCFLAGS_f90} $S/main_program.f90
+
+## use MPI here
$O/meshfem3D.o: $(SPECINC)/constants.h $S/meshfem3D.f90
${MPIFCCOMPILE_CHECK} -c -o $O/meshfem3D.o ${FCFLAGS_f90} $S/meshfem3D.f90
@@ -493,3 +501,4 @@
$(OUTPUT_FILES_INC)/values_from_mesher.h: $(BIN)/xcreate_header_file
mkdir -p $(OUTPUT_FILES_INC)
$(BIN)/xcreate_header_file
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/OUTPUT_FILES/values_from_mesher.h 2008-08-07 23:02:22 UTC (rev 12585)
@@ -6,11 +6,11 @@
! ---------------
!
!
- ! number of chunks = 1
+ ! number of chunks = 3
!
! these statistics do not include the central cube
!
- ! number of processors = 4
+ ! number of processors = 12
!
! maximum number of points per region = 576013
!
@@ -67,6 +67,7 @@
! average size of a spectral element in km = 156.3679
!
! number of time steps = 7900
+ ! value of a time step DT = 0.190000000000000
!
! number of seismic sources = 1
!
@@ -82,8 +83,8 @@
! (if significantly more, the job will not run by lack of memory)
! (if significantly less, you waste a significant amount of memory)
!
- ! size of static arrays for all slices = 0.325386047363281 GB
- ! = 3.177598118782043E-004 TB
+ ! size of static arrays for all slices = 0.976158142089844 GB
+ ! = 9.532794356346130E-004 TB
!
integer, parameter :: NEX_XI_VAL = 64
@@ -156,12 +157,12 @@
integer, parameter :: NGLOB2DMAX_YMIN_YMAX_IC = 178
integer, parameter :: NPROC_XI_VAL = 2
integer, parameter :: NPROC_ETA_VAL = 2
- integer, parameter :: NCHUNKS_VAL = 1
- integer, parameter :: NPROCTOT_VAL = 4
+ integer, parameter :: NCHUNKS_VAL = 3
+ integer, parameter :: NPROCTOT_VAL = 12
integer, parameter :: NGLOB2DMAX_XY_VAL_CM = 8574
integer, parameter :: NGLOB2DMAX_XY_VAL_OC = 2134
integer, parameter :: NGLOB2DMAX_XY_VAL_IC = 178
- integer, parameter :: NUMMSGS_FACES_VAL = 2
+ integer, parameter :: NUMMSGS_FACES_VAL = 6
integer, parameter :: NCORNERSCHUNKS_VAL = 1
integer, parameter :: ATT1 = 1
integer, parameter :: ATT2 = 1
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/setup/constants.h
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/setup/constants.h 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/setup/constants.h 2008-08-07 23:02:22 UTC (rev 12585)
@@ -56,9 +56,9 @@
! local file unit for output of buffers
integer, parameter :: IOUT_BUFFERS = 35
! uncomment this to write messages to a text file
- integer, parameter :: IMAIN = 42
+! integer, parameter :: IMAIN = 42
! uncomment this to write messages to the screen (slows down the code)
-! integer, parameter :: IMAIN = ISTANDARD_OUTPUT
+ integer, parameter :: IMAIN = ISTANDARD_OUTPUT
! R_EARTH is the radius of the bottom of the oceans (radius of Earth in m)
double precision, parameter :: R_EARTH = 6371000.d0
@@ -125,8 +125,8 @@
! was found by trial and error
double precision, parameter :: SOURCE_DECAY_MIMIC_TRIANGLE = 1.628d0
-! maximum number of sources to locate simultaneously
- integer, parameter :: NSOURCES_SUBSET_MAX = 1000
+! maximum number of sources to locate simultaneously (do not set it too high otherwise you will use a lot of memory)
+ integer, parameter :: NSOURCES_SUBSET_MAX = 100
! distance threshold (in km) above which we consider that a receiver
! is located outside the mesh and therefore excluded from the station list
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem1.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -1,5 +1,23 @@
!! DK DK created this for merged version
- call meshfem3D()
+ call meshfem3D( &
+ myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES, &
+ NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle,ibool_outer_core,ibool_inner_core, &
+ idoubling_crust_mantle,idoubling_inner_core,ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
+ibelm_xmin_inner_core,ibelm_xmax_inner_core,ibelm_ymin_inner_core,ibelm_ymax_inner_core,ibelm_bottom_inner_core, &
+ibelm_top_inner_core,iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle, iboolleft_eta_crust_mantle, &
+iboolright_eta_crust_mantle,iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
+ iboolleft_xi_inner_core,iboolright_xi_inner_core, iboolleft_eta_inner_core,iboolright_eta_inner_core,&
+ jacobian2D_bottom_outer_core,jacobian2D_top_outer_core, &
+ normal_bottom_outer_core, normal_top_outer_core,kappavstore_crust_mantle,muvstore_crust_mantle, &
+ kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle,kappavstore_inner_core,muvstore_inner_core, &
+ rmass_crust_mantle, rmass_outer_core, rmass_inner_core, &
+ nspec2D_xmin_inner_core,nspec2D_xmax_inner_core,nspec2D_ymin_inner_core,nspec2D_ymax_inner_core, &
+iprocfrom_faces,iprocto_faces,imsg_type,iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
+ iboolfaces_crust_mantle,iboolfaces_outer_core,iboolfaces_inner_core, &
+ iboolcorner_crust_mantle,iboolcorner_outer_core,iboolcorner_inner_core, &
+ npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
+ npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
+ npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_meshfem2.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -1,5 +1,23 @@
!! DK DK created this for merged version
- subroutine meshfem3D()
+ subroutine meshfem3D( &
+ myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES, &
+ NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle,ibool_outer_core,ibool_inner_core, &
+ idoubling_crust_mantle,idoubling_inner_core,ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
+ibelm_xmin_inner_core,ibelm_xmax_inner_core,ibelm_ymin_inner_core,ibelm_ymax_inner_core,ibelm_bottom_inner_core, &
+ibelm_top_inner_core,iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle, iboolleft_eta_crust_mantle, &
+iboolright_eta_crust_mantle,iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
+ iboolleft_xi_inner_core,iboolright_xi_inner_core, iboolleft_eta_inner_core,iboolright_eta_inner_core,&
+ jacobian2D_bottom_outer_core,jacobian2D_top_outer_core, &
+ normal_bottom_outer_core, normal_top_outer_core,kappavstore_crust_mantle,muvstore_crust_mantle, &
+ kappahstore_crust_mantle,muhstore_crust_mantle,eta_anisostore_crust_mantle,kappavstore_inner_core,muvstore_inner_core, &
+ rmass_crust_mantle, rmass_outer_core, rmass_inner_core, &
+ nspec2D_xmin_inner_core,nspec2D_xmax_inner_core,nspec2D_ymin_inner_core,nspec2D_ymax_inner_core, &
+iprocfrom_faces,iprocto_faces,imsg_type,iproc_master_corners,iproc_worker1_corners,iproc_worker2_corners, &
+ iboolfaces_crust_mantle,iboolfaces_outer_core,iboolfaces_inner_core, &
+ iboolcorner_crust_mantle,iboolcorner_outer_core,iboolcorner_inner_core, &
+ npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
+ npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
+ npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem1.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -7,9 +7,9 @@
one_minus_sum_beta_crust_mantle,factor_scale_crust_mantle, one_minus_sum_beta_inner_core,factor_scale_inner_core, &
factor_common_crust_mantle,factor_common_inner_core,factor_common_crust_mantle_dble, factor_common_inner_core_dble, &
!! DK DK already computed
- myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES,npoin2D_max_all,NDIM_smaller_buffers,nrec, &
- NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle, ibool_outer_core, ibool_inner_core, idoubling_crust_mantle,idoubling_inner_core, &
-ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
+ myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES,npoin2D_max_all, &
+ NDIM_smaller_buffers,nrec,NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle,ibool_outer_core,ibool_inner_core, &
+ idoubling_crust_mantle,idoubling_inner_core,ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
ibelm_xmin_inner_core,ibelm_xmax_inner_core,ibelm_ymin_inner_core,ibelm_ymax_inner_core,ibelm_bottom_inner_core, &
ibelm_top_inner_core,iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle, iboolleft_eta_crust_mantle, &
iboolright_eta_crust_mantle,iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
@@ -24,8 +24,5 @@
iboolcorner_crust_mantle,iboolcorner_outer_core,iboolcorner_inner_core, &
npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
- npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
- xelm_store_crust_mantle,yelm_store_crust_mantle,zelm_store_crust_mantle, &
- xelm_store_outer_core,yelm_store_outer_core,zelm_store_outer_core, &
- xelm_store_inner_core,yelm_store_inner_core,zelm_store_inner_core)
+ npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/call_specfem2.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -7,9 +7,9 @@
one_minus_sum_beta_crust_mantle,factor_scale_crust_mantle, one_minus_sum_beta_inner_core,factor_scale_inner_core, &
factor_common_crust_mantle,factor_common_inner_core,factor_common_crust_mantle_dble, factor_common_inner_core_dble, &
!! DK DK already computed
- myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES,npoin2D_max_all,NDIM_smaller_buffers,nrec, &
- NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle, ibool_outer_core, ibool_inner_core, idoubling_crust_mantle,idoubling_inner_core, &
-ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
+ myrank,sizeprocs,addressing,ichunk_slice,iproc_xi_slice,iproc_eta_slice,ibathy_topo,NSOURCES,npoin2D_max_all, &
+ NDIM_smaller_buffers,nrec,NTSTEP_BETWEEN_OUTPUT_SEISMOS,ibool_crust_mantle,ibool_outer_core,ibool_inner_core, &
+ idoubling_crust_mantle,idoubling_inner_core,ibelm_bottom_crust_mantle, ibelm_bottom_outer_core, ibelm_top_outer_core, &
ibelm_xmin_inner_core,ibelm_xmax_inner_core,ibelm_ymin_inner_core,ibelm_ymax_inner_core,ibelm_bottom_inner_core, &
ibelm_top_inner_core,iboolleft_xi_crust_mantle,iboolright_xi_crust_mantle, iboolleft_eta_crust_mantle, &
iboolright_eta_crust_mantle,iboolleft_xi_outer_core,iboolright_xi_outer_core,iboolleft_eta_outer_core,iboolright_eta_outer_core, &
@@ -24,8 +24,5 @@
iboolcorner_crust_mantle,iboolcorner_outer_core,iboolcorner_inner_core, &
npoin2D_faces_crust_mantle,npoin2D_xi_crust_mantle,npoin2D_eta_crust_mantle, &
npoin2D_faces_outer_core,npoin2D_xi_outer_core,npoin2D_eta_outer_core, &
- npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core, &
- xelm_store_crust_mantle,yelm_store_crust_mantle,zelm_store_crust_mantle, &
- xelm_store_outer_core,yelm_store_outer_core,zelm_store_outer_core, &
- xelm_store_inner_core,yelm_store_inner_core,zelm_store_inner_core)
+ npoin2D_faces_inner_core,npoin2D_xi_inner_core,npoin2D_eta_inner_core)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_chunk_buffers.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_chunk_buffers.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_chunk_buffers.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -111,7 +111,7 @@
! pairs generated theoretically
! four sides for each of the three types of messages
- integer, dimension(:), allocatable :: npoin2D_send,npoin2D_receive
+ integer, dimension(NUMMSGS_FACES_VAL) :: npoin2D_send,npoin2D_receive
! 1D buffers to remove points belonging to corners
integer ibool1D_leftxi_lefteta(NGLOB1D_RADIAL_MAX)
@@ -130,7 +130,7 @@
double precision, dimension(NGLOB1D_RADIAL_MAX) :: xread1D,yread1D,zread1D
! arrays to assemble the corners (3 processors for each corner)
- integer, dimension(:,:), allocatable :: iprocscorners,itypecorner
+ integer, dimension(3,NCORNERSCHUNKS_VAL) :: iprocscorners,itypecorner
integer ichunk_send,iproc_xi_send,iproc_eta_send
integer ichunk_receive,iproc_xi_receive,iproc_eta_receive
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_header_file.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/create_header_file.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -198,7 +198,7 @@
NGLOB_CRUST_MANTLE_ADJOINT,NGLOB_OUTER_CORE_ADJOINT, &
NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
- NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION)
+ NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION,DT)
print *
print *,'edit file OUTPUT_FILES/values_from_mesher.h to see some statistics about the mesh'
@@ -212,6 +212,7 @@
print *,'total points per slice = ',sum(nglob)
print *
print *,'number of time steps = ',NSTEP
+ print *,'value of a time step DT = ',DT
print *
print *,'on NEC SX, make sure "loopcnt=" parameter'
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_main.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -1,11 +1,4 @@
-!! DK DK added this for merged version
-!! DK DK stored in single precision for merged version, check if it precise enough (probably yes)
- real(kind=CUSTOM_REAL), dimension(:,:), allocatable :: &
- xelm_store_crust_mantle,yelm_store_crust_mantle,zelm_store_crust_mantle, &
- xelm_store_outer_core,yelm_store_outer_core,zelm_store_outer_core, &
- xelm_store_inner_core,yelm_store_inner_core,zelm_store_inner_core
-
!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
@@ -23,8 +16,6 @@
npoin2D_xi_inner_core,npoin2D_eta_inner_core
! number of elements on the boundaries
- integer :: nspec2D_xmin_crust_mantle,nspec2D_xmax_crust_mantle,nspec2D_ymin_crust_mantle,nspec2D_ymax_crust_mantle
- integer :: nspec2D_xmin_outer_core,nspec2D_xmax_outer_core,nspec2D_ymin_outer_core,nspec2D_ymax_outer_core
integer :: nspec2D_xmin_inner_core,nspec2D_xmax_inner_core,nspec2D_ymin_inner_core,nspec2D_ymax_inner_core
real(kind=CUSTOM_REAL), dimension(NGLOB_CRUST_MANTLE) :: rmass_crust_mantle
@@ -40,50 +31,17 @@
!! DK DK added this for the merged version
!! DK DK these arrays are useless in the solver and will therefore be allocated with a dummy size of 1
- real(kind=CUSTOM_REAL), dimension(1,1,1,1) :: kappahstore_inner_core,muhstore_inner_core,eta_anisostore_inner_core
- real(kind=CUSTOM_REAL), dimension(1,1,1,1) :: kappavstore_outer_core,muvstore_outer_core
- real(kind=CUSTOM_REAL), dimension(1,1,1,1) :: kappahstore_outer_core,muhstore_outer_core,eta_anisostore_outer_core
! 2-D jacobians and normals
- real(kind=CUSTOM_REAL), dimension(NGLLY,NGLLZ,NSPEC2DMAX_XMIN_XMAX_IC) :: jacobian2D_xmin_inner_core,jacobian2D_xmax_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLZ,NSPEC2DMAX_YMIN_YMAX_IC) :: jacobian2D_ymin_inner_core,jacobian2D_ymax_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NSPEC2D_BOTTOM_IC) :: jacobian2D_bottom_inner_core
- real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NSPEC2D_TOP_IC) :: jacobian2D_top_inner_core
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLY,NGLLZ,NSPEC2DMAX_XMIN_XMAX_IC) :: normal_xmin_inner_core,normal_xmax_inner_core
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLZ,NSPEC2DMAX_YMIN_YMAX_IC) :: normal_ymin_inner_core,normal_ymax_inner_core
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NSPEC2D_BOTTOM_IC) :: normal_bottom_inner_core
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NSPEC2D_TOP_IC) :: normal_top_inner_core
-
- integer, dimension(NSPEC2DMAX_XMIN_XMAX_CM) :: ibelm_xmin_crust_mantle,ibelm_xmax_crust_mantle
- integer, dimension(NSPEC2DMAX_YMIN_YMAX_CM) :: ibelm_ymin_crust_mantle,ibelm_ymax_crust_mantle
integer, dimension(NSPEC2D_BOTTOM_CM) :: ibelm_bottom_crust_mantle
- integer, dimension(NSPEC2D_TOP_CM) :: ibelm_top_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLLY,NGLLZ,NSPEC2DMAX_XMIN_XMAX_CM) :: &
- jacobian2D_xmin_crust_mantle,jacobian2D_xmax_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLZ,NSPEC2DMAX_YMIN_YMAX_CM) :: &
- jacobian2D_ymin_crust_mantle,jacobian2D_ymax_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NSPEC2D_BOTTOM_CM) :: jacobian2D_bottom_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NSPEC2D_TOP_CM) :: jacobian2D_top_crust_mantle
-
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLY,NGLLZ,NSPEC2DMAX_XMIN_XMAX_CM) :: normal_xmin_crust_mantle,normal_xmax_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NSPEC2DMAX_YMIN_YMAX_CM) :: normal_ymin_crust_mantle,normal_ymax_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NSPEC2D_BOTTOM_CM) :: normal_bottom_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NSPEC2D_TOP_CM) :: normal_top_crust_mantle
-
- integer, dimension(NSPEC2DMAX_XMIN_XMAX_OC) :: ibelm_xmin_outer_core,ibelm_xmax_outer_core
- integer, dimension(NSPEC2DMAX_YMIN_YMAX_OC) :: ibelm_ymin_outer_core,ibelm_ymax_outer_core
integer, dimension(NSPEC2D_BOTTOM_OC) :: ibelm_bottom_outer_core
integer, dimension(NSPEC2D_TOP_OC) :: ibelm_top_outer_core
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLY,NGLLZ,NSPEC2DMAX_XMIN_XMAX_OC) :: normal_xmin_outer_core,normal_xmax_outer_core
- real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLZ,NSPEC2DMAX_YMIN_YMAX_OC) :: normal_ymin_outer_core,normal_ymax_outer_core
real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NSPEC2D_BOTTOM_OC) :: normal_bottom_outer_core
real(kind=CUSTOM_REAL), dimension(NDIM,NGLLX,NGLLY,NSPEC2D_TOP_OC) :: normal_top_outer_core
- real(kind=CUSTOM_REAL), dimension(NGLLY,NGLLZ,NSPEC2DMAX_XMIN_XMAX_OC) :: jacobian2D_xmin_outer_core,jacobian2D_xmax_outer_core
- real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLZ,NSPEC2DMAX_YMIN_YMAX_OC) :: jacobian2D_ymin_outer_core,jacobian2D_ymax_outer_core
real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NSPEC2D_BOTTOM_OC) :: jacobian2D_bottom_outer_core
real(kind=CUSTOM_REAL), dimension(NGLLX,NGLLY,NSPEC2D_TOP_OC) :: jacobian2D_top_outer_core
@@ -100,9 +58,6 @@
integer, dimension(NSPEC_CRUST_MANTLE) :: idoubling_crust_mantle
-!! DK DK this array is useless in the solver and is therefore allocated with a dummy size of 1
- integer, dimension(1) :: idoubling_outer_core
-
integer, dimension(NSPEC_INNER_CORE) :: idoubling_inner_core
integer, dimension(NGLLX,NGLLY,NGLLZ,NSPEC_OUTER_CORE) :: ibool_outer_core
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_mesher.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_mesher.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/declarations_mesher.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -1,11 +1,4 @@
-!! DK DK added this for merged version
-!! DK DK stored in single precision for merged version, check if it precise enough (probably yes)
- real(kind=CUSTOM_REAL), dimension(:,:), allocatable :: &
- xelm_store_crust_mantle,yelm_store_crust_mantle,zelm_store_crust_mantle, &
- xelm_store_outer_core,yelm_store_outer_core,zelm_store_outer_core, &
- xelm_store_inner_core,yelm_store_inner_core,zelm_store_inner_core
-
!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
!!!!!!!!!!!!!!!! DK DK for merged version, all the arrays below are allocated statically instead
@@ -120,28 +113,6 @@
integer, dimension(NGLOB2DMAX_XMIN_XMAX_IC) :: iboolleft_xi_inner_core,iboolright_xi_inner_core
integer, dimension(NGLOB2DMAX_YMIN_YMAX_IC) :: iboolleft_eta_inner_core,iboolright_eta_inner_core
- double precision, dimension(ATT1,ATT2,ATT3,ATT4) :: omsb_crust_mantle_dble, factor_scale_crust_mantle_dble
-
- double precision, dimension(ATT1,ATT2,ATT3,ATT5) :: omsb_inner_core_dble, factor_scale_inner_core_dble
-
- real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT4) :: one_minus_sum_beta_crust_mantle, factor_scale_crust_mantle
-
- real(kind=CUSTOM_REAL), dimension(ATT1,ATT2,ATT3,ATT5) :: one_minus_sum_beta_inner_core, factor_scale_inner_core
-
- real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT4) :: factor_common_crust_mantle
-
- real(kind=CUSTOM_REAL), dimension(N_SLS,ATT1,ATT2,ATT3,ATT5) :: factor_common_inner_core
-
- double precision, dimension(N_SLS,ATT1,ATT2,ATT3,ATT4) :: factor_common_crust_mantle_dble
-
- double precision, dimension(N_SLS,ATT1,ATT2,ATT3,ATT5) :: factor_common_inner_core_dble
-
- integer :: npoin2D_max_all,NDIM_smaller_buffers
-
-! receiver information
- integer :: nrec,ios
- character(len=150) :: STATIONS,rec_filename,dummystring
-
!! DK DK added this for the merged version
!---- arrays to assemble between chunks
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/locate_sources.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/locate_sources.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/locate_sources.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -158,9 +158,9 @@
integer, dimension(NSOURCES_SUBSET_MAX) :: ispec_selected_source_subset
- integer, dimension(NSOURCES_SUBSET_MAX,0:NPROCTOT-1) :: ispec_selected_source_all
+ integer, dimension(0:NPROCTOT-1,NSOURCES_SUBSET_MAX) :: ispec_selected_source_all
- double precision, dimension(NSOURCES_SUBSET_MAX,0:NPROCTOT-1) :: xi_source_all,eta_source_all,gamma_source_all, &
+ double precision, dimension(0:NPROCTOT-1,NSOURCES_SUBSET_MAX) :: xi_source_all,eta_source_all,gamma_source_all, &
final_distance_source_all,x_found_source_all,y_found_source_all,z_found_source_all
double precision, dimension(NSOURCES_SUBSET_MAX) :: xi_source_subset,eta_source_subset,gamma_source_subset
@@ -477,7 +477,9 @@
! now gather information from all the nodes
! use -1 as a flag to detect if gather fails for some reason
- ispec_selected_source_all(:,:) = -1
+ ispec_selected_source_all(:,:) = 0
+ ispec_selected_source_all(:,1:NSOURCES_SUBSET_current_size) = -1
+
call MPI_GATHER(ispec_selected_source_subset,NSOURCES_SUBSET_current_size,MPI_INTEGER, &
ispec_selected_source_all,NSOURCES_SUBSET_current_size,MPI_INTEGER,0,MPI_COMM_WORLD,ier)
call MPI_GATHER(xi_source_subset,NSOURCES_SUBSET_current_size,MPI_DOUBLE_PRECISION, &
@@ -499,7 +501,7 @@
if(myrank == 0) then
! check that the gather operation went well
- if(minval(ispec_selected_source_all) <= 0) call exit_MPI(myrank,'gather operation failed for source')
+ if(minval(ispec_selected_source_all) < 0) call exit_MPI(myrank,'gather operation failed for source')
! loop on all the sources within subsets
do isource_in_this_subset = 1,NSOURCES_SUBSET_current_size
@@ -510,16 +512,16 @@
! loop on all the results to determine the best slice
distmin = HUGEVAL
do iprocloop = 0,NPROCTOT-1
- if(final_distance_source_all(isource_in_this_subset,iprocloop) < distmin) then
- distmin = final_distance_source_all(isource_in_this_subset,iprocloop)
+ if(final_distance_source_all(iprocloop,isource_in_this_subset) < distmin) then
+ distmin = final_distance_source_all(iprocloop,isource_in_this_subset)
islice_selected_source(isource) = iprocloop
- ispec_selected_source(isource) = ispec_selected_source_all(isource_in_this_subset,iprocloop)
- xi_source(isource) = xi_source_all(isource_in_this_subset,iprocloop)
- eta_source(isource) = eta_source_all(isource_in_this_subset,iprocloop)
- gamma_source(isource) = gamma_source_all(isource_in_this_subset,iprocloop)
- x_found_source(isource_in_this_subset) = x_found_source_all(isource_in_this_subset,iprocloop)
- y_found_source(isource_in_this_subset) = y_found_source_all(isource_in_this_subset,iprocloop)
- z_found_source(isource_in_this_subset) = z_found_source_all(isource_in_this_subset,iprocloop)
+ ispec_selected_source(isource) = ispec_selected_source_all(iprocloop,isource_in_this_subset)
+ xi_source(isource) = xi_source_all(iprocloop,isource_in_this_subset)
+ eta_source(isource) = eta_source_all(iprocloop,isource_in_this_subset)
+ gamma_source(isource) = gamma_source_all(iprocloop,isource_in_this_subset)
+ x_found_source(isource_in_this_subset) = x_found_source_all(iprocloop,isource_in_this_subset)
+ y_found_source(isource_in_this_subset) = y_found_source_all(iprocloop,isource_in_this_subset)
+ z_found_source(isource_in_this_subset) = z_found_source_all(iprocloop,isource_in_this_subset)
endif
enddo
final_distance_source(isource) = distmin
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/main_program.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/main_program.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/main_program.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -200,6 +200,22 @@
! first 3-D solver for the Connection Machine CM-5 (by Thinking Machines)
!
+!! DK DK added this for merged version
+!! DK DK stored in single precision for merged version, check if it precise enough (probably yes)
+!! DK DK now defined as pointers, in order to be able to deallocate them
+!! DK DK see for instance http://www.pcc.qub.ac.uk/tec/courses/f77tof90/stu-notes/f90studentMIF_6.html
+!! DK DK Section 5.6 about this
+ module dyn_array
+!---------------------------------------------------------------------
+! Module containing definitions needed to dynamically allocate the values of an array
+!---------------------------------------------------------------------
+ include "constants.h"
+ real(kind=CUSTOM_REAL), dimension(:,:), allocatable :: &
+ xelm_store_crust_mantle,yelm_store_crust_mantle,zelm_store_crust_mantle, &
+ xelm_store_outer_core,yelm_store_outer_core,zelm_store_outer_core, &
+ xelm_store_inner_core,yelm_store_inner_core,zelm_store_inner_core
+ end module dyn_array
+
program main_program
implicit none
@@ -214,409 +230,22 @@
! include values created by the mesher
include "values_from_mesher.h"
-! aniso_mantle_model_variables
- type aniso_mantle_model_variables
- sequence
- double precision beta(14,34,37,73)
- double precision pro(47)
- integer npar1
- end type aniso_mantle_model_variables
-
- type (aniso_mantle_model_variables) AMM_V
-! aniso_mantle_model_variables
-
-! attenuation_model_variables
- type attenuation_model_variables
- sequence
- double precision min_period, max_period
- double precision :: QT_c_source ! Source Frequency
- double precision, dimension(N_SLS) :: Qtau_s ! tau_sigma
- double precision, dimension(:), pointer :: QrDisc ! Discontinutitues Defined
- double precision, dimension(:), pointer :: Qr ! Radius
- integer, dimension(:), pointer :: Qs ! Steps
- double precision, dimension(:), pointer :: Qmu ! Shear Attenuation
- double precision, dimension(:,:), pointer :: Qtau_e ! tau_epsilon
- double precision, dimension(:), pointer :: Qomsb, Qomsb2 ! one_minus_sum_beta
- double precision, dimension(:,:), pointer :: Qfc, Qfc2 ! factor_common
- double precision, dimension(:), pointer :: Qsf, Qsf2 ! scale_factor
- integer, dimension(:), pointer :: Qrmin ! Max and Mins of idoubling
- integer, dimension(:), pointer :: Qrmax ! Max and Mins of idoubling
- integer :: Qn ! Number of points
- end type attenuation_model_variables
-
- type (attenuation_model_variables) AM_V
-! attenuation_model_variables
-
-! model_1066a_variables
- type model_1066a_variables
- sequence
- double precision, dimension(NR_1066A) :: radius_1066a
- double precision, dimension(NR_1066A) :: density_1066a
- double precision, dimension(NR_1066A) :: vp_1066a
- double precision, dimension(NR_1066A) :: vs_1066a
- double precision, dimension(NR_1066A) :: Qkappa_1066a
- double precision, dimension(NR_1066A) :: Qmu_1066a
- end type model_1066a_variables
-
- type (model_1066a_variables) M1066a_V
-! model_1066a_variables
-
-! model_ak135_variables
- type model_ak135_variables
- sequence
- double precision, dimension(NR_AK135) :: radius_ak135
- double precision, dimension(NR_AK135) :: density_ak135
- double precision, dimension(NR_AK135) :: vp_ak135
- double precision, dimension(NR_AK135) :: vs_ak135
- double precision, dimension(NR_AK135) :: Qkappa_ak135
- double precision, dimension(NR_AK135) :: Qmu_ak135
- end type model_ak135_variables
-
- type (model_ak135_variables) Mak135_V
-! model_ak135_variables
-
-! three_d_mantle_model_variables
- type three_d_mantle_model_variables
- sequence
- double precision dvs_a(0:NK,0:NS,0:NS)
- double precision dvs_b(0:NK,0:NS,0:NS)
- double precision dvp_a(0:NK,0:NS,0:NS)
- double precision dvp_b(0:NK,0:NS,0:NS)
- double precision spknt(NK+1)
- double precision qq0(NK+1,NK+1)
- double precision qq(3,NK+1,NK+1)
- end type three_d_mantle_model_variables
-
-! model_ref_variables
- type model_ref_variables
- sequence
- double precision, dimension(NR_REF) :: radius_ref
- double precision, dimension(NR_REF) :: density_ref
- double precision, dimension(NR_REF) :: vpv_ref
- double precision, dimension(NR_REF) :: vph_ref
- double precision, dimension(NR_REF) :: vsv_ref
- double precision, dimension(NR_REF) :: vsh_ref
- double precision, dimension(NR_REF) :: eta_ref
- double precision, dimension(NR_REF) :: Qkappa_ref
- double precision, dimension(NR_REF) :: Qmu_ref
- end type model_ref_variables
-
- type (model_ref_variables) Mref_V
-! model_ref_variables
-
- type (three_d_mantle_model_variables) D3MM_V
-! three_d_mantle_model_variables
-
-! sea1d_model_variables
- type sea1d_model_variables
- sequence
- double precision, dimension(NR_SEA1D) :: radius_sea1d
- double precision, dimension(NR_SEA1D) :: density_sea1d
- double precision, dimension(NR_SEA1D) :: vp_sea1d
- double precision, dimension(NR_SEA1D) :: vs_sea1d
- double precision, dimension(NR_SEA1D) :: Qkappa_sea1d
- double precision, dimension(NR_SEA1D) :: Qmu_sea1d
- end type sea1d_model_variables
-
- type (sea1d_model_variables) SEA1DM_V
-! sea1d_model_variables
-
-! jp3d_model_variables
- type jp3d_model_variables
- sequence
-! vmod3d
- integer :: NPA
- integer :: NRA
- integer :: NHA
- integer :: NPB
- integer :: NRB
- integer :: NHB
- double precision :: PNA(MPA)
- double precision :: RNA(MRA)
- double precision :: HNA(MHA)
- double precision :: PNB(MPB)
- double precision :: RNB(MRB)
- double precision :: HNB(MHB)
- double precision :: VELAP(MPA,MRA,MHA)
- double precision :: VELBP(MPB,MRB,MHB)
-! discon
- double precision :: PN(51)
- double precision :: RRN(63)
- double precision :: DEPA(51,63)
- double precision :: DEPB(51,63)
- double precision :: DEPC(51,63)
-! locate
- integer :: IPLOCA(MKA)
- integer :: IRLOCA(MKA)
- integer :: IHLOCA(MKA)
- integer :: IPLOCB(MKB)
- integer :: IRLOCB(MKB)
- integer :: IHLOCB(MKB)
- double precision :: PLA
- double precision :: RLA
- double precision :: HLA
- double precision :: PLB
- double precision :: RLB
- double precision :: HLB
-! weight
- integer :: IP
- integer :: JP
- integer :: KP
- integer :: IP1
- integer :: JP1
- integer :: KP1
- double precision :: WV(8)
-! prhfd
- double precision :: P
- double precision :: R
- double precision :: H
- double precision :: PF
- double precision :: RF
- double precision :: HF
- double precision :: PF1
- double precision :: RF1
- double precision :: HF1
- double precision :: PD
- double precision :: RD
- double precision :: HD
-! jpmodv
- double precision :: VP(29)
- double precision :: VS(29)
- double precision :: RA(29)
- double precision :: DEPJ(29)
- end type jp3d_model_variables
-
- type (jp3d_model_variables) JP3DM_V
-! jp3d_model_variables
-
-! sea99_s_model_variables
- type sea99_s_model_variables
- sequence
- integer :: sea99_ndep
- integer :: sea99_nlat
- integer :: sea99_nlon
- double precision :: sea99_ddeg
- double precision :: alatmin
- double precision :: alatmax
- double precision :: alonmin
- double precision :: alonmax
- double precision :: sea99_vs(100,100,100)
- double precision :: sea99_depth(100)
- end type sea99_s_model_variables
-
- type (sea99_s_model_variables) SEA99M_V
-! sea99_s_model_variables
-
-! crustal_model_variables
- type crustal_model_variables
- sequence
- double precision, dimension(NKEYS_CRUST,NLAYERS_CRUST) :: thlr
- double precision, dimension(NKEYS_CRUST,NLAYERS_CRUST) :: velocp
- double precision, dimension(NKEYS_CRUST,NLAYERS_CRUST) :: velocs
- double precision, dimension(NKEYS_CRUST,NLAYERS_CRUST) :: dens
- character(len=2) abbreviation(NCAP_CRUST/2,NCAP_CRUST)
- character(len=2) code(NKEYS_CRUST)
- end type crustal_model_variables
-
- type (crustal_model_variables) CM_V
-! crustal_model_variables
-
-! attenuation_model_storage
- type attenuation_model_storage
- sequence
- integer Q_resolution
- integer Q_max
- double precision, dimension(:,:), pointer :: tau_e_storage
- double precision, dimension(:), pointer :: Qmu_storage
- end type attenuation_model_storage
-
- type (attenuation_model_storage) AM_S
-! attenuation_model_storage
-
-! attenuation_simplex_variables
- type attenuation_simplex_variables
- sequence
- integer nf ! nf = Number of Frequencies
- integer nsls ! nsls = Number of Standard Linear Solids
- double precision Q ! Q = Desired Value of Attenuation or Q
- double precision iQ ! iQ = 1/Q
- double precision, dimension(:), pointer :: f
- ! f = Frequencies at which to evaluate the solution
- double precision, dimension(:), pointer :: tau_s
- ! tau_s = Tau_sigma defined by the frequency range and
- ! number of standard linear solids
- end type attenuation_simplex_variables
-
- type(attenuation_simplex_variables) AS_V
-! attenuation_simplex_variables
-
-! correct number of spectral elements in each block depending on chunk type
-
- integer nspec_aniso,npointot
-
-! arrays with the mesh in double precision
- double precision, dimension(:,:,:,:), allocatable :: xstore,ystore,zstore
-
! proc numbers for MPI
- integer myrank,sizeprocs,ier,errorcode
+ integer myrank,sizeprocs,ier
-! check area and volume of the final mesh
- double precision area_local_bottom,area_total_bottom
- double precision area_local_top,area_total_top
- double precision volume_local,volume_total,volume_total_region
-
- integer iprocnum
-
-! for loop on all the slices
- integer iregion_code,iregion
- integer iproc_xi,iproc_eta,ichunk
-
-!! DK DK for the merged version
- integer, dimension(:), allocatable :: ibool1D_leftxi_lefteta,ibool1D_rightxi_lefteta, &
- ibool1D_leftxi_righteta,ibool1D_rightxi_righteta
- double precision, dimension(:), allocatable :: xread1D_leftxi_lefteta,xread1D_rightxi_lefteta, &
- xread1D_leftxi_righteta,xread1D_rightxi_righteta
- double precision, dimension(:), allocatable :: yread1D_leftxi_lefteta,yread1D_rightxi_lefteta, &
- yread1D_leftxi_righteta,yread1D_rightxi_righteta
- double precision, dimension(:), allocatable :: zread1D_leftxi_lefteta,zread1D_rightxi_lefteta, &
- zread1D_leftxi_righteta,zread1D_rightxi_righteta
-
-! rotation matrix from Euler angles
- double precision, dimension(NDIM,NDIM) :: rotation_matrix
-
- double precision ANGULAR_WIDTH_XI_RAD,ANGULAR_WIDTH_ETA_RAD
-
! use integer array to store values
integer, dimension(NX_BATHY,NY_BATHY) :: ibathy_topo
-! for ellipticity
- integer nspl
- double precision rspl(NR),espl(NR),espl2(NR)
-
-! for some statistics for the mesh
- integer numelem_crust_mantle,numelem_outer_core,numelem_inner_core
- integer numelem_total
-
-! timer MPI
- double precision time_start,tCPU
-
! addressing for all the slices
- integer, dimension(:), allocatable :: ichunk_slice,iproc_xi_slice,iproc_eta_slice
- integer, dimension(:,:,:), allocatable :: addressing
+ integer, dimension(0:NPROCTOT_VAL-1) :: ichunk_slice,iproc_xi_slice,iproc_eta_slice
+ integer, dimension(NCHUNKS_VAL,0:NPROC_XI_VAL-1,0:NPROC_ETA_VAL-1) :: addressing
-! parameters read from parameter file
- integer MIN_ATTENUATION_PERIOD,MAX_ATTENUATION_PERIOD,NER_CRUST, &
- NER_80_MOHO,NER_220_80,NER_400_220,NER_600_400,NER_670_600,NER_771_670, &
- NER_TOPDDOUBLEPRIME_771,NER_CMB_TOPDDOUBLEPRIME,NER_OUTER_CORE, &
- NER_TOP_CENTRAL_CUBE_ICB,NEX_XI,NEX_ETA,RMOHO_FICTITIOUS_IN_MESHER, &
- NPROC_XI,NPROC_ETA,NTSTEP_BETWEEN_OUTPUT_SEISMOS, &
- NTSTEP_BETWEEN_READ_ADJSRC,NSTEP,NSOURCES,NTSTEP_BETWEEN_FRAMES, &
- NTSTEP_BETWEEN_OUTPUT_INFO,NUMBER_OF_RUNS,NUMBER_OF_THIS_RUN,NCHUNKS,SIMULATION_TYPE, &
- REFERENCE_1D_MODEL,THREE_D_MODEL,MOVIE_VOLUME_TYPE,MOVIE_START,MOVIE_STOP
+ integer :: NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSOURCES
- double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES,CENTER_LONGITUDE_IN_DEGREES, &
- CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH,ROCEAN,RMIDDLE_CRUST, &
- RMOHO,R80,R120,R220,R400,R600,R670,R771,RTOPDDOUBLEPRIME,RCMB,RICB, &
- R_CENTRAL_CUBE,RHO_TOP_OC,RHO_BOTTOM_OC,RHO_OCEANS,HDUR_MOVIE, &
- MOVIE_TOP,MOVIE_BOTTOM,MOVIE_WEST,MOVIE_EAST,MOVIE_NORTH,MOVIE_SOUTH
-
-
- logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
- CRUSTAL,ELLIPTICITY,GRAVITY,ONE_CRUST,ROTATION,ISOTROPIC_3D_MANTLE, &
- TOPOGRAPHY,OCEANS,MOVIE_SURFACE,MOVIE_VOLUME,MOVIE_COARSE,ATTENUATION_3D, &
- RECEIVERS_CAN_BE_BURIED,PRINT_SOURCE_TIME_FUNCTION, &
- SAVE_MESH_FILES,ATTENUATION, &
- ABSORBING_CONDITIONS,INCLUDE_CENTRAL_CUBE,INFLATE_CENTRAL_CUBE,SAVE_FORWARD,CASE_3D, &
- OUTPUT_SEISMOS_ASCII_TEXT,OUTPUT_SEISMOS_SAC_ALPHANUM,OUTPUT_SEISMOS_SAC_BINARY, &
- ROTATE_SEISMOGRAMS_RT,HONOR_1D_SPHERICAL_MOHO,WRITE_SEISMOGRAMS_BY_MASTER,&
- SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE
-
- character(len=150) OUTPUT_FILES,MODEL
-
-! parameters deduced from parameters read from file
- integer NPROC,NPROCTOT,NEX_PER_PROC_XI,NEX_PER_PROC_ETA,ratio_divide_central_cube
-
integer, external :: err_occurred
-! this for all the regions
- integer, dimension(MAX_NUM_REGIONS) :: NSPEC, &
- NSPEC2D_XI, &
- NSPEC2D_ETA, &
- NSPEC2DMAX_XMIN_XMAX,NSPEC2DMAX_YMIN_YMAX, &
- NSPEC2D_BOTTOM,NSPEC2D_TOP, &
- NSPEC1D_RADIAL,NGLOB1D_RADIAL, &
- NGLOB2DMAX_XMIN_XMAX,NGLOB2DMAX_YMIN_YMAX, &
- nglob
-
-! computed in read_compute_parameters
- integer, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: ner,ratio_sampling_array
- integer, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: doubling_index
- double precision, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: r_bottom,r_top
- logical, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: this_region_has_a_doubling
- double precision, dimension(MAX_NUMBER_OF_MESH_LAYERS) :: rmins,rmaxs
-
-! arrays for BCAST
- integer, dimension(38) :: bcast_integer
- double precision, dimension(30) :: bcast_double_precision
- logical, dimension(26) :: bcast_logical
-
- integer, parameter :: maxker=200
- integer, parameter :: maxl=72
- integer, parameter :: maxcoe=2000
- integer, parameter :: maxver=1000
- integer, parameter :: maxhpa=2
-
- integer numker
- integer numhpa,numcof
- integer ihpa,lmax,nylm
- integer lmxhpa(maxhpa)
- integer itypehpa(maxhpa)
- integer ihpakern(maxker)
- integer numcoe(maxhpa)
- integer ivarkern(maxker)
- integer itpspl(maxcoe,maxhpa)
-
- integer nconpt(maxhpa),iver
- integer iconpt(maxver,maxhpa)
- real(kind=4) conpt(maxver,maxhpa)
-
- real(kind=4) xlaspl(maxcoe,maxhpa)
- real(kind=4) xlospl(maxcoe,maxhpa)
- real(kind=4) radspl(maxcoe,maxhpa)
- real(kind=4) coe(maxcoe,maxker)
- character(len=80) hsplfl(maxhpa)
- character(len=40) dskker(maxker)
- real(kind=4) vercof(maxker)
- real(kind=4) vercofd(maxker)
-
- real(kind=4) ylmcof((maxl+1)**2,maxhpa)
- real(kind=4) wk1(maxl+1)
- real(kind=4) wk2(maxl+1)
- real(kind=4) wk3(maxl+1)
-
- character(len=80) kerstr
- character(len=80) refmdl
- character(len=40) varstr(maxker)
-
- integer :: ipass
-
-! this for the different corners of the slice (which are different if the superbrick is cut)
-! 1 : xi_min, eta_min
-! 2 : xi_max, eta_min
-! 3 : xi_max, eta_max
-! 4 : xi_min, eta_max
- integer, dimension(MAX_NUM_REGIONS,NB_SQUARE_CORNERS) :: NSPEC1D_RADIAL_CORNER,NGLOB1D_RADIAL_CORNER
-
-! 1 -> min, 2 -> max
- integer, dimension(MAX_NUM_REGIONS,NB_SQUARE_EDGES_ONEDIR) :: NSPEC2D_XI_FACE,NSPEC2D_ETA_FACE
-
- integer, dimension(NB_SQUARE_CORNERS,NB_CUT_CASE) :: DIFF_NSPEC1D_RADIAL
- integer, dimension(NB_SQUARE_EDGES_ONEDIR,NB_CUT_CASE) :: DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA
- logical :: CUT_SUPERBRICK_XI,CUT_SUPERBRICK_ETA
-! integer, dimension(MAX_NUM_REGIONS) :: NGLOB1D_RADIAL_TEMP
-
!! DK DK for the merged version
- include 'declarations_mesher.f90'
+ include 'declarations_main.f90'
! ************** PROGRAM STARTS HERE **************
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/meshfem3D.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/meshfem3D.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -36,12 +36,14 @@
!! DK DK for the merged version
include 'call_meshfem2.f90'
+ use dyn_array
+
implicit none
! standard include of the MPI library
include 'mpif.h'
- include "constants.h"
+!!!!!!!!!!! DK DK now in module dyn_array include "constants.h"
include "precision.h"
!! DK DK for the merged version
@@ -335,8 +337,8 @@
double precision time_start,tCPU
! addressing for all the slices
- integer, dimension(:), allocatable :: ichunk_slice,iproc_xi_slice,iproc_eta_slice
- integer, dimension(:,:,:), allocatable :: addressing
+ integer, dimension(0:NPROCTOT_VAL-1) :: ichunk_slice,iproc_xi_slice,iproc_eta_slice
+ integer, dimension(NCHUNKS_VAL,0:NPROC_XI_VAL-1,0:NPROC_ETA_VAL-1) :: addressing
! parameters read from parameter file
integer MIN_ATTENUATION_PERIOD,MAX_ATTENUATION_PERIOD,NER_CRUST, &
@@ -506,9 +508,7 @@
DIFF_NSPEC1D_RADIAL,DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA,&
WRITE_SEISMOGRAMS_BY_MASTER,SAVE_ALL_SEISMOS_IN_ONE_FILE,USE_BINARY_FOR_LARGE_FILE,.false.)
- if(err_occurred() /= 0) then
- call exit_MPI(myrank,'an error occurred while reading the parameter file')
- endif
+ if(err_occurred() /= 0) call exit_MPI(myrank,'an error occurred while reading the parameter file')
! count the total number of sources in the CMTSOLUTION file
call count_number_of_sources(NSOURCES)
@@ -682,28 +682,6 @@
! check that the code is running with the requested number of processes
if(sizeprocs /= NPROCTOT) call exit_MPI(myrank,'wrong number of MPI processes')
-! dynamic allocation of mesh arrays
- allocate(addressing(NCHUNKS,0:NPROC_XI-1,0:NPROC_ETA-1),STAT=ier)
- if (ier /= 0) then
- print *,"ABORTING can not allocate in meshfem3D ier=",ier
- call MPI_Abort(MPI_COMM_WORLD,errorcode,ier)
- endif
- allocate(ichunk_slice(0:NPROCTOT-1),STAT=ier)
- if (ier /= 0) then
- print *,"ABORTING can not allocate in meshfem3D ier=",ier
- call MPI_Abort(MPI_COMM_WORLD,errorcode,ier)
- endif
- allocate(iproc_xi_slice(0:NPROCTOT-1),STAT=ier)
- if (ier /= 0) then
- print *,"ABORTING can not allocate in meshfem3D ier=",ier
- call MPI_Abort(MPI_COMM_WORLD,errorcode,ier)
- endif
- allocate(iproc_eta_slice(0:NPROCTOT-1),STAT=ier)
- if (ier /= 0) then
- print *,"ABORTING can not allocate in meshfem3D ier=",ier
- call MPI_Abort(MPI_COMM_WORLD,errorcode,ier)
- endif
-
addressing(:,:,:) = 0
ichunk_slice(:) = 0
iproc_xi_slice(:) = 0
@@ -1157,14 +1135,7 @@
! volume of the slice
volume_total = ZERO
-!----
-!---- loop on all the regions of the mesh
-!----
-
!! DK DK for the merged version
- include 'allocate_before.f90'
-
-!! DK DK for the merged version
allocate(ibool1D_leftxi_lefteta(maxval(NGLOB1D_RADIAL_CORNER)),STAT=ier)
if (ier /= 0) then
print *,"ABORTING can not allocate in meshfem3D ier=",ier
@@ -1249,6 +1220,13 @@
call MPI_Abort(MPI_COMM_WORLD,errorcode,ier)
endif
+!! DK DK for the merged version
+ include 'allocate_before.f90'
+
+!----
+!---- loop on all the regions of the mesh
+!----
+
! number of regions in full Earth
do iregion_code = 1,MAX_NUM_REGIONS
@@ -1426,6 +1404,7 @@
call exit_MPI(myrank,'found no anisotropic elements in the mantle')
! use MPI reduction to compute total area and volume
+!! DK DK suppressed for now in the merged version, for simplicity
volume_total_region = ZERO
area_total_bottom = ZERO
area_total_top = ZERO
Added: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/ok_until_here.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/ok_until_here.f90 (rev 0)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/ok_until_here.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -0,0 +1,7 @@
+
+ print *,'ok until here'
+ call MPI_BARRIER(MPI_COMM_WORLD,ier)
+! stop all the MPI processes, and exit
+ call MPI_ABORT(MPI_COMM_WORLD,30,ier)
+ stop 'end of the test'
+
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/save_header_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/save_header_file.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/save_header_file.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -46,7 +46,7 @@
NGLOB_CRUST_MANTLE_ADJOINT,NGLOB_OUTER_CORE_ADJOINT, &
NGLOB_INNER_CORE_ADJOINT,NSPEC_OUTER_CORE_ROT_ADJOINT, &
NSPEC_CRUST_MANTLE_STACEY,NSPEC_OUTER_CORE_STACEY, &
- NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION)
+ NGLOB_CRUST_MANTLE_OCEANS,NSPEC_OUTER_CORE_ROTATION,DT)
implicit none
@@ -59,7 +59,7 @@
logical TRANSVERSE_ISOTROPY,ANISOTROPIC_3D_MANTLE,ANISOTROPIC_INNER_CORE, &
ELLIPTICITY,GRAVITY,ROTATION,ATTENUATION,ATTENUATION_3D,INCLUDE_CENTRAL_CUBE
- double precision ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES, &
+ double precision DT,ANGULAR_WIDTH_XI_IN_DEGREES,ANGULAR_WIDTH_ETA_IN_DEGREES, &
CENTER_LONGITUDE_IN_DEGREES,CENTER_LATITUDE_IN_DEGREES,GAMMA_ROTATION_AZIMUTH
double precision :: subtract_central_cube_elems,subtract_central_cube_points
@@ -244,6 +244,7 @@
write(IOUT,*) '! average size of a spectral element in km = ',real(TWO_PI*R_EARTH/1000.d0)/real(4*NEX_XI)
write(IOUT,*) '!'
write(IOUT,*) '! number of time steps = ',NSTEP
+ write(IOUT,*) '! value of a time step DT = ',DT
write(IOUT,*) '!'
write(IOUT,*) '! number of seismic sources = ',NSOURCES
write(IOUT,*) '!'
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/specfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/specfem3D.f90 2008-08-07 22:56:36 UTC (rev 12584)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/version41_beta/src/specfem3D.f90 2008-08-07 23:02:22 UTC (rev 12585)
@@ -33,12 +33,14 @@
!! DK DK for the merged version
include 'call_specfem2.f90'
+ use dyn_array
+
implicit none
! standard include of the MPI library
include 'mpif.h'
- include "constants.h"
+!!!!!!!!!!! DK DK now in module dyn_array include "constants.h"
include "precision.h"
! include values created by the mesher
@@ -449,12 +451,6 @@
integer, dimension(NB_SQUARE_CORNERS,NB_CUT_CASE) :: DIFF_NSPEC1D_RADIAL
integer, dimension(NB_SQUARE_EDGES_ONEDIR,NB_CUT_CASE) :: DIFF_NSPEC2D_XI,DIFF_NSPEC2D_ETA
-!! DK DK added this for merged version
-!! DK DK stored in single precision for merged version, check if it precise enough (probably yes)
- real(kind=CUSTOM_REAL), dimension(NGNOD,NSPEC_CRUST_MANTLE) :: xelm_store_crust_mantle,yelm_store_crust_mantle,zelm_store_crust_mantle
- real(kind=CUSTOM_REAL), dimension(NGNOD,NSPEC_OUTER_CORE) :: xelm_store_outer_core,yelm_store_outer_core,zelm_store_outer_core
- real(kind=CUSTOM_REAL), dimension(NGNOD,NSPEC_INNER_CORE) :: xelm_store_inner_core,yelm_store_inner_core,zelm_store_inner_core
-
! allocate this automatic array in the memory stack to avoid memory fragmentation with "allocate()"
real(kind=CUSTOM_REAL), dimension(NDIM,NTSTEP_BETWEEN_OUTPUT_SEISMOS) :: one_seismogram
@@ -494,19 +490,21 @@
ibool_inner_core,NSPEC_INNER_CORE,NGLOB_INNER_CORE, &
xigll,yigll,zigll)
+!print *,yelm_store_inner_core
+!print *,etay_inner_core
+
!! DK DK for merged version, deallocate arrays that have become useless
-!! DK DK attention je ne peux plus desallouer ici pour l'instant
-!! DK DK impossible YYYYYYYYYYYYY deallocate(xelm_store_crust_mantle)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(yelm_store_crust_mantle)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(zelm_store_crust_mantle)
+ deallocate(xelm_store_crust_mantle)
+ deallocate(yelm_store_crust_mantle)
+ deallocate(zelm_store_crust_mantle)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(xelm_store_outer_core)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(yelm_store_outer_core)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(zelm_store_outer_core)
+ deallocate(xelm_store_outer_core)
+ deallocate(yelm_store_outer_core)
+ deallocate(zelm_store_outer_core)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(xelm_store_inner_core)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(yelm_store_inner_core)
-!! DK DK impossible YYYYYYYYYYYYY deallocate(zelm_store_inner_core)
+ deallocate(xelm_store_inner_core)
+ deallocate(yelm_store_inner_core)
+ deallocate(zelm_store_inner_core)
if (myrank == 0) then
More information about the cig-commits
mailing list