[cig-commits] r21212 - in seismo/3D/SPECFEM3D_GLOBE/trunk/src: meshfem3D shared specfem3D
elliott.sales.de.andrade at geodynamics.org
elliott.sales.de.andrade at geodynamics.org
Sun Jan 6 01:14:20 PST 2013
Author: elliott.sales.de.andrade
Date: 2013-01-06 01:14:20 -0800 (Sun, 06 Jan 2013)
New Revision: 21212
Modified:
seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/param_reader.c
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_parameter_file.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_value_parameters.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90
Log:
Fix up Par_file reading.
Remove the common blocks for the parameter file parsing. I think having
the subroutine return an error as an argument seems more Fortran-y.
Also, the calls to err_occurred in meshfem and specfem are useless as
read_value_parameters would have called stop already.
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90 2013-01-06 09:14:13 UTC (rev 21211)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/meshfem3D/meshfem3D.f90 2013-01-06 09:14:20 UTC (rev 21212)
@@ -374,8 +374,6 @@
! 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, &
@@ -545,10 +543,6 @@
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.,NOISE_TOMOGRAPHY,SAVE_REGULAR_KL)
-
- if(err_occurred() /= 0) &
- call exit_MPI(myrank,'an error occurred while reading the parameter file')
-
endif
! distributes parameters from master to all processes
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/param_reader.c
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/param_reader.c 2013-01-06 09:14:13 UTC (rev 21211)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/param_reader.c 2013-01-06 09:14:20 UTC (rev 21212)
@@ -104,6 +104,7 @@
return;
}
free(fncopy);
+ *ierr = 0;
}
void
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_parameter_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_parameter_file.f90 2013-01-06 09:14:13 UTC (rev 21211)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_parameter_file.f90 2013-01-06 09:14:20 UTC (rev 21212)
@@ -72,123 +72,124 @@
character(len=150) OUTPUT_FILES,LOCAL_PATH,MODEL
! local variables
- integer, external :: err_occurred
+ integer :: ierr
! gets the base pathname for output files
call get_value_string(OUTPUT_FILES, 'OUTPUT_FILES', 'OUTPUT_FILES')
! opens the parameter file: DATA/Par_file
- call open_parameter_file()
+ call open_parameter_file(ierr)
+ if (ierr /= 0) stop 'an error occurred while opening the parameter file'
! reads in values
- call read_value_integer(SIMULATION_TYPE, 'solver.SIMULATION_TYPE')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: SIMULATION_TYPE'
- call read_value_integer(NOISE_TOMOGRAPHY, 'solver.NOISE_TOMOGRAPHY')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NOISE_TOMOGRAPHY'
- call read_value_logical(SAVE_FORWARD, 'solver.SAVE_FORWARD')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: SAVE_FORWARD'
- call read_value_integer(NCHUNKS, 'mesher.NCHUNKS')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NCHUNKS'
- call read_value_double_precision(ANGULAR_WIDTH_XI_IN_DEGREES, 'mesher.ANGULAR_WIDTH_XI_IN_DEGREES')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: ANGULAR_WIDTH_XI...'
- call read_value_double_precision(ANGULAR_WIDTH_ETA_IN_DEGREES, 'mesher.ANGULAR_WIDTH_ETA_IN_DEGREES')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: ANGULAR_WIDTH_ETA...'
- call read_value_double_precision(CENTER_LATITUDE_IN_DEGREES, 'mesher.CENTER_LATITUDE_IN_DEGREES')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: CENTER_LATITUDE...'
- call read_value_double_precision(CENTER_LONGITUDE_IN_DEGREES, 'mesher.CENTER_LONGITUDE_IN_DEGREES')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: CENTER_LONGITUDE...'
- call read_value_double_precision(GAMMA_ROTATION_AZIMUTH, 'mesher.GAMMA_ROTATION_AZIMUTH')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: GAMMA_ROTATION...'
+ call read_value_integer(SIMULATION_TYPE, 'solver.SIMULATION_TYPE', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: SIMULATION_TYPE'
+ call read_value_integer(NOISE_TOMOGRAPHY, 'solver.NOISE_TOMOGRAPHY', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NOISE_TOMOGRAPHY'
+ call read_value_logical(SAVE_FORWARD, 'solver.SAVE_FORWARD', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: SAVE_FORWARD'
+ call read_value_integer(NCHUNKS, 'mesher.NCHUNKS', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NCHUNKS'
+ call read_value_double_precision(ANGULAR_WIDTH_XI_IN_DEGREES, 'mesher.ANGULAR_WIDTH_XI_IN_DEGREES', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: ANGULAR_WIDTH_XI...'
+ call read_value_double_precision(ANGULAR_WIDTH_ETA_IN_DEGREES, 'mesher.ANGULAR_WIDTH_ETA_IN_DEGREES', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: ANGULAR_WIDTH_ETA...'
+ call read_value_double_precision(CENTER_LATITUDE_IN_DEGREES, 'mesher.CENTER_LATITUDE_IN_DEGREES', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: CENTER_LATITUDE...'
+ call read_value_double_precision(CENTER_LONGITUDE_IN_DEGREES, 'mesher.CENTER_LONGITUDE_IN_DEGREES', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: CENTER_LONGITUDE...'
+ call read_value_double_precision(GAMMA_ROTATION_AZIMUTH, 'mesher.GAMMA_ROTATION_AZIMUTH', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: GAMMA_ROTATION...'
! number of elements at the surface along the two sides of the first chunk
- call read_value_integer(NEX_XI_read, 'mesher.NEX_XI')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NEX_XI'
- call read_value_integer(NEX_ETA_read, 'mesher.NEX_ETA')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NEX_ETA'
- call read_value_integer(NPROC_XI_read, 'mesher.NPROC_XI')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NPROC_XI'
- call read_value_integer(NPROC_ETA_read, 'mesher.NPROC_ETA')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NPROC_ETA'
- call read_value_logical(OCEANS, 'model.OCEANS')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: OCEANS'
- call read_value_logical(ELLIPTICITY, 'model.ELLIPTICITY')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: ELLIPTICITIY'
- call read_value_logical(TOPOGRAPHY, 'model.TOPOGRAPHY')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: TOPOGRAPHY'
- call read_value_logical(GRAVITY, 'model.GRAVITY')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: GRAVITY'
- call read_value_logical(ROTATION, 'model.ROTATION')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: ROTATION'
- call read_value_logical(ATTENUATION, 'model.ATTENUATION')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: ATTENUATION'
- call read_value_logical(ABSORBING_CONDITIONS, 'solver.ABSORBING_CONDITIONS')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: ABSORBING_CONDITIONS'
+ call read_value_integer(NEX_XI_read, 'mesher.NEX_XI', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NEX_XI'
+ call read_value_integer(NEX_ETA_read, 'mesher.NEX_ETA', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NEX_ETA'
+ call read_value_integer(NPROC_XI_read, 'mesher.NPROC_XI', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NPROC_XI'
+ call read_value_integer(NPROC_ETA_read, 'mesher.NPROC_ETA', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NPROC_ETA'
+ call read_value_logical(OCEANS, 'model.OCEANS', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: OCEANS'
+ call read_value_logical(ELLIPTICITY, 'model.ELLIPTICITY', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: ELLIPTICITIY'
+ call read_value_logical(TOPOGRAPHY, 'model.TOPOGRAPHY', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: TOPOGRAPHY'
+ call read_value_logical(GRAVITY, 'model.GRAVITY', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: GRAVITY'
+ call read_value_logical(ROTATION, 'model.ROTATION', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: ROTATION'
+ call read_value_logical(ATTENUATION, 'model.ATTENUATION', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: ATTENUATION'
+ call read_value_logical(ABSORBING_CONDITIONS, 'solver.ABSORBING_CONDITIONS', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: ABSORBING_CONDITIONS'
! define the velocity model
- call read_value_string(MODEL, 'model.MODEL')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MODEL'
- call read_value_double_precision(RECORD_LENGTH_IN_MINUTES, 'solver.RECORD_LENGTH_IN_MINUTES')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: RECORD_LENGTH..'
- call read_value_logical(MOVIE_SURFACE, 'solver.MOVIE_SURFACE')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_SURFACE'
- call read_value_logical(MOVIE_VOLUME, 'solver.MOVIE_VOLUME')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_VOLUME'
- call read_value_logical(MOVIE_COARSE,'solver.MOVIE_COARSE')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_COARSE'
- call read_value_integer(NTSTEP_BETWEEN_FRAMES, 'solver.NTSTEP_BETWEEN_FRAMES')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NTSTEP_BETWEEN_FRAMES'
- call read_value_double_precision(HDUR_MOVIE, 'solver.HDUR_MOVIE')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: HDUR_MOVIE'
- call read_value_integer(MOVIE_VOLUME_TYPE, 'solver.MOVIE_VOLUME_TYPE')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_VOLUME_TYPE'
- call read_value_double_precision(MOVIE_TOP_KM, 'solver.MOVIE_TOP_KM')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_TOP_KM'
- call read_value_double_precision(MOVIE_BOTTOM_KM, 'solver.MOVIE_BOTTOM_KM')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_BOTTOM_KM'
- call read_value_double_precision(MOVIE_WEST_DEG, 'solver.MOVIE_WEST_DEG')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_WEST_DEG'
- call read_value_double_precision(MOVIE_EAST_DEG, 'solver.MOVIE_EAST_DEG')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_EAST_DEG'
- call read_value_double_precision(MOVIE_NORTH_DEG, 'solver.MOVIE_NORTH_DEG')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_NORTH_DEG'
- call read_value_double_precision(MOVIE_SOUTH_DEG, 'solver.MOVIE_SOUTH_DEG')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_SOUTH_DEG'
- call read_value_integer(MOVIE_START, 'solver.MOVIE_START')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_START'
- call read_value_integer(MOVIE_STOP, 'solver.MOVIE_STOP')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: MOVIE_STOP'
- call read_value_logical(SAVE_MESH_FILES, 'mesher.SAVE_MESH_FILES')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: SAVE_MESH_FILES'
- call read_value_integer(NUMBER_OF_RUNS, 'solver.NUMBER_OF_RUNS')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NUMBER_OF_RUNS'
- call read_value_integer(NUMBER_OF_THIS_RUN, 'solver.NUMBER_OF_THIS_RUN')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NUMBER_OF_THIS_RUN'
- call read_value_string(LOCAL_PATH, 'LOCAL_PATH')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: LOCAL_PATH'
- call read_value_integer(NTSTEP_BETWEEN_OUTPUT_INFO, 'solver.NTSTEP_BETWEEN_OUTPUT_INFO')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NTSTEP_BETWEEN_OUTPUT_INFO'
- call read_value_integer(NTSTEP_BETWEEN_OUTPUT_SEISMOS, 'solver.NTSTEP_BETWEEN_OUTPUT_SEISMOS')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: NTSTEP_BETWEEN_OUTPUT_SEISMOS'
- call read_value_integer(NTSTEP_BETWEEN_READ_ADJSRC, 'solver.NTSTEP_BETWEEN_READ_ADJSRC')
- if(err_occurred() /= 0) return
- call read_value_logical(OUTPUT_SEISMOS_ASCII_TEXT, 'solver.OUTPUT_SEISMOS_ASCII_TEXT')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: OUTPUT_SIESMOS_ASCII_TEXT'
- call read_value_logical(OUTPUT_SEISMOS_SAC_ALPHANUM, 'solver.OUTPUT_SEISMOS_SAC_ALPHANUM')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: OUTPUT_SEISMOS_SAC_ALPHANUM'
- call read_value_logical(OUTPUT_SEISMOS_SAC_BINARY, 'solver.OUTPUT_SEISMOS_SAC_BINARY')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: OUTPUT_SEISMOS_SAC_BINARY'
- call read_value_logical(ROTATE_SEISMOGRAMS_RT, 'solver.ROTATE_SEISMOGRAMS_RT')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: ROTATE_SEISMOGRAMS_RT'
- call read_value_logical(WRITE_SEISMOGRAMS_BY_MASTER, 'solver.WRITE_SEISMOGRAMS_BY_MASTER')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: WRITE_SEISMOGRAMS_BY_MASTER'
- call read_value_logical(SAVE_ALL_SEISMOS_IN_ONE_FILE, 'solver.SAVE_ALL_SEISMOS_IN_ONE_FILE')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: SAVE_ALL_SEISMOS_IN_ONE_FILE'
- call read_value_logical(USE_BINARY_FOR_LARGE_FILE, 'solver.USE_BINARY_FOR_LARGE_FILE')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: USE_BINARY_FOR_LARGE_FILE'
- call read_value_logical(RECEIVERS_CAN_BE_BURIED, 'solver.RECEIVERS_CAN_BE_BURIED')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: RECEIVERS_CAN_BE_BURIED'
- call read_value_logical(PRINT_SOURCE_TIME_FUNCTION, 'solver.PRINT_SOURCE_TIME_FUNCTION')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: PRINT_SOURCE_TIME_FUNCTION'
- call read_value_logical(SAVE_REGULAR_KL, 'solver.SAVE_REGULAR_KL')
- if(err_occurred() /= 0) stop 'an error occurred while reading the parameter file: SAVE_REGULAR_KL'
+ call read_value_string(MODEL, 'model.MODEL', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MODEL'
+ call read_value_double_precision(RECORD_LENGTH_IN_MINUTES, 'solver.RECORD_LENGTH_IN_MINUTES', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: RECORD_LENGTH..'
+ call read_value_logical(MOVIE_SURFACE, 'solver.MOVIE_SURFACE', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_SURFACE'
+ call read_value_logical(MOVIE_VOLUME, 'solver.MOVIE_VOLUME', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_VOLUME'
+ call read_value_logical(MOVIE_COARSE,'solver.MOVIE_COARSE', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_COARSE'
+ call read_value_integer(NTSTEP_BETWEEN_FRAMES, 'solver.NTSTEP_BETWEEN_FRAMES', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NTSTEP_BETWEEN_FRAMES'
+ call read_value_double_precision(HDUR_MOVIE, 'solver.HDUR_MOVIE', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: HDUR_MOVIE'
+ call read_value_integer(MOVIE_VOLUME_TYPE, 'solver.MOVIE_VOLUME_TYPE', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_VOLUME_TYPE'
+ call read_value_double_precision(MOVIE_TOP_KM, 'solver.MOVIE_TOP_KM', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_TOP_KM'
+ call read_value_double_precision(MOVIE_BOTTOM_KM, 'solver.MOVIE_BOTTOM_KM', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_BOTTOM_KM'
+ call read_value_double_precision(MOVIE_WEST_DEG, 'solver.MOVIE_WEST_DEG', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_WEST_DEG'
+ call read_value_double_precision(MOVIE_EAST_DEG, 'solver.MOVIE_EAST_DEG', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_EAST_DEG'
+ call read_value_double_precision(MOVIE_NORTH_DEG, 'solver.MOVIE_NORTH_DEG', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_NORTH_DEG'
+ call read_value_double_precision(MOVIE_SOUTH_DEG, 'solver.MOVIE_SOUTH_DEG', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_SOUTH_DEG'
+ call read_value_integer(MOVIE_START, 'solver.MOVIE_START', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_START'
+ call read_value_integer(MOVIE_STOP, 'solver.MOVIE_STOP', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: MOVIE_STOP'
+ call read_value_logical(SAVE_MESH_FILES, 'mesher.SAVE_MESH_FILES', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: SAVE_MESH_FILES'
+ call read_value_integer(NUMBER_OF_RUNS, 'solver.NUMBER_OF_RUNS', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NUMBER_OF_RUNS'
+ call read_value_integer(NUMBER_OF_THIS_RUN, 'solver.NUMBER_OF_THIS_RUN', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NUMBER_OF_THIS_RUN'
+ call read_value_string(LOCAL_PATH, 'LOCAL_PATH', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: LOCAL_PATH'
+ call read_value_integer(NTSTEP_BETWEEN_OUTPUT_INFO, 'solver.NTSTEP_BETWEEN_OUTPUT_INFO', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NTSTEP_BETWEEN_OUTPUT_INFO'
+ call read_value_integer(NTSTEP_BETWEEN_OUTPUT_SEISMOS, 'solver.NTSTEP_BETWEEN_OUTPUT_SEISMOS', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: NTSTEP_BETWEEN_OUTPUT_SEISMOS'
+ call read_value_integer(NTSTEP_BETWEEN_READ_ADJSRC, 'solver.NTSTEP_BETWEEN_READ_ADJSRC', ierr)
+ if (ierr /= 0) return
+ call read_value_logical(OUTPUT_SEISMOS_ASCII_TEXT, 'solver.OUTPUT_SEISMOS_ASCII_TEXT', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: OUTPUT_SIESMOS_ASCII_TEXT'
+ call read_value_logical(OUTPUT_SEISMOS_SAC_ALPHANUM, 'solver.OUTPUT_SEISMOS_SAC_ALPHANUM', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: OUTPUT_SEISMOS_SAC_ALPHANUM'
+ call read_value_logical(OUTPUT_SEISMOS_SAC_BINARY, 'solver.OUTPUT_SEISMOS_SAC_BINARY', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: OUTPUT_SEISMOS_SAC_BINARY'
+ call read_value_logical(ROTATE_SEISMOGRAMS_RT, 'solver.ROTATE_SEISMOGRAMS_RT', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: ROTATE_SEISMOGRAMS_RT'
+ call read_value_logical(WRITE_SEISMOGRAMS_BY_MASTER, 'solver.WRITE_SEISMOGRAMS_BY_MASTER', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: WRITE_SEISMOGRAMS_BY_MASTER'
+ call read_value_logical(SAVE_ALL_SEISMOS_IN_ONE_FILE, 'solver.SAVE_ALL_SEISMOS_IN_ONE_FILE', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: SAVE_ALL_SEISMOS_IN_ONE_FILE'
+ call read_value_logical(USE_BINARY_FOR_LARGE_FILE, 'solver.USE_BINARY_FOR_LARGE_FILE', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: USE_BINARY_FOR_LARGE_FILE'
+ call read_value_logical(RECEIVERS_CAN_BE_BURIED, 'solver.RECEIVERS_CAN_BE_BURIED', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: RECEIVERS_CAN_BE_BURIED'
+ call read_value_logical(PRINT_SOURCE_TIME_FUNCTION, 'solver.PRINT_SOURCE_TIME_FUNCTION', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: PRINT_SOURCE_TIME_FUNCTION'
+ call read_value_logical(SAVE_REGULAR_KL, 'solver.SAVE_REGULAR_KL', ierr)
+ if (ierr /= 0) stop 'an error occurred while reading the parameter file: SAVE_REGULAR_KL'
! closes parameter file
call close_parameter_file()
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_value_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_value_parameters.f90 2013-01-06 09:14:13 UTC (rev 21211)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_value_parameters.f90 2013-01-06 09:14:20 UTC (rev 21212)
@@ -27,7 +27,7 @@
! read values from parameter file, ignoring white lines and comments
- subroutine read_value_integer(value_to_read, name)
+ subroutine read_value_integer(value_to_read, name, ierr)
implicit none
@@ -35,9 +35,8 @@
character(len=*) name
character(len=100) string_read
integer ierr
- common /param_err_common/ ierr
- call param_read(string_read, len(string_read), name, len(name), ierr);
+ call param_read(string_read, len(string_read), name, len(name), ierr)
if (ierr .ne. 0) return
read(string_read,*,iostat=ierr) value_to_read
@@ -45,7 +44,7 @@
!--------------------
- subroutine read_value_double_precision(value_to_read, name)
+ subroutine read_value_double_precision(value_to_read, name, ierr)
implicit none
@@ -53,9 +52,8 @@
character(len=*) name
character(len=100) string_read
integer ierr
- common /param_err_common/ ierr
- call param_read(string_read, len(string_read), name, len(name), ierr);
+ call param_read(string_read, len(string_read), name, len(name), ierr)
if (ierr .ne. 0) return
read(string_read,*,iostat=ierr) value_to_read
@@ -63,7 +61,7 @@
!--------------------
- subroutine read_value_logical(value_to_read, name)
+ subroutine read_value_logical(value_to_read, name, ierr)
implicit none
@@ -71,9 +69,8 @@
character(len=*) name
character(len=100) string_read
integer ierr
- common /param_err_common/ ierr
- call param_read(string_read, len(string_read), name, len(name), ierr);
+ call param_read(string_read, len(string_read), name, len(name), ierr)
if (ierr .ne. 0) return
read(string_read,*,iostat=ierr) value_to_read
@@ -81,7 +78,7 @@
!--------------------
- subroutine read_value_string(value_to_read, name)
+ subroutine read_value_string(value_to_read, name, ierr)
implicit none
@@ -89,9 +86,8 @@
character(len=*) name
character(len=150) string_read
integer ierr
- common /param_err_common/ ierr
- call param_read(string_read, len(string_read), name, len(name), ierr);
+ call param_read(string_read, len(string_read), name, len(name), ierr)
if (ierr .ne. 0) return
value_to_read = string_read
@@ -99,14 +95,13 @@
!--------------------
- subroutine open_parameter_file
+ subroutine open_parameter_file(ierr)
integer ierr
- common /param_err_common/ ierr
character(len=50) filename
filename = 'DATA/Par_file'
- call param_open(filename, len(filename), ierr);
+ call param_open(filename, len(filename), ierr)
if (ierr .ne. 0) return
end subroutine open_parameter_file
@@ -115,23 +110,12 @@
subroutine close_parameter_file
- call param_close();
+ call param_close()
end subroutine close_parameter_file
!--------------------
- integer function err_occurred()
-
- integer ierr
- common /param_err_common/ ierr
-
- err_occurred = ierr
-
- end function err_occurred
-
-!--------------------
-
!
! unused routines:
!
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90 2013-01-06 09:14:13 UTC (rev 21211)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/initialize_simulation.f90 2013-01-06 09:14:20 UTC (rev 21212)
@@ -149,7 +149,6 @@
ATTENUATION,ATTENUATION_3D,ROTATION,ELLIPTICITY,GRAVITY,CASE_3D,ISOTROPIC_3D_MANTLE, &
HETEROGEN_3D_MANTLE,CRUSTAL,INFLATE_CENTRAL_CUBE
character(len=150) :: MODEL,dummystring
- integer, external :: err_occurred
! sizeprocs returns number of processes started (should be equal to NPROCTOT).
! myrank is the rank of each process, between 0 and sizeprocs-1.
! as usual in MPI, process 0 is in charge of coordinating everything
@@ -193,10 +192,6 @@
WRITE_SEISMOGRAMS_BY_MASTER,SAVE_ALL_SEISMOS_IN_ONE_FILE, &
USE_BINARY_FOR_LARGE_FILE,.false.,NOISE_TOMOGRAPHY,SAVE_REGULAR_KL)
- if(err_occurred() /= 0) then
- call exit_MPI(myrank,'an error occurred while reading the parameter file')
- endif
-
endif
! distributes parameters from master to all processes
More information about the CIG-COMMITS
mailing list