[cig-commits] r13438 - in seismo/3D/GRD_CMT3D: cmt3d grid3d scripts

liuqy at geodynamics.org liuqy at geodynamics.org
Tue Dec 2 08:09:37 PST 2008


Author: liuqy
Date: 2008-12-02 08:09:37 -0800 (Tue, 02 Dec 2008)
New Revision: 13438

Modified:
   seismo/3D/GRD_CMT3D/cmt3d/cmt3d_constants.f90
   seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub.f90
   seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub2.f90
   seismo/3D/GRD_CMT3D/grid3d/grid3d_variables.f90
   seismo/3D/GRD_CMT3D/scripts/mech_table.pl
Log:
cmt3d: change derivative extensions to Mrr,Mtt,Mpp,Mrt,Mrp,Mtp,dep,lon,lat,ctm,hdr,
       set npts1=0 before reading derivative syn to make sure they do exist
grid3d: eliminate the use of real*8
mech_table.pl: fix the case when CMTSOLUTION_GRD does not exist



Modified: seismo/3D/GRD_CMT3D/cmt3d/cmt3d_constants.f90
===================================================================
--- seismo/3D/GRD_CMT3D/cmt3d/cmt3d_constants.f90	2008-12-02 09:27:31 UTC (rev 13437)
+++ seismo/3D/GRD_CMT3D/cmt3d/cmt3d_constants.f90	2008-12-02 16:09:37 UTC (rev 13438)
@@ -27,10 +27,9 @@
        SCALE_MOMENT, SCALE_MOMENT, SCALE_DEPTH, SCALE_DELTA, SCALE_DELTA, &
         SCALE_CTIME, SCALE_HDUR /)   
 
-  character(len=9), parameter :: PAR_NAME(NPARMAX) =  &
-       (/'Mrr      ','Mtt      ','Mpp      ','Mrt      ','Mrp      ', &
-         'Mtp      ','depth    ','longitude','latitude ', &
-         'ctime    ','hdur     '/)  
+  character(len=3), parameter :: PAR_NAME(NPARMAX) =  &
+       (/'Mrr','Mtt','Mpp','Mrt','Mrp', 'Mtp','dep','lon','lat', &
+         'ctm','hdr'/)  
 ! maximum npts for records
   integer, parameter :: NDATAMAX = 30000
 

Modified: seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub.f90
===================================================================
--- seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub.f90	2008-12-02 09:27:31 UTC (rev 13437)
+++ seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub.f90	2008-12-02 16:09:37 UTC (rev 13438)
@@ -118,7 +118,7 @@
        read(IOWIN,'(a)') syn_file
        read(IOWIN,*) nwins(i)
        if (nwins(i) < 0) stop 'Check nwins(i) '
-!       if (DEBUG) print *, trim(data_file), ' ', trim(syn_file)
+       if (DEBUG) print *, trim(data_file), ' ', trim(syn_file)
        nwin_total = nwin_total + nwins(i)
        do j = 1, nwins(i)
           read(IOWIN,*) tstart, tend
@@ -282,6 +282,8 @@
     new_cmt_par(1:npar) = new_par(1:npar) * SCALE_PAR(1:npar)
 
     if (DEBUG) then
+       write(*,'(/,a)') 'Gaussian Elimination gives dm(1:npar) ...'
+       write(*,'(11e15.3)') sngl(dm(1:npar))
        write(*,'(/,a)') ' Output scaled parameters are ...'
        write(*,*)  
        write(*,'(11e15.3,/)') sngl(new_par(1:npar))

Modified: seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub2.f90
===================================================================
--- seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub2.f90	2008-12-02 09:27:31 UTC (rev 13437)
+++ seismo/3D/GRD_CMT3D/cmt3d/cmt3d_sub2.f90	2008-12-02 16:09:37 UTC (rev 13438)
@@ -186,12 +186,14 @@
     do i = 1, npar
        dsyn_file = trim(syn_file) // '.' // trim(PAR_NAME(i))
        ! wierd enough, rsac1 can not detect the non-existence of dsyn_file
+       npts1=0
        call rsac1(dsyn_file,dsyn_sngl(:,i),npts1,t0_1,dt1,NDATAMAX,nerr)
        if (nerr /= 0) stop 'Error reading dsynthetics' 
        if (npts1 /= npts2 .or. abs(t0_1-t0) > EPS2 .or. abs(dt1-dt) > EPS5) then
           print *,  trim(dsyn_file),npts1,t0_1,dt1,'; nerr = ', nerr
           stop 'Check npts, b, dt of the derivative synthetics'
        endif
+
        if (i <= NM) then
           dsyn_sngl(1:npts,i) = dsyn_sngl(1:npts,i) / dcmt_par(i)
        else

Modified: seismo/3D/GRD_CMT3D/grid3d/grid3d_variables.f90
===================================================================
--- seismo/3D/GRD_CMT3D/grid3d/grid3d_variables.f90	2008-12-02 09:27:31 UTC (rev 13437)
+++ seismo/3D/GRD_CMT3D/grid3d/grid3d_variables.f90	2008-12-02 16:09:37 UTC (rev 13438)
@@ -11,7 +11,7 @@
   ! data selection
   character(len=150) :: flexwin_out_file
   logical :: weigh_data_files
-  real*8 :: comp_z_weight, comp_r_weight, comp_t_weight,&
+  real :: comp_z_weight, comp_r_weight, comp_t_weight,&
        az_exp_weight, &
        pnl_dist_weight, rayleigh_dist_weight, love_dist_weight
 

Modified: seismo/3D/GRD_CMT3D/scripts/mech_table.pl
===================================================================
--- seismo/3D/GRD_CMT3D/scripts/mech_table.pl	2008-12-02 09:27:31 UTC (rev 13437)
+++ seismo/3D/GRD_CMT3D/scripts/mech_table.pl	2008-12-02 16:09:37 UTC (rev 13438)
@@ -14,7 +14,7 @@
 $weigh_data_nocomp="1 1 1 0.5 1.15 0.55 0.78";
 $weigh_data_noaz="2 2 1 0 1.15 0.55 0.78";
 
- at names=("initial","grid_search","7 Par+ZT", "6 Par+ZT","7 Par+no-SC","7 Par+no-AZ","6 Par+dc","7 Par+DC","7 Par+no-Comp");
+ at names=("initial","grid_search","7 Par+ZT", "6 Par+ZT","7 Par+no-SC","7 Par+no-AZ","6 Par+DC","7 Par+DC","7 Par+no-Comp");
 @npars=(6,6, 7, 6,7,7, 6,7,7);
 @wdatas=($weigh_data, $weigh_data, $weigh_data, $weigh_data,$weigh_data,$weigh_data_noaz, $weigh_data,$weigh_data,$weigh_data_nocomp);
 @scorrs=("true","true",".true.",  ".true.", ".false.", ".true.",  ".true.",".true.",".true.");
@@ -32,15 +32,17 @@
 
 if (not -f "cmt3d_flexwin") {die("Check if cmt3d_flexwin exists or not\n");}
 
-open(INV,"$inv_file");@all=<INV>;close(INV);
+open(INV,"$inv_file")|| die("check $inv_file\n");
+ at all=<INV>;close(INV);
+
 $cmt=$all[0]; $cmt_new=$all[1]; $npar=$all[2]; $delta=$all[3];
 $flex=$all[4];$lwdata=$all[5]; $wdata=$all[6]; $scorr=$all[7]; $con=$all[8];
 $wns=$all[9];
 chomp($cmt_new);chomp($cmt);
 (undef,undef,$ename)=split(" ",`grep 'event name' $cmt`);
 
- at cmt=($cmt);
-if (-f "${cmt}_GRD") {@cmt=(@cmt,"${cmt}_GRD"); print BASH "cp -f ${cmt}_GRD $outdir\n";}
+ at cmt=($cmt);@cmt=(@cmt,"${cmt}_GRD");
+if (-f "${cmt}_GRD") {print BASH "cp -f ${cmt}_GRD $outdir\n";}
 for ($i=2;$i<$nbeach;$i++) {@cmt=(@cmt,"CMTSOLUTION.$i");}
 
 open(BASH,">mech_table.bash");
@@ -64,19 +66,21 @@
 }
 close(BASH);
 system("chmod a+x mech_table.bash; mech_table.bash");
-
 for ($k=2;$k<$nbeach;$k++) {
   (@tmp)=split(" ",`grep Variance $outdir/cmt3d_stdout.$k`);
-  $var[$k]=$tmp[8]; print "$k,$var[$k]\n";}
+  $var[$k]=$tmp[8]; print "$k -- VR = $var[$k]\n";}
 #die("here\n");
 
 
 open(BASH,">mech_plot.bash");
+print BASH "gmtset BASEMAP_TYPE plain ANOT_FONT_SIZE 9 HEADER_FONT_SIZE 10 MEASURE_UNIT inch PAPER_MEDIA letter TICK_LENGTH 0.1c\n";
+
 plot_psxy(\*BASH,$psfile,"$JX -K -X0 -Y0 $R","");
 $k=0;
 for ($i=0;$i<$nrows;$i++) {
   for ($j=0;$j<$ncols;$j++) {
-    print BASH "# ---- Mech $k ------\n";
+    print BASH "# ---- Mech $k, $cmt[$k]------\n";
+    print "---- Mech $k, $cmt[$k]------\n";
     $xy=$xy[$i][$j];($x,$y) = split(/\//,$xy);
     plot_psxy(\*BASH,$psfile,"$JX -X$x -Y$y $R","");
     if (-f "$outdir/$cmt[$k]") {



More information about the CIG-COMMITS mailing list