[cig-commits] [commit] devel: adds error checking when reading of Par_file parameters; updates user output in model_tomography.f90 (27634e9)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Tue Sep 16 08:46:25 PDT 2014
Repository : https://github.com/geodynamics/specfem3d
On branch : devel
Link : https://github.com/geodynamics/specfem3d/compare/b8df327ddc585a0c855aa689967cdc9846ff7dd3...27c70c5c56f96bc7798b66bffb0b95d4c9783d30
>---------------------------------------------------------------
commit 27634e918bd69d6dbbb368a09959c188abbd666f
Author: daniel peter <peterda at ethz.ch>
Date: Mon Sep 15 16:08:37 2014 +0200
adds error checking when reading of Par_file parameters; updates user output in model_tomography.f90
>---------------------------------------------------------------
27634e918bd69d6dbbb368a09959c188abbd666f
src/generate_databases/model_tomography.f90 | 17 ++--
src/meshfem3D/meshfem3D.f90 | 32 +++----
src/meshfem3D/read_mesh_parameter_file.f90 | 44 +++++-----
src/shared/read_parameter_file.f90 | 126 ++++++++++++----------------
4 files changed, 104 insertions(+), 115 deletions(-)
diff --git a/src/generate_databases/model_tomography.f90 b/src/generate_databases/model_tomography.f90
index 43d4c87..8ec345c 100644
--- a/src/generate_databases/model_tomography.f90
+++ b/src/generate_databases/model_tomography.f90
@@ -216,10 +216,10 @@
enddo
if( nlines /= nrec .and. myrank_tomo == 0 ) then
- write(6,*) '',trim(tomo_filename)
- write(6,*) ' number of grid points = NX*NY*NZ:',nrec
- write(6,*) ' number of lines for grid points:',nlines
- stop 'Error in the grid points definition'
+ print*, 'Error: ',trim(tomo_filename),' has invalid number of records'
+ print*, ' number of grid points specified (= NX*NY*NZ):',nrec
+ print*, ' number of file lines for grid points :',nlines
+ stop 'Error in tomography data file for the grid points definition'
endif
! closes file
@@ -233,8 +233,12 @@
! user output
if( myrank_tomo == 0 ) then
write(IMAIN,*)
- write(IMAIN,*) ' number of tomographic models = ',NFILES_TOMO
+ write(IMAIN,*) ' number of tomographic models = ',NFILES_TOMO
+ write(IMAIN,*) ' maximum number of data records = ',nrecord_max
+ write(IMAIN,*) ' size of required tomography arrays = ', &
+ sngl( 4.d0 * NFILES_TOMO * nrecord_max * CUSTOM_REAL / 1024.d0 /1024.d0),'MB per process'
write(IMAIN,*)
+ call flush_IMAIN()
endif
! checks if we found a tomography model
@@ -327,7 +331,8 @@ end subroutine init_tomography_files
! user output
if( myrank_tomo == 0 ) then
- write(IMAIN,*) ' ',trim(tomo_filename)
+ write(IMAIN,*) ' reading: ',trim(tomo_filename)
+ call flush_IMAIN()
endif
! opens file for reading
diff --git a/src/meshfem3D/meshfem3D.f90 b/src/meshfem3D/meshfem3D.f90
index de86cee..e1b2c05 100644
--- a/src/meshfem3D/meshfem3D.f90
+++ b/src/meshfem3D/meshfem3D.f90
@@ -373,25 +373,25 @@
write(IMAIN,*)
endif
-! read the parameter file
+! read the parameter file (DATA/Par_file)
call read_parameter_file(NPROC,NTSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP,DT,NGNOD,NGNOD2D, &
- UTM_PROJECTION_ZONE,SUPPRESS_UTM_PROJECTION,TOMOGRAPHY_PATH, &
- ATTENUATION,USE_OLSEN_ATTENUATION,LOCAL_PATH,NSOURCES, &
- APPROXIMATE_OCEAN_LOAD,TOPOGRAPHY,ANISOTROPY,STACEY_ABSORBING_CONDITIONS,MOVIE_TYPE, &
- MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &
- NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
- SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
- NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
- NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
- USE_FORCE_POINT_SOURCE,STACEY_INSTEAD_OF_FREE_SURFACE, &
- USE_RICKER_TIME_FUNCTION,OLSEN_ATTENUATION_RATIO,PML_CONDITIONS, &
- PML_INSTEAD_OF_FREE_SURFACE,f0_FOR_PML,IMODEL,FULL_ATTENUATION_SOLID,TRACTION_PATH,COUPLE_WITH_DSM)
+ UTM_PROJECTION_ZONE,SUPPRESS_UTM_PROJECTION,TOMOGRAPHY_PATH, &
+ ATTENUATION,USE_OLSEN_ATTENUATION,LOCAL_PATH,NSOURCES, &
+ APPROXIMATE_OCEAN_LOAD,TOPOGRAPHY,ANISOTROPY,STACEY_ABSORBING_CONDITIONS,MOVIE_TYPE, &
+ MOVIE_SURFACE,MOVIE_VOLUME,CREATE_SHAKEMAP,SAVE_DISPLACEMENT, &
+ NTSTEP_BETWEEN_FRAMES,USE_HIGHRES_FOR_MOVIES,HDUR_MOVIE, &
+ SAVE_MESH_FILES,PRINT_SOURCE_TIME_FUNCTION, &
+ NTSTEP_BETWEEN_OUTPUT_INFO,SIMULATION_TYPE,SAVE_FORWARD, &
+ NTSTEP_BETWEEN_READ_ADJSRC,NOISE_TOMOGRAPHY, &
+ USE_FORCE_POINT_SOURCE,STACEY_INSTEAD_OF_FREE_SURFACE, &
+ USE_RICKER_TIME_FUNCTION,OLSEN_ATTENUATION_RATIO,PML_CONDITIONS, &
+ PML_INSTEAD_OF_FREE_SURFACE,f0_FOR_PML,IMODEL,FULL_ATTENUATION_SOLID,TRACTION_PATH,COUPLE_WITH_DSM)
call read_adios_parameters(ADIOS_ENABLED, ADIOS_FOR_DATABASES, &
ADIOS_FOR_FORWARD_ARRAYS, ADIOS_FOR_MESH, &
ADIOS_FOR_KERNELS)
-! read the mesh parameter file
+! read the mesh parameter file (Data/meshfem3D_files/Mesh_Par_file)
! nullify(subregions,material_properties)
call read_mesh_parameter_file(LATITUDE_MIN,LATITUDE_MAX,LONGITUDE_MIN,LONGITUDE_MAX, &
UTM_X_MIN,UTM_X_MAX,UTM_Y_MIN,UTM_Y_MAX,Z_DEPTH_BLOCK, &
@@ -587,7 +587,11 @@
write(IMAIN,*) 'longitude min = ',LONGITUDE_MIN
write(IMAIN,*) 'longitude max = ',LONGITUDE_MAX
write(IMAIN,*)
- write(IMAIN,*) 'this is mapped to UTM in region ',UTM_PROJECTION_ZONE
+ if (SUPPRESS_UTM_PROJECTION) then
+ write(IMAIN,*) 'this is given directly as UTM'
+ else
+ write(IMAIN,*) 'this is mapped to UTM in region ',UTM_PROJECTION_ZONE
+ endif
write(IMAIN,*)
write(IMAIN,*) 'UTM X min = ',UTM_X_MIN
write(IMAIN,*) 'UTM X max = ',UTM_X_MAX
diff --git a/src/meshfem3D/read_mesh_parameter_file.f90 b/src/meshfem3D/read_mesh_parameter_file.f90
index 9951143..b05e455 100644
--- a/src/meshfem3D/read_mesh_parameter_file.f90
+++ b/src/meshfem3D/read_mesh_parameter_file.f90
@@ -85,31 +85,31 @@ contains
call open_parameter_file_mesh()
call read_value_dble_precision_mesh(IIN,IGNORE_JUNK,LATITUDE_MIN, 'LATITUDE_MIN', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 1'
+ if (ierr /= 0) stop 'Error reading Mesh parameter LATITUDE_MIN'
call read_value_dble_precision_mesh(IIN,IGNORE_JUNK,LATITUDE_MAX, 'LATITUDE_MAX', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 2'
+ if (ierr /= 0) stop 'Error reading Mesh parameter LATITUDE_MAX'
call read_value_dble_precision_mesh(IIN,IGNORE_JUNK,LONGITUDE_MIN, 'LONGITUDE_MIN', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 3'
+ if (ierr /= 0) stop 'Error reading Mesh parameter LONGITUDE_MIN'
call read_value_dble_precision_mesh(IIN,IGNORE_JUNK,LONGITUDE_MAX, 'LONGITUDE_MAX', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 4'
+ if (ierr /= 0) stop 'Error reading Mesh parameter LONGITUDE_MAX'
call read_value_dble_precision_mesh(IIN,IGNORE_JUNK,DEPTH_BLOCK_KM, 'DEPTH_BLOCK_KM', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 5'
+ if (ierr /= 0) stop 'Error reading Mesh parameter DEPTH_BLOCK_KM'
call read_value_integer_mesh(IIN,IGNORE_JUNK,UTM_PROJECTION_ZONE, 'UTM_PROJECTION_ZONE', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 6'
+ if (ierr /= 0) stop 'Error reading Mesh parameter UTM_PROJECTION_ZONE'
call read_value_logical_mesh(IIN,IGNORE_JUNK,SUPPRESS_UTM_PROJECTION, 'SUPPRESS_UTM_PROJECTION', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 7'
+ if (ierr /= 0) stop 'Error reading Mesh parameter SUPPRESS_UTM_PROJECTION'
call read_value_string_mesh(IIN,IGNORE_JUNK,INTERFACES_FILE, 'INTERFACES_FILE', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 8'
+ if (ierr /= 0) stop 'Error reading Mesh parameter INTERFACES_FILE'
call read_value_integer_mesh(IIN,IGNORE_JUNK,NEX_XI, 'NEX_XI', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 9'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NEX_XI'
call read_value_integer_mesh(IIN,IGNORE_JUNK,NEX_ETA, 'NEX_ETA', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 10'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NEX_ETA'
call read_value_integer_mesh(IIN,IGNORE_JUNK,NPROC_XI, 'NPROC_XI', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 11'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NPROC_XI'
call read_value_integer_mesh(IIN,IGNORE_JUNK,NPROC_ETA, 'NPROC_ETA', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 12'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NPROC_ETA'
! convert model size to UTM coordinates and depth of mesh to meters
call utm_geo(LONGITUDE_MIN,LATITUDE_MIN,UTM_X_MIN,UTM_Y_MIN,UTM_PROJECTION_ZONE,ILONGLAT2UTM,SUPPRESS_UTM_PROJECTION)
@@ -127,13 +127,13 @@ contains
UTM_MAX = max(UTM_Y_MAX-UTM_Y_MIN, UTM_X_MAX-UTM_X_MIN)/1000.0 ! in KM
call read_value_logical_mesh(IIN,IGNORE_JUNK,USE_REGULAR_MESH, 'USE_REGULAR_MESH', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 13'
+ if (ierr /= 0) stop 'Error reading Mesh parameter USE_REGULAR_MESH'
call read_value_integer_mesh(IIN,IGNORE_JUNK,NDOUBLINGS, 'NDOUBLINGS', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 14'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NDOUBLINGS'
call read_value_integer_mesh(IIN,IGNORE_JUNK,ner_doublings(1), 'NZ_DOUGLING_1', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 15'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NZ_DOUGLING_1'
call read_value_integer_mesh(IIN,IGNORE_JUNK,ner_doublings(2), 'NZ_DOUGLING_2', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 16'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NZ_DOUGLING_2'
if(ner_doublings(1) < ner_doublings(2) .and. NDOUBLINGS == 2) then
idoubl = ner_doublings(1)
@@ -142,19 +142,19 @@ contains
endif
call read_value_logical_mesh(IIN,IGNORE_JUNK,CREATE_ABAQUS_FILES, 'CREATE_ABAQUS_FILES', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 17'
+ if (ierr /= 0) stop 'Error reading Mesh parameter CREATE_ABAQUS_FILES'
call read_value_logical_mesh(IIN,IGNORE_JUNK,CREATE_DX_FILES, 'CREATE_DX_FILES', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 18'
+ if (ierr /= 0) stop 'Error reading Mesh parameter CREATE_DX_FILES'
call read_value_logical_mesh(IIN,IGNORE_JUNK,CREATE_VTK_FILES, 'CREATE_VTK_FILES', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 19'
+ if (ierr /= 0) stop 'Error reading Mesh parameter CREATE_VTK_FILES'
! file in which we store the databases
call read_value_string_mesh(IIN,IGNORE_JUNK,LOCAL_PATH, 'LOCAL_PATH', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 20'
+ if (ierr /= 0) stop 'Error reading Mesh parameter LOCAL_PATH'
! read number of materials
call read_value_integer_mesh(IIN,IGNORE_JUNK,NMATERIALS, 'NMATERIALS', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 21'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NMATERIALS'
! read materials properties
allocate(material_properties(NMATERIALS,6),stat=ierr)
@@ -174,7 +174,7 @@ contains
! read number of subregions
call read_value_integer_mesh(IIN,IGNORE_JUNK,NSUBREGIONS, 'NSUBREGIONS', ierr)
- if (ierr /= 0) stop 'Error reading Mesh parameter 22'
+ if (ierr /= 0) stop 'Error reading Mesh parameter NSUBREGIONS'
! read subregions properties
allocate(subregions(NSUBREGIONS,7),stat=ierr)
diff --git a/src/shared/read_parameter_file.f90 b/src/shared/read_parameter_file.f90
index 4fea2a8..af2c070 100644
--- a/src/shared/read_parameter_file.f90
+++ b/src/shared/read_parameter_file.f90
@@ -67,17 +67,6 @@
! opens file Par_file
call open_parameter_file(ierr)
- ! reads in parameters
- call read_value_integer(SIMULATION_TYPE, 'SIMULATION_TYPE', ierr)
- if (ierr /= 0) return
- call read_value_integer(NOISE_TOMOGRAPHY, 'NOISE_TOMOGRAPHY', ierr)
- if (ierr /= 0) return
- call read_value_logical(SAVE_FORWARD, 'SAVE_FORWARD', ierr)
- if (ierr /= 0) return
- call read_value_integer(UTM_PROJECTION_ZONE, 'UTM_PROJECTION_ZONE', ierr)
- if (ierr /= 0) return
- call read_value_logical(SUPPRESS_UTM_PROJECTION, 'SUPPRESS_UTM_PROJECTION', ierr)
- if (ierr /= 0) return
! total number of processors
call read_value_integer(NPROC, 'NPROC', ierr)
if (ierr /= 0) then
@@ -97,111 +86,102 @@
endif
NPROC = nproc_eta_old * nproc_xi_old
endif
+
+ ! reads in mandatory simulation parameters
+ call read_value_integer(SIMULATION_TYPE, 'SIMULATION_TYPE', ierr)
+ if (ierr /= 0) stop 'Error reading Par_file parameter SIMULATION_TYPE'
+ call read_value_integer(NOISE_TOMOGRAPHY, 'NOISE_TOMOGRAPHY', ierr)
+ if (ierr /= 0) stop 'Error reading Par_file parameter NOISE_TOMOGRAPHY'
+ call read_value_logical(SAVE_FORWARD, 'SAVE_FORWARD', ierr)
+ if (ierr /= 0) stop 'Error reading Par_file parameter SAVE_FORWARD'
+ call read_value_integer(UTM_PROJECTION_ZONE, 'UTM_PROJECTION_ZONE', ierr)
+ if (ierr /= 0) stop 'Error reading Par_file parameter UTM_PROJECTION_ZONE'
+ call read_value_logical(SUPPRESS_UTM_PROJECTION, 'SUPPRESS_UTM_PROJECTION', ierr)
+ if (ierr /= 0) stop 'Error reading Par_file parameter SUPPRESS_UTM_PROJECTION'
call read_value_integer(NSTEP, 'NSTEP', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter NSTEP'
call read_value_double_precision(DT, 'DT', ierr)
- if (ierr /= 0) return
-
- ! number of nodes for 2D and 3D shape functions for quadrilaterals and hexahedra
+ if (ierr /= 0) stop 'Error reading Par_file parameter DT'
call read_value_integer(NGNOD, 'NGNOD', ierr)
- if (ierr /= 0) return
-
- ! define the velocity model
+ if (ierr /= 0) stop 'Error reading Par_file parameter NGNOD'
call read_value_string(MODEL, 'MODEL', ierr)
- if (ierr /= 0) stop 'an error occurred while reading the parameter file: MODEL'
-
+ if (ierr /= 0) stop 'Error reading Par_file parameter MODEL'
call read_value_logical(APPROXIMATE_OCEAN_LOAD, 'APPROXIMATE_OCEAN_LOAD', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter APPROXIMATE_OCEAN_LOAD'
call read_value_logical(TOPOGRAPHY, 'TOPOGRAPHY', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter TOPOGRAPHY'
call read_value_logical(ATTENUATION, 'ATTENUATION', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter ATTENUATION'
call read_value_logical(FULL_ATTENUATION_SOLID, 'FULL_ATTENUATION_SOLID', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter FULL_ATTENUATION_SOLID'
call read_value_logical(ANISOTROPY, 'ANISOTROPY', ierr)
- if (ierr /= 0) return
-
+ if (ierr /= 0) stop 'Error reading Par_file parameter ANISOTROPY'
call read_value_string(TOMOGRAPHY_PATH, 'TOMOGRAPHY_PATH', ierr)
- if (ierr /= 0) return
-! see if we are running several independent runs in parallel
-! if so, add the right directory for that run (group numbers start at zero, but directory names start at run0001, thus we add one)
-! a negative value for "mygroup" is a convention that indicates that groups (i.e. sub-communicators, one per run) are off
- if(NUMBER_OF_SIMULTANEOUS_RUNS > 1 .and. mygroup >= 0) then
- write(path_to_add,"('run',i4.4,'/')") mygroup + 1
- TOMOGRAPHY_PATH = path_to_add(1:len_trim(path_to_add))//TOMOGRAPHY_PATH(1:len_trim(TOMOGRAPHY_PATH))
- endif
-
+ if (ierr /= 0) stop 'Error reading Par_file parameter TOMOGRAPHY_PATH'
call read_value_logical(USE_OLSEN_ATTENUATION, 'USE_OLSEN_ATTENUATION', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter USE_OLSEN_ATTENUATION'
call read_value_double_precision(OLSEN_ATTENUATION_RATIO, 'OLSEN_ATTENUATION_RATIO', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter OLSEN_ATTENUATION_RATIO'
call read_value_logical(PML_CONDITIONS, 'PML_CONDITIONS', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter PML_CONDITIONS'
call read_value_logical(PML_INSTEAD_OF_FREE_SURFACE, 'PML_INSTEAD_OF_FREE_SURFACE', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter PML_INSTEAD_OF_FREE_SURFACE'
call read_value_double_precision(f0_FOR_PML, 'f0_FOR_PML', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter f0_FOR_PML'
call read_value_logical(STACEY_ABSORBING_CONDITIONS, 'STACEY_ABSORBING_CONDITIONS', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter STACEY_ABSORBING_CONDITIONS'
call read_value_logical(STACEY_INSTEAD_OF_FREE_SURFACE, 'STACEY_INSTEAD_OF_FREE_SURFACE', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter STACEY_INSTEAD_OF_FREE_SURFACE'
call read_value_logical(CREATE_SHAKEMAP, 'CREATE_SHAKEMAP', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter CREATE_SHAKEMAP'
call read_value_logical(MOVIE_SURFACE, 'MOVIE_SURFACE', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter MOVIE_SURFACE'
call read_value_integer(MOVIE_TYPE, 'MOVIE_TYPE', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter MOVIE_TYPE'
call read_value_logical(MOVIE_VOLUME, 'MOVIE_VOLUME', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter MOVIE_VOLUME'
call read_value_logical(SAVE_DISPLACEMENT, 'SAVE_DISPLACEMENT', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter SAVE_DISPLACEMENT'
call read_value_logical(USE_HIGHRES_FOR_MOVIES, 'USE_HIGHRES_FOR_MOVIES', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter USE_HIGHRES_FOR_MOVIES'
call read_value_integer(NTSTEP_BETWEEN_FRAMES, 'NTSTEP_BETWEEN_FRAMES', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter NTSTEP_BETWEEN_FRAMES'
call read_value_double_precision(HDUR_MOVIE, 'HDUR_MOVIE', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter HDUR_MOVIE'
call read_value_logical(SAVE_MESH_FILES, 'SAVE_MESH_FILES', ierr)
- if (ierr /= 0) return
-
+ if (ierr /= 0) stop 'Error reading Par_file parameter SAVE_MESH_FILES'
call read_value_string(LOCAL_PATH, 'LOCAL_PATH', ierr)
- if (ierr /= 0) return
-! see if we are running several independent runs in parallel
-! if so, add the right directory for that run (group numbers start at zero, but directory names start at run0001, thus we add one)
-! a negative value for "mygroup" is a convention that indicates that groups (i.e. sub-communicators, one per run) are off
- if(NUMBER_OF_SIMULTANEOUS_RUNS > 1 .and. mygroup >= 0) then
- write(path_to_add,"('run',i4.4,'/')") mygroup + 1
- LOCAL_PATH = path_to_add(1:len_trim(path_to_add))//LOCAL_PATH(1:len_trim(LOCAL_PATH))
- endif
-
+ if (ierr /= 0) stop 'Error reading Par_file parameter LOCAL_PATH'
call read_value_integer(NTSTEP_BETWEEN_OUTPUT_INFO, 'NTSTEP_BETWEEN_OUTPUT_INFO', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter NTSTEP_BETWEEN_OUTPUT_INFO'
call read_value_integer(NTSTEP_BETWEEN_OUTPUT_SEISMOS, 'NTSTEP_BETWEEN_OUTPUT_SEISMOS', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter NTSTEP_BETWEEN_OUTPUT_SEISMOS'
call read_value_integer(NTSTEP_BETWEEN_READ_ADJSRC, 'NTSTEP_BETWEEN_READ_ADJSRC', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter NTSTEP_BETWEEN_READ_ADJSRC'
call read_value_logical(USE_FORCE_POINT_SOURCE, 'USE_FORCE_POINT_SOURCE', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter USE_FORCE_POINT_SOURCE'
call read_value_logical(USE_RICKER_TIME_FUNCTION, 'USE_RICKER_TIME_FUNCTION', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter USE_RICKER_TIME_FUNCTION'
call read_value_logical(PRINT_SOURCE_TIME_FUNCTION, 'PRINT_SOURCE_TIME_FUNCTION', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter PRINT_SOURCE_TIME_FUNCTION'
call read_value_logical(COUPLE_WITH_DSM, 'COUPLE_WITH_DSM', ierr)
- if (ierr /= 0) return
-
+ if (ierr /= 0) stop 'Error reading Par_file parameter COUPLE_WITH_DSM'
call read_value_string(TRACTION_PATH, 'TRACTION_PATH', ierr)
- if (ierr /= 0) return
+ if (ierr /= 0) stop 'Error reading Par_file parameter TRACTION_PATH'
+
+ ! close parameter file
+ call close_parameter_file()
+
! see if we are running several independent runs in parallel
! if so, add the right directory for that run (group numbers start at zero, but directory names start at run0001, thus we add one)
! a negative value for "mygroup" is a convention that indicates that groups (i.e. sub-communicators, one per run) are off
if(NUMBER_OF_SIMULTANEOUS_RUNS > 1 .and. mygroup >= 0) then
write(path_to_add,"('run',i4.4,'/')") mygroup + 1
+ LOCAL_PATH = path_to_add(1:len_trim(path_to_add))//LOCAL_PATH(1:len_trim(LOCAL_PATH))
+ TOMOGRAPHY_PATH = path_to_add(1:len_trim(path_to_add))//TOMOGRAPHY_PATH(1:len_trim(TOMOGRAPHY_PATH))
TRACTION_PATH = path_to_add(1:len_trim(path_to_add))//TRACTION_PATH(1:len_trim(TRACTION_PATH))
endif
- ! close parameter file
- call close_parameter_file()
-
! noise simulations:
! double the number of time steps, if running noise simulations (+/- branches)
if( NOISE_TOMOGRAPHY /= 0 ) NSTEP = 2*NSTEP-1
More information about the CIG-COMMITS
mailing list