[cig-commits] r16056 - in seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate: . PLOTTING src
carltape at geodynamics.org
carltape at geodynamics.org
Mon Nov 30 07:00:12 PST 2009
Author: carltape
Date: 2009-11-30 07:00:11 -0800 (Mon, 30 Nov 2009)
New Revision: 16056
Modified:
seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/joint_inversion.pl
seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_geometry.pl
seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_surf_model.pl
seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/README
seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/src/wave2d_constants.f90
Log:
Minor updates to run scripts and README.
Modified: seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/joint_inversion.pl
===================================================================
--- seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/joint_inversion.pl 2009-11-30 08:51:56 UTC (rev 16055)
+++ seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/joint_inversion.pl 2009-11-30 15:00:11 UTC (rev 16056)
@@ -26,12 +26,15 @@
($colors,$iker,$irun0,$ipoly,$qmax,$ihessian) = @ARGV;
$iter = 0;
+# base directory
+$pwd = $ENV{PWD};
+$dirplot = `dirname $pwd`; chomp($dirplot);
+$basedir = `dirname $dirplot`; chomp($basedir);
+#$basedir = "/data1/cig/seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate_work";
+
#-----------------------------------
# USER INPUT
-# base directory
-$dirq = "/data1/cig/seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate_work";
-
# OPTIONAL: directory with the "reference" conjugate gradient simulation is
$irun0_cg = $irun0;
#$irun0_cg = 600;
@@ -47,10 +50,10 @@
$sth = sprintf("%1i",$ihessian);
# directories
-$pdir = "${dirq}/PLOTTING";
+$pdir = "${basedir}/PLOTTING";
$ddir = "${pdir}/DATA_FILES";
-$idir = "${dirq}/INPUT";
-$odir = "${dirq}/OUTPUT/run_";
+$idir = "${basedir}/INPUT";
+$odir = "${basedir}/OUTPUT/run_";
if (not -e $ddir) {die("Check if ddir $ddir exist or not\n");}
# misfit function variable
Modified: seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_geometry.pl
===================================================================
--- seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_geometry.pl 2009-11-30 08:51:56 UTC (rev 16055)
+++ seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_geometry.pl 2009-11-30 15:00:11 UTC (rev 16056)
@@ -22,12 +22,15 @@
if (@ARGV < 7) {die("Usage: plot_geometry.pl xxx \n");}
($ibody,$irun,$efile_syn,$rfile_syn,$stf_tag,$mfile_syn,$hdur) = @ARGV;
-# USER INPUT
-$rundir = "/data1/cig/seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate_work";
+# base directory
+$pwd = $ENV{PWD};
+$dirplot = `dirname $pwd`; chomp($dirplot);
+$basedir = `dirname $dirplot`; chomp($basedir);
+#$basedir = "/data1/cig/seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate_work";
# directories
-$plotdir = "${rundir}/PLOTTING";
-$odir = "${rundir}/OUTPUT";
+$plotdir = "${basedir}/PLOTTING";
+$odir = "${basedir}/OUTPUT";
$figdir = "${plotdir}/FIGURES";
if (not -e $figdir) {die("Check if figdir $figdir exist or not\n");}
Modified: seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_surf_model.pl
===================================================================
--- seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_surf_model.pl 2009-11-30 08:51:56 UTC (rev 16055)
+++ seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/PLOTTING/plot_surf_model.pl 2009-11-30 15:00:11 UTC (rev 16056)
@@ -30,8 +30,11 @@
($iopt,$irun0,$imodel,$ievents,$pbar,$stf_file1,$ifinite) = @ARGV;
$comp = 1;
-# USER INPUT
-$rundir = "/data1/cig/seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate_work";
+# base directory
+$pwd = $ENV{PWD};
+$dirplot = `dirname $pwd`; chomp($dirplot);
+$basedir = `dirname $dirplot`; chomp($basedir);
+#$basedir = "/data1/cig/seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate_work";
($pmax,$ptick) = split("/",$pbar);
($ievent_all,$ievent_one,$ievent) = split("/",$ievents);
@@ -41,9 +44,9 @@
$mfile_dat = "structure_dat.dat";
# directories
-$plotdir = "${rundir}/PLOTTING";
-$odir = "${rundir}/OUTPUT";
-$idir = "${rundir}/INPUT";
+$plotdir = "${basedir}/PLOTTING";
+$odir = "${basedir}/OUTPUT";
+$idir = "${basedir}/INPUT";
$figdir = "${plotdir}/FIGURES";
if (not -e $figdir) {die("Check if figdir $figdir exist or not\n");}
Modified: seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/README
===================================================================
--- seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/README 2009-11-30 08:51:56 UTC (rev 16055)
+++ seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/README 2009-11-30 15:00:11 UTC (rev 16056)
@@ -49,8 +49,8 @@
make clean
make wave2d
-Lots of warning with the -fbounds-check flag.
-Need to modify the simple loops:
+There are lots of warning with the -fbounds-check flag.
+One of these indicates that we need to modify several simple loops:
Warning: Deleted feature: Step expression in DO loop at (1) must be integer
--------------------------------
@@ -60,7 +60,7 @@
The first six employ a conjugate-gradient algorithm,
while the fifth uses a source subspace projection method.
-In examples 1-5, the scalelength of the checkerboard is set by Nfac=3.
+In examples 0-5, the scalelength of the checkerboard is set by Nfac=3.
In examples 6-7, the scalelength of the checkerboard is set by Nfac=2 (more detailed).
Example 0: 1 source, structure inversion only using CG algorithm - 2 iterations
@@ -97,11 +97,9 @@
Then compile and execute:
make clean ; make wave2d ; wave2d
-Note that the output files are in the directories beginning with OUTPUT/run_0100.
- cd PLOTTING
-Change the user base directory
-in plot_geometry.pl, plot_surf_model.pl, joint_inversion.pl
- cd FIGURES
+The output files are in directories beginning with OUTPUT/run_0100.
+ cd PLOTTING/FIGURES
+Open ../plot_geometry.pl and ../plot_surf_model.pl
Execute the example lines --> geometry_0100.ps, model_0100.ps
cd ../../matlab/
Open matlab and the files wave2d_cg_poly.m and wave2d_cg_figs.m.
Modified: seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/src/wave2d_constants.f90
===================================================================
--- seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/src/wave2d_constants.f90 2009-11-30 08:51:56 UTC (rev 16055)
+++ seismo/3D/ADJOINT_TOMO/iterate_adj/SEM2D_iterate/src/wave2d_constants.f90 2009-11-30 15:00:11 UTC (rev 16056)
@@ -19,15 +19,15 @@
integer, parameter :: NSTEP = NFRAME*NSAVE
! time step in seconds
- !double precision, parameter :: DT = 2.0d-02 ! body waves
- double precision, parameter :: DT = 6.0d-02 ! membrane surface waves
+ !double precision, parameter :: DT = 2.0e-2 ! body waves
+ double precision, parameter :: DT = 6.0e-2 ! membrane surface waves
! temporal properties of source (source time function)
integer, parameter :: ISRC_TIME = 1 ! type (1)
- double precision, parameter :: hdur = 10.0d0 ! HALF-duration (s), membrane
- !double precision, parameter :: hdur = 2.0d0 ! HALF-duration (s), body
- double precision, parameter :: tshift = 2.0d0*DT*dble(NSAVE) ! time shift (s)
- !double precision, parameter :: tshift = 8.0d0*hdur
+ double precision, parameter :: hdur = 10.0 ! HALF-duration (s), membrane
+ !double precision, parameter :: hdur = 2.0 ! HALF-duration (s), body
+ double precision, parameter :: tshift = 2.0*DT*dble(NSAVE) ! time shift (s)
+ !double precision, parameter :: tshift = 8.0*hdur
logical, parameter :: SRC_TAPER = .true. ! taper the endpoints of the time series
! normalization factor of point source force
@@ -63,25 +63,25 @@
! STATION_COAST_BUFFER : exclude stations within this distance from edge of coast
integer, parameter :: IREC_SPACE = 2 ! see wave2d.f90
integer, parameter :: NMESH_REC = 17
- double precision, parameter :: SOURCE_GRID_BUFFER = 4.0d+03 ! m ! 4km for membrane surface waves
- double precision, parameter :: STATION_GRID_BUFFER = 15.0d+03 ! m ! 15km for membrane surface waves
- double precision, parameter :: STATION_COAST_BUFFER = 0.0d+03 ! m
+ double precision, parameter :: SOURCE_GRID_BUFFER = 4.0e3 ! m ! 4km for membrane surface waves
+ double precision, parameter :: STATION_GRID_BUFFER = 15.0e3 ! m ! 15km for membrane surface waves
+ double precision, parameter :: STATION_COAST_BUFFER = 0.0e3 ! m
! lower right corner for membrane surface waves plotting grid
- double precision, parameter :: LAT_MIN = 32.0d0
- double precision, parameter :: LON_MIN = -120.d0
+ double precision, parameter :: LAT_MIN = 32.0
+ double precision, parameter :: LON_MIN = -120.0
integer, parameter :: UTM_PROJECTION_ZONE = 11 ! southern California
! mesh specifications: membrane surface waves
- double precision, parameter :: LENGTH = 480.0d+03 ! m
- double precision, parameter :: HEIGHT = 480.0d+03 ! m
+ double precision, parameter :: LENGTH = 480.0e3 ! m
+ double precision, parameter :: HEIGHT = 480.0e3 ! m
double precision, parameter :: AREA = LENGTH*HEIGHT
integer, parameter :: NEX = 40
integer, parameter :: NEZ = 40
!!$
!!$! mesh specifications: body waves
-!!$ double precision, parameter :: LENGTH = 200.0d+03 ! m ! 400 for 1D body waves
-!!$ double precision, parameter :: HEIGHT = 80.0d+03 ! m
+!!$ double precision, parameter :: LENGTH = 200.0e3 ! m ! 400 for 1D body waves
+!!$ double precision, parameter :: HEIGHT = 80.0e3 ! m
!!$ integer, parameter :: NEX = 80 ! 160
!!$ integer, parameter :: NEZ = 32 ! 32
@@ -91,10 +91,10 @@
! model perturbations for HOMOGENEOUS model (or perturbation)
! scaling from beta to alpha
! value is from Master et al. (2000), "The relative behavior of shear velocity..."
- double precision, parameter :: R_BETA_OVER_ALPHA = 1.3d0
- double precision, parameter :: PBETA = 10.0d0
+ double precision, parameter :: R_BETA_OVER_ALPHA = 1.3
+ double precision, parameter :: PBETA = 10.0
double precision, parameter :: PALPHA = PBETA / R_BETA_OVER_ALPHA
- double precision, parameter :: PRHO = 0.0d0
+ double precision, parameter :: PRHO = 0.0
! reference model and target model choice
integer, parameter :: IMODEL_SYN = 0
@@ -116,7 +116,7 @@
integer, parameter :: ISMOOTH_MISFIT_KERNEL = 1
! smoothing scalelength
- double precision, parameter :: GAMMA_SMOOTH_MODEL = 30.0d+03
+ double precision, parameter :: GAMMA_SMOOTH_MODEL = 30.0e3
!========================
@@ -170,17 +170,17 @@
! SIGMA_FAC : stop if a model value exceeds SIGMA_FAC * sigma_m
! CONV_STOP : stop when the misfit value is this fraction of the INITIAL misfit value
integer, parameter :: NITERATION = 1
- double precision, parameter :: VAR_RED_MIN = 8.0d0
+ double precision, parameter :: VAR_RED_MIN = 8.0
! Gaussian errors containted in input file
! see wave2d_sigmas.m and INPUT/sigma_0p1_pert.dat
- double precision, parameter :: SIGMA_DT = 0.10d0
- double precision, parameter :: SIGMA_DLNA = 1.0d0
- double precision, parameter :: SIGMA_WAVEFORM = 1.0d0
+ double precision, parameter :: SIGMA_DT = 0.10
+ double precision, parameter :: SIGMA_DLNA = 1.0
+ double precision, parameter :: SIGMA_WAVEFORM = 1.0
logical, parameter :: ADD_DATA_ERRORS = .true.
- !double precision, parameter :: SIGMA_FAC = 2.0d0
- !double precision, parameter :: CONV_STOP = 1.0d-04
+ !double precision, parameter :: SIGMA_FAC = 2.0
+ !double precision, parameter :: CONV_STOP = 1.0e-4
! order of interpolating polynomial in conjugate gradient algorithm
! using POLY_ORDER = 3 required computing the gradient of the test model
@@ -218,22 +218,22 @@
! scalelength of smoothing Gaussian
! GJI paper : 30,60,90
! body waves : 10
- double precision, parameter :: GAMMA_SMOOTH = 60.0d+03
+ double precision, parameter :: GAMMA_SMOOTH = 60.0e3
! parameters for smoothing
logical, parameter :: HIGH_RES_SMOOTHING = .true. ! smooth at high resolution
logical, parameter :: EXAMPLE_GAUSSIAN = .false. ! plot an example Gaussian
! homogeneous background model (S.I. units)
- double precision, parameter :: DENSITY = 2.60d+03 ! kg/m^3
- double precision, parameter :: INCOMPRESSIBILITY = 5.20d+10 ! Pa
- double precision, parameter :: RIGIDITY = 2.66d+10 ! Pa
+ double precision, parameter :: DENSITY = 2.60e3 ! kg/m^3
+ double precision, parameter :: INCOMPRESSIBILITY = 5.20e10 ! Pa
+ double precision, parameter :: RIGIDITY = 2.66e10 ! Pa
!---------------------------------------------------------------
! measurement windows
- double precision, parameter :: HWIN1 = 2.5d0*hdur ! half-window width for pulse (2.5)
- double precision, parameter :: HWIN2 = 5.0d0*hdur ! half-window with for MTM measurement (zero-padding)
+ double precision, parameter :: HWIN1 = 2.5*hdur ! half-window width for pulse (2.5)
+ double precision, parameter :: HWIN2 = 5.0*hdur ! half-window with for MTM measurement (zero-padding)
!---------------------------------------------------------------
! CHT: do not change these
@@ -284,20 +284,20 @@
integer, parameter :: NUM_ITER = 1
! very large and very small values
- double precision, parameter :: HUGEVAL = 1.0d+30, TINYVAL = 1.0d-9
+ double precision, parameter :: HUGEVAL = 1.0e30, TINYVAL = 1.0e-9
! for the Gauss-Lobatto-Legendre points and weights
- double precision, parameter :: GAUSSALPHA = 0.0d0,GAUSSBETA = 0.0d0
+ double precision, parameter :: GAUSSALPHA = 0.0,GAUSSBETA = 0.0
!
! CONSTANTS
!
- double precision, parameter :: PI = 3.141592653589793d+00
- double precision, parameter :: FOUR_THIRDS = 4.0d0 / 3.0d0
- double precision, parameter :: ONE_THIRD = 1.0d0 / 3.0d0
- double precision, parameter :: ONEOVERTWO = 0.5d0
- double precision, parameter :: EPS = 1.0d-35
+ double precision, parameter :: PI = 3.141592653589793
+ double precision, parameter :: FOUR_THIRDS = 4.0 / 3.0
+ double precision, parameter :: ONE_THIRD = 1.0 / 3.0
+ double precision, parameter :: ONEOVERTWO = 0.5
double precision, parameter :: DEG = 180.0/PI
+! double precision, parameter :: EPS = 1.0e-35
!!$! parameter for FFTW
!!$ integer, parameter :: NOUT = NSTEP/2 + 1
More information about the CIG-COMMITS
mailing list