[cig-commits] r19716 - in seismo/3D/SPECFEM3D_GLOBE/trunk: . utils
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Sun Mar 4 08:03:01 PST 2012
Author: dkomati1
Date: 2012-03-04 08:03:00 -0800 (Sun, 04 Mar 2012)
New Revision: 19716
Added:
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/
Removed:
seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/CMTSOLUTION_to_AkiRichards.c
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/Cluster/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/Profiles/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/SeismiQuery/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/Visualization/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/adjoint_sources/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/analyse_modules.pl
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/analysedep.pl
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/attenuation/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/central_cube/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/change_simulation_type.pl
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/chunk_notes_scanned/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/clean_sac_headers_after_crash.sh
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/collect_database/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/convolve_source_timefunction.csh
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/doubling_brick/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/extract_all_seismos_from_large_file.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/extract_database/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/filter_station_list.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/funaro_routines_bernhard/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_NS.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_equator.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_one_fourth.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_table_NEX_manual.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/lib/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/models_1066a_ak135/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/oldstuff/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/s362ani/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/seis_process/
seismo/3D/SPECFEM3D_GLOBE/trunk/utils/strike_dip_rake_to_CMTSOLUTION.c
Log:
renamed "UTILS" to "utils" to be consistent with SPECFEM3D
Copied: seismo/3D/SPECFEM3D_GLOBE/trunk/utils (from rev 19715, seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS)
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/CMTSOLUTION_to_AkiRichards.c
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/CMTSOLUTION_to_AkiRichards.c 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/CMTSOLUTION_to_AkiRichards.c 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,74 +0,0 @@
-/*---------------------------------------------------------------------------
- *
- * Copyright (c) 2000-2004 by Onur TAN
- * See COPYING file for copying and redistribution conditions.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * Contact info: Onur TAN,
- * Istanbul Technical University, Faculty of Mines
- * Department of Geophysics, Maslak, Istanbul-TURKEY
- * www.geop.itu.edu.tr/~onur
- * tano at itu.edu.tr
- *--------------------------------------------------------------------------*/
-
-/* cmt2aki.c : Converts Harvard-CMT moment moment tensor elements to Aki&Richard 1980 convention
- by Onur TAN
- ITU, Dept. of Geophysics, Istanbul, Turkey,10Jan2004
-*/
-
-// Modified by Dimitri Komatitsch, University of Pau, France, September 2007
-
-/* Harvard CMTSOLUTION format is for instance
-Mrr: -7.600000e+27
-Mtt: 7.700000e+27
-Mpp: -2.000000e+26
-Mrt: -2.500000e+28
-Mrp: 4.000000e+26
-Mtp: -2.500000e+27
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-
-int main ( int argc, char* argv[] )
-{
-float Mrr, Mtt, Mpp, Mrt, Mrp, Mtp;
-float Mxx, Myy, Mzz, Mxy, Mxz, Myz;
-
-if ( argc != 7 ) {
-printf("\nHRV-CMT - Aki&Richards1980 Moment Tensor Element Converter (by Onur TAN)\n");
-printf("Usage : cmt2aki Mrr Mtt Mpp Mrt Mrp Mtp\n") ;
-printf("Input Harvard CMTSOLUTION: Mrr Mtt Mpp Mrt Mrp Mtp\n") ;
-printf("Output Aki&Richards1980: Mxx Myy Mzz Mxy Mxz Myz \n\n");
-exit(1);
-}
-
-Mrr = atof ( argv[1] );
-Mtt = atof ( argv[2] );
-Mpp = atof ( argv[3] );
-Mrt = atof ( argv[4] );
-Mrp = atof ( argv[5] );
-Mtp = atof ( argv[6] );
-
-Mxx = Mtt ;
-Myy = Mpp ;
-Mzz = Mrr ;
-Mxy = Mtp * -1. ;
-Mxz = Mrt ;
-Myz = Mrp * -1. ;
-
-printf("Output Aki&Richards1980: Mxx Myy Mzz Mxy Mxz Myz \n");
-printf("%9.5f %9.5f %9.5f %9.5f %9.5f %9.5f\n",Mxx, Myy, Mzz, Mxy, Mxz, Myz);
-
-}
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/analyse_modules.pl
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/analyse_modules.pl 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/analyse_modules.pl 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,250 +0,0 @@
-#! /usr/bin/perl
-
-# search the incoherences in parameters passing or type declaration for the new structures created in place of the modules in the SPECFEM3D_GLOBE code.
-# structures are declared with keyword "type"
-# no output if no problem.
-
-# this script has been written for this particular usage, not for a general purpose.
-
-# David Michéa. University of Pau. February 2007.
-
-$|++;
-
-if (scalar(@ARGV)<1)
-{ print "usage : $0 source_dir\n";
- exit;
-}
-my $src_dir = $ARGV[0];
-chomp($src_dir);
-if ($src_dir =~m /^(.*)\/$/)
-{ $src_dir =~ $1;
-}
-my @mystruct;
-my %htypes;
-print ">> data structure creation\n";
-my @files = glob("$src_dir/*.f90");
-my $nbfiles = scalar(@files);
-my $cpt=0;
-foreach my $fichier (@files) # parcours de chaque fichier
-{ $cpt++;
- my $line_num = 0;
- my $pfiletab = [];
- open (DF, $fichier);
- $fichier =~ s#.*/(.*)$#$1#g; #
- push(@$pfiletab,$fichier);
- while (<DF>) # parcours de chaque ligne
- { $line_num++;
- # analyse de chaque declaration de subroutine
- # declaration sur une ligne
- if ($_ =~ m/^\s*subroutine\s+([a-zA-Z_0-9-]*)\s*(?:\(([^!]*)\))?(?:!.*|\s*)$/) {
- my $nom = $1;
- my @params = split(/,/,$2);
- @params = map(trim($_), at params);
- push (@$pfiletab,analyse_sub($fichier,$nom,\$line_num, at params));
- }
- # declaration sur plusieurs lignes (&)
- elsif ($_ =~ m/^\s*subroutine\s+([a-zA-Z_0-9-]*)\s*\((.*)&\s*$/)
- { my $nom = $1;
- my @params = split(/,/,$2);
- pop(@params) if ($params[-1] =~ m/^\s*$/);
- while(<DF>)
- { $line_num++;
- if ($_ =~ m/^\s*(.*)&\s*$/)
- { push(@params,split(/,/,$1));
- pop(@params) if ($params[-1] =~ m/^\s*$/);
- }
- elsif ($_ =~ m/^\s*(.*)\)\s*$/)
- { push(@params,split(/,/,$1));
- pop(@params) if ($params[-1] =~ m/^\s*$/);
- last;
- }
- else
- { print "probleme : declaration non conforme dans $fichier l $line_num\n";exit;
- }
- }
- @params = map(trim($_), at params);
- push (@$pfiletab,analyse_sub($fichier,$nom,\$line_num, at params));
- }
- else
- {# print "$_";
- }
- }
- close (DF);
- push (@mystruct, $pfiletab);
- print "\r".int(($cpt/$nbfiles)*100)." %";
-}
-print("\n");
-#exit;
-
-print "\n>> structure analysis\n";
-foreach my $ptrfile (@mystruct)
-{ my $file = @$ptrfile[0];
- my $i=0;
- foreach my $ptrsub (@$ptrfile)
- {
- $i++;
- next if ($i==1);
- my $nomsub = $ptrsub->[0];
- my $ptrparamsin = $ptrsub->[1];
- my $ptrtypesdec = $ptrsub->[2];
- test_paramsin($ptrparamsin,$ptrtypesdec,$nomsub,$file);
- foreach my $ptrfile2 (@mystruct)
- { my $file2 = @$ptrfile2[0];
- my $j=0;
- foreach my $ptrsub2 (@$ptrfile2)
- {
- $j++;
- next if ($j==1);
- my $nomsub2 = $ptrsub2->[0];
- my $ptrparamsin2 = $ptrsub2->[1];
- if ($#{$ptrsub2}>3)
- { foreach $ptrsubsub (@$ptrsub2[3,$#{$ptrsub2}])
- {
- my $nomsubsub = $ptrsubsub->[0];
- my $lignesubsub = $ptrsubsub->[1];
- my $ptrparamsinsubsub = $ptrsubsub->[2];
- if ($nomsubsub eq $nomsub)
- { if (scalar(@$ptrparamsin) != scalar(@$ptrparamsinsubsub))
- { print "for subroutine $nomsub, declared in file $file, its call in the subroutine $nomsub2 line $lignesubsub of file $file2";
- print " is incomplete :\n$nomsub(",join(",",@$ptrparamsin),") <> $nomsubsub(",join(",",@$ptrparamsinsubsub),")\n";
- }
- else
- { my $res = test_paramsin2($ptrparamsin,$ptrparamsinsubsub);
- unless($res)
- {
- print "for subroutine $nomsub, declared in file $file, its call in the subroutine $nomsub2 line $lignesubsub of file $file2";
- print " is not correct :\n$nomsub(",join(",",@$ptrparamsin),") <> $nomsubsub(",join(",",@$ptrparamsinsubsub),")\n";
- }
- }
- }
- }
- }
- }
- }
- }
-}
-print "\n";
-exit;
-
-
-sub test_paramsin2
-{ my ($params,$ptypes) = @_;
- my $ok=1;
- foreach my $type (@$ptypes)
- { my $found=0;
- foreach my $param (@$params)
- { $found++ if ($type eq $param);
- }
- $ok=0 unless ($found);
- }
- return $ok;
-}
-
-sub test_paramsin
-{ my ($params,$ptypes,$nomsub,$file) = @_;
- foreach my $type (@$ptypes)
- { my $found=0;
- foreach my $param (@$params)
- { $found++ if ($type eq $param);
- }
- unless ($found || $nomsub eq 'specfem3D' || $nomsub eq 'meshfem3D')
- { print "---\nstructure $type not given as parameters in subroutine $nomsub of file $file\n---\n",join(",",@$params),"\n",join(",",@$ptypes),"\n";
- }
- }
- return;
-}
-
-sub analyse_sub
-{ my ($fichier,$nom,$pline_num, at paramsin) = @_;
- my $ptypes = [];
- my $pcursub = [$nom,\@paramsin,$ptypes];
- my %hnom;
- while (my $line=<DF>)
- { $$pline_num++;
- if ($line =~ m/^\s*type\s*\([ a-zA-Z_0-9-]+\)\s+(.*)$/)
- { my $type = $1;
- chomp($type);
- $type=trim($type);
- push(@$ptypes,$type);
- $htypes{$type}++;
- }
- # appel sur une ligne
- elsif (($line =~ m/^(?:[^!]*\s+|\s*)call\s+([a-zA-Z_0-9-]*)\s*(?:\(([^!]*)\))?\s*$/) && ($line !~ m/MPI_[A-Z]+/))
- { my $nomsub = $1;
- my $numligne = $$pline_num;
-# unless (exists($hnom{$nomsub}))
-# { $hnom{$nomsub}++;
- my $subparams = [];
- if (defined($2))
- { push(@$subparams,map(trim($_),split(/,/,$2)));
- filtre($subparams,$ptypes);
- }
- my @sub_called;
- push(@sub_called, $nomsub,$numligne, $subparams);
- push (@$pcursub,\@sub_called);
-# }
- }
- # appel sur plusieurs lignes (&)
- elsif (($line =~ m/^(?:[^!]*\s+|\s*)call\s+([a-zA-Z_0-9-]*)\((.*)&\s*/) && ($line !~ m/MPI_[A-Z]+/))
- { my $nomsub = $1;
- my $numligne = $$pline_num;
-# unless (exists($hnom{$nomsub}))
-# { $hnom{$nomsub}++;
- my $subparams = [];
- push(@$subparams,map(trim($_),split(/,/,$2)));
- pop(@$subparams) if ($subparams->[-1] =~ m/^\s*$/);
- while(<DF>)
- { $$pline_num++;
- if ($_ =~ m/^\s*(.*)&\s*$/)
- { push(@$subparams,map(trim($_),split(/,/,$1)));
- pop(@$subparams) if ($subparams->[-1] =~ m/^\s*$/);
- }
- elsif ($_ =~ m/^\s*(.*)\)\s*$/)
- { push(@$subparams,map(trim($_),split(/,/,$1)));
- pop(@$subparams) if ($subparams->[-1] =~ m/^\s*$/);
- last;
- }
- else
- { print "probleme : appel non conforme dans $fichier, sub ",$pcursub->[0]," l $$pline_num\n";exit;
- }
- }
- filtre($subparams,$ptypes);
- my @sub_called;
- push(@sub_called, $nomsub,$numligne, $subparams);
- push (@$pcursub,\@sub_called);
-# }
- }
- elsif ($line =~ m/^\s*end\s*subroutine\s+$nom.*$/)
- { last;
- }
- else {}
- }
- # retirer de paramsin les params n'etant pas dans type
- filtre(\@paramsin,$ptypes);
- return $pcursub;
-}
-
-sub filtre
-{ my ($pparams,$ptypes) = @_;
- my @params_filtered;
- foreach $one_par (@$pparams)
- { my $found=0;
- foreach $one_type (@$ptypes)
- { if ($one_par eq $one_type)
- { $found=1;
- last;
- }
- }
- push(@params_filtered, $one_par) if ($found);
- }
- @$pparams = @params_filtered;
- return;
-}
-
-sub trim
-{ my $string = shift;
- $string =~ s/^\s+//;
- $string =~ s/\s+$//;
- return $string;
-}
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/analysedep.pl
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/analysedep.pl 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/analysedep.pl 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,101 +0,0 @@
-#! /usr/bin/perl
-
-# give the modules & subroutines dependencies for each file of the SPECFEM3D_GLOBE code.
-#
-# regular expressions may have to be tuned.
-#
-# David Michea, University of Pau, France, december 2006
-
-
-$|++;
-
-if (scalar(@ARGV)<2)
-{ print "usage : $0 fileout source_dir\n";
- exit;
-}
-my $fileout = $ARGV[0];
-my $src_dir = $ARGV[1];
-my @mystruct;
-print ">> data structure creation\n";
-my @files = glob("$src_dir/*.f90");
-my $nbfiles = scalar(@files);
-my $cpt=0;
-foreach my $fichier (@files)
-{ $cpt++;
- my $line_num = 0;
- my ($pfiletab, $pmods, $psubs, $pmodst, $psubst) = ([],[],[],[],[]);
- my %hmod = ();
- my %hsub = ();
- my %hmodt = ();
- my %hsubt = ();
- open (DF, $fichier);
- while (<DF>)
- { $line_num++;
- if ($_ =~ m/^\s*use\s+([a-zA-Z_0-9-]*)$/) {
- push (@$pmods, [$1]) unless(exists($hmod{$1}));
- $hmod{$1}++;
- }
- elsif (($_ =~ m/^(?:[^!]*\s+|\s*)call\s+([a-zA-Z_0-9-]*).*$/) && ($_ !~ m/MPI_[A-Z]+/)) {
- push (@$psubs, [$1]) unless(exists($hsub{$1}));
- $hsub{$1}++;
- }
- elsif ($_ =~ m/^\s*module\s+([a-zA-Z_0-9-]*).*$/) {
- push (@$pmodst, [$1, $line_num]) unless(exists($hmodt{$1}));
- $hmodt{$1}++;
- }
- elsif ($_ =~ m/^\s*subroutine\s+([a-zA-Z_0-9-]*).*$/) {
- push (@$psubst, [$1, $line_num]) unless(exists($hsubt{$1}));
- $hsubt{$1}++;
- }
- }
- close (DF);
- $fichier =~ s#.*/(.*)$#$1#g;
- push (@$pfiletab, $fichier, $pmods, $psubs, $pmodst, $psubst);
- push (@mystruct, $pfiletab);
- print "\r".int(($cpt/$nbfiles)*100)." %";
-}
-print "\n>> analysis\n";
-$cpt=0;
-foreach my $ptrfile (@mystruct)
-{ $cpt++;
- print "\r".int(($cpt/$nbfiles)*100)." %";
- for (my $i=0;$i<2;$i++)
- { foreach my $ptrmod (@{$ptrfile->[1+$i]})
- { my $last = 0;
- foreach my $ptrfilet (@mystruct)
- { foreach my $ptrmodt (@{$ptrfilet->[3+$i]})
- { if ($ptrmod->[0] eq $ptrmodt->[0])
- { push (@$ptrmod, $ptrfilet->[0]." [l ".$ptrmodt->[1]."]");
- $last++;
- last;
- }
- }
- last if ($last>0);
- }
- }
- }
-
-}
-print "\n>> results writing in $fileout\n";
-open (OUT, ">$fileout");
-$cpt=0;
-foreach my $ptrfile (@mystruct)
-{ $cpt++;
- if (scalar(@{$ptrfile->[1]}) > 0 || scalar(@{$ptrfile->[2]}) > 0) {
- my $l = int((76 - length($ptrfile->[0]))/2);
- print OUT "x"x$l,"- ".$ptrfile->[0]." -","x"x($l+((76 - length($ptrfile->[0]))%2)),"\n";
- print OUT ">> MODULES\n" if (scalar(@{$ptrfile->[1]}));
- foreach my $ptrmod (@{$ptrfile->[1]})
- { print OUT "\t".$ptrmod->[0]." -> ".$ptrmod->[1]."\n";
- }
- print OUT ">> SUBROUTINES\n" if (scalar(@{$ptrfile->[2]}));
- foreach my $ptrsub (@{$ptrfile->[2]})
- { print OUT "\t".$ptrsub->[0]." -> ".$ptrsub->[1]."\n";
- }
- print OUT "\n\n";
- }
- print "\r".int(($cpt/$nbfiles)*100)." %";
-}
-print "\n\ndone\n";
-close(OUT);
-exit;
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/change_simulation_type.pl
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/change_simulation_type.pl 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/change_simulation_type.pl 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,65 +0,0 @@
-#!/usr/bin/perl
-
-# change the SIMULATION_TYPE setting in DATA/Par_file
-
-# Qinya Liu, Caltech, May 2007
-
-use Time::Local;
-use Getopt::Std;
-use POSIX;
-
-sub Usage{
-print STDERR <<END;
-
-Usage: change_simulation_type.pl [-a|-f|-b|-F]
- Changes SIMULATION_TYPE in DATA/Par_file
- -a -- change type to run adjoint calculation(2)
- -f -- change type to run forward calculation(1)
- -b -- change type to run both simultaneously(3)
- -F -- change type to run forward calculation(1) with save_forward = .true.
-END
-exit(1);
-}
-
- at ARGV == 1 or Usage();
-if(!getopts('abfF')) {die(" check input arguments\n");}
-
-open(IN,"DATA/Par_file");
- at vfm=<IN>;
-close(IN);
-
-foreach $vfm (@vfm){
- if($vfm=~/SIMULATION_TYPE/){
- if(${opt_a}){
- print "Changed simulation_type to 2 in Par_file \n";
- $vfm=~s/= 1/= 2/;
- $vfm=~s/= 3/= 2/;
- }
- elsif(${opt_f}){
- print "Changed simulation_type to 1 in Par_file \n";
- $vfm=~s/= 2/= 1/;
- $vfm=~s/= 3/= 1/;
- }
- elsif(${opt_b}){
- print "Changed simulation_type to 3 in Par_file \n";
- $vfm=~s/= 1/= 3/;
- $vfm=~s/= 2/= 3/;
- }
- elsif(${opt_F}){
- print "Changed simulation_type to 1 and save_forward = .true. in Par_file \n";
- $vfm=~s/= 2/= 1/;
- $vfm=~s/= 3/= 1/;
- }
- }
- if ($vfm=~/SAVE_FORWARD/) {
- if ($opt_F) { $vfm=~s/false/true/; }
- else {$vfm=~s/true/false/;}
-
- }
-}
-
-open(OUT,">DATA/Par_file");
-foreach $vfm (@vfm){
- print OUT "$vfm";
-}
-close(OUT);
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/clean_sac_headers_after_crash.sh
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/clean_sac_headers_after_crash.sh 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/clean_sac_headers_after_crash.sh 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-# For this script to work you need to have the sismoutil package available a the
-# ORFEUS web-page http://www.orfeus-eu.org
-
-NPTS=`grep 'Total number of time steps written:' OUTPUT_FILES/output_solver.txt | tail -1 | awk '{print $7}'`
-
-echo ' Changing header variable NPTS to ' $NPTS ' ...'
-
-for i in $*
-do
- echo " Working on file $i"
- file_ext=`echo $i | sed 's/.*\.\([^\.]*\)/\1/'`
- if [ $file_ext == 'sacan' ]
- then
- vi -e -s -c "16s/ [0-9]*$/\ $NPTS/" -c 'x' $i
- elif [ $file_ext == 'sac' ]
- then
- chsac NPTS $NPTS -f $*
- else
- echo " Cannot clean header variable NPTS of file $i!"
- echo " NOT a SAC file extension!"
- fi
-done
-
-echo ' ... done!'
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/convolve_source_timefunction.csh
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/convolve_source_timefunction.csh 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/convolve_source_timefunction.csh 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,25 +0,0 @@
-#!/bin/csh
-
-# we mimic a triangle of half duration equal to half_duration_triangle
-# using a Gaussian having a very close shape, as explained in Figure 4.2
-# of the manual
-
-set half_duration_triangle = 11.2
-
-foreach file ( $* )
-
-set nlines = `wc -l $file `
-echo $nlines > input_convolve_code.txt
-echo $half_duration_triangle >> input_convolve_code.txt
-# use .true. for a triangle and .false. for a Gaussian
-#echo ".true." >> input_convolve_code.txt
-echo ".false." >> input_convolve_code.txt
-
-echo convolving $file with half_duration_triangle = $half_duration_triangle using lines $nlines
-
-../bin/xconvolve_source_timefunction < $file > ${file}.convolved
-
-rm input_convolve_code.txt
-
-end
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/extract_all_seismos_from_large_file.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/extract_all_seismos_from_large_file.f90 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/extract_all_seismos_from_large_file.f90 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,101 +0,0 @@
-!=====================================================================
-!
-! S p e c f e m 3 D G l o b e V e r s i o n 5 . 1
-! --------------------------------------------------
-!
-! Main authors: Dimitri Komatitsch and Jeroen Tromp
-! Princeton University, USA
-! and University of Pau / CNRS / INRIA, France
-! (c) Princeton University / California Institute of Technology and University of Pau / CNRS / INRIA
-! April 2011
-!
-! This program is free software; you can redistribute it and/or modify
-! it under the terms of the GNU General Public License as published by
-! the Free Software Foundation; either version 2 of the License, or
-! (at your option) any later version.
-!
-! This program is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-! GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along
-! with this program; if not, write to the Free Software Foundation, Inc.,
-! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-!
-!=====================================================================
-
-
- program extract_all_seismos_large_file
-
-! extract all the seismograms when they are stored in a unique large file
-
-! Dimitri Komatitsch, University of Pau, France, November 2007
-
- implicit none
-
- include "../constants.h"
-
-! binary or ASCII storage format (see its value in DATA/Par_file instead)
- logical, parameter :: USE_BINARY_FOR_LARGE_FILE = .true.
-
-! number of seismogram files stored in the unique large file
- integer, parameter :: N_STATIONS = 647 ! see number of lines in DATA/STATIONS
- integer, parameter :: N_COMPONENTS = 3
- integer, parameter :: NREC = N_STATIONS * N_COMPONENTS
-
-! number of time steps in each seismogram file
- integer, parameter :: NSTEP = 37200 ! see its value in OUTPUT_FILES/values_from_mesher.h
-
- integer :: irec,istep,irepeat
- real :: time,U_value
-
- character(len=150) :: station_name
-
-! open the large seismogram file
- if(USE_BINARY_FOR_LARGE_FILE) then
- open(unit=30,file='all_seismograms.bin',status='old',form='unformatted',action='read')
- else
- open(unit=30,file='all_seismograms.ascii',status='old',action='read')
- endif
-
-! loop on all the seismogram files
- do irec = 1,NREC
-
- if(USE_BINARY_FOR_LARGE_FILE) then
- read(30) station_name
- else
- read(30,*) station_name
- endif
-
-! suppress leading white spaces, if any
- station_name = adjustl(station_name)
-
-! suppress two leading '\' (ASCII code 92), if any
- do irepeat = 1,2
- if(station_name(1:1) == achar(92)) station_name = station_name(2:len_trim(station_name))
- station_name = adjustl(station_name)
- enddo
-
- print *,'extracting seismogram file ',irec,': ',station_name(1:len_trim(station_name)),' out of ',NREC
-
- open(unit=27,file=station_name(1:len_trim(station_name)),status='unknown')
-
-! loop on all the time steps in each seismogram
- do istep = 1,NSTEP
- if(USE_BINARY_FOR_LARGE_FILE) then
- read(30) time, U_value
- else
- read(30,*) time, U_value
- endif
- write(27,*) time, U_value
- enddo
-
- close(27)
-
- enddo
-
- close(30)
-
- end program extract_all_seismos_large_file
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/filter_station_list.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/filter_station_list.f90 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/filter_station_list.f90 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,103 +0,0 @@
-!=====================================================================
-!
-! S p e c f e m 3 D G l o b e V e r s i o n 5 . 1
-! --------------------------------------------------
-!
-! Main authors: Dimitri Komatitsch and Jeroen Tromp
-! Princeton University, USA
-! and University of Pau / CNRS / INRIA, France
-! (c) Princeton University / California Institute of Technology and University of Pau / CNRS / INRIA
-! April 2011
-!
-! This program is free software; you can redistribute it and/or modify
-! it under the terms of the GNU General Public License as published by
-! the Free Software Foundation; either version 2 of the License, or
-! (at your option) any later version.
-!
-! This program is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-! GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along
-! with this program; if not, write to the Free Software Foundation, Inc.,
-! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-!
-!=====================================================================
-
-! program to filter the STATIONS file to include stations located in a given region only
-! Dimitri Komatitsch, University of Pau, France, May 2006
-
- program station_filter
-
- implicit none
-
- include '../constants.h'
-
-! input
- character(len=100),parameter :: filename='STATIONS',filtered_filename='STATIONS_FILTERED'
- double precision LATITUDE_MIN,LATITUDE_MAX,LONGITUDE_MIN,LONGITUDE_MAX
-
-! output
- integer irec, nrec, nrec_filtered, ios
-
- double precision stlat,stlon,stele,stbur
- character(len=MAX_LENGTH_STATION_NAME) station_name
- character(len=MAX_LENGTH_NETWORK_NAME) network_name
-
- print *
- print *,'program to filter the STATIONS file to include stations located in a given region only'
- print *
-
- print *,'enter LONGITUDE_MIN:'
- read(*,*) LONGITUDE_MIN
- print *
-
- print *,'enter LONGITUDE_MAX:'
- read(*,*) LONGITUDE_MAX
- print *
-
- if(LONGITUDE_MIN >= LONGITUDE_MAX) stop 'incorrect longitude range given'
-
- print *,'enter LATITUDE_MIN:'
- read(*,*) LATITUDE_MIN
- print *
-
- print *,'enter LATITUDE_MAX:'
- read(*,*) LATITUDE_MAX
- print *
-
- if(LATITUDE_MIN >= LATITUDE_MAX) stop 'incorrect latitude range given'
-
- nrec_filtered = 0
-
- open(unit=IIN, file=trim(filename), status = 'old', iostat = ios)
- if (ios /= 0) stop 'Input STATIONS file does not exist, exiting'
- read(IIN, *) nrec
- do irec = 1, nrec
- read(IIN, *) station_name, network_name, stlat, stlon, stele, stbur
- if(stlat >= LATITUDE_MIN .and. stlat <= LATITUDE_MAX .and. stlon >= LONGITUDE_MIN .and. stlon <= LONGITUDE_MAX) &
- nrec_filtered = nrec_filtered + 1
- enddo
- close(IIN)
-
- open(unit=IIN,file=trim(filename),status='old')
- open(unit=IOUT,file=trim(filtered_filename),status='unknown')
- read(IIN,*) nrec
- write(IOUT,*) nrec_filtered
- do irec = 1,nrec
- read(IIN,*) station_name,network_name,stlat,stlon,stele,stbur
- if(stlat >= LATITUDE_MIN .and. stlat <= LATITUDE_MAX .and. stlon >= LONGITUDE_MIN .and. stlon <= LONGITUDE_MAX) &
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' ',sngl(stlon), ' ',sngl(stele), ' ',sngl(stbur)
- enddo
- close(IIN)
- close(IOUT)
-
- print *
- print *,'there are ',nrec,' stations in file ', trim(filename)
- print *,'saving ',nrec_filtered,' stations inside the model in file ', trim(filtered_filename)
- print *,'excluding ',nrec - nrec_filtered,' stations located outside the model'
- print *
-
- end program station_filter
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_NS.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/generate_station_list_NS.f90 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_NS.f90 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,107 +0,0 @@
-!=====================================================================
-!
-! S p e c f e m 3 D G l o b e V e r s i o n 5 . 1
-! --------------------------------------------------
-!
-! Main authors: Dimitri Komatitsch and Jeroen Tromp
-! Princeton University, USA
-! and University of Pau / CNRS / INRIA, France
-! (c) Princeton University / California Institute of Technology and University of Pau / CNRS / INRIA
-! April 2011
-!
-! This program is free software; you can redistribute it and/or modify
-! it under the terms of the GNU General Public License as published by
-! the Free Software Foundation; either version 2 of the License, or
-! (at your option) any later version.
-!
-! This program is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-! GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along
-! with this program; if not, write to the Free Software Foundation, Inc.,
-! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-!
-!=====================================================================
-
-! program to generate the STATIONS file to include stations
-! every half-degree along a great circle
-
-! Dimitri Komatitsch, University of Pau, France, August 2007
-
- program generate_station_list
-
- implicit none
-
- include "constants.h"
-
- integer nrec,ilatitude
-
- double precision stlat
-
- character(len=MAX_LENGTH_STATION_NAME) station_name
- character(len=MAX_LENGTH_NETWORK_NAME) network_name
-
- print *
- print *,'generating the DATA/STATIONS file to include stations'
- print *,'every half-degree along a great circle'
- print *
-
- network_name = 'DK'
-
-! there is a station every half degree
- nrec = 720
-
- open(unit=IOUT,file='DATA/STATIONS',status='unknown')
-
- write(IOUT,*) nrec
-
-! first create half the great circle along the Greenwich meridian (longitude = 0)
-
- do ilatitude = -90,+89
-
- stlat = ilatitude
- if(ilatitude < 0) then
- write(station_name,"('FRONT_MINUS_',i2.2,'_00')") int(abs(stlat))
- else
- write(station_name,"('FRONT_PLUS_',i2.2,'_00')") int(abs(stlat))
- endif
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' 0 0 0'
-
- stlat = ilatitude + 0.5d0
- if(stlat < 0) then
- write(station_name,"('FRONT_MINUS_',i2.2,'_50')") int(abs(stlat))
- else
- write(station_name,"('FRONT_PLUS_',i2.2,'_50')") int(abs(stlat))
- endif
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' 0 0 0'
-
- enddo
-
-! then create half the great circle along longitude = 180
-
- do ilatitude = -90,+89
-
- stlat = ilatitude
- if(ilatitude < 0) then
- write(station_name,"('BACK_MINUS_',i2.2,'_00')") int(abs(stlat))
- else
- write(station_name,"('BACK_PLUS_',i2.2,'_00')") int(abs(stlat))
- endif
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' 180 0 0'
-
- stlat = ilatitude + 0.5d0
- if(stlat < 0) then
- write(station_name,"('BACK_MINUS_',i2.2,'_50')") int(abs(stlat))
- else
- write(station_name,"('BACK_PLUS_',i2.2,'_50')") int(abs(stlat))
- endif
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' 180 0 0'
-
- enddo
-
- close(IOUT)
-
- end program generate_station_list
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_equator.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/generate_station_list_equator.f90 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_equator.f90 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,80 +0,0 @@
-!=====================================================================
-!
-! S p e c f e m 3 D G l o b e V e r s i o n 5 . 1
-! --------------------------------------------------
-!
-! Main authors: Dimitri Komatitsch and Jeroen Tromp
-! Princeton University, USA
-! and University of Pau / CNRS / INRIA, France
-! (c) Princeton University / California Institute of Technology and University of Pau / CNRS / INRIA
-! April 2011
-!
-! This program is free software; you can redistribute it and/or modify
-! it under the terms of the GNU General Public License as published by
-! the Free Software Foundation; either version 2 of the License, or
-! (at your option) any later version.
-!
-! This program is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-! GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along
-! with this program; if not, write to the Free Software Foundation, Inc.,
-! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-!
-!=====================================================================
-
-! program to generate the STATIONS file to include stations
-! every half-degree along a great circle
-
-! Dimitri Komatitsch, University of Pau, France, August 2007
-
- program generate_station_list
-
- implicit none
-
- include "constants.h"
-
- integer :: nrec,ilongitude
-
- double precision :: stlat,stlon
-
- character(len=MAX_LENGTH_STATION_NAME) :: station_name
- character(len=MAX_LENGTH_NETWORK_NAME) :: network_name
-
- print *
- print *,'generating the DATA/STATIONS file to include stations'
- print *,'every half-degree along a great circle'
- print *
-
- open(unit=IOUT,file='DATA/STATIONS',status='unknown')
-
-! there is a station every half degree
- nrec = 720
-
- write(IOUT,*) nrec
-
-! select the great circle along the equator
- stlat = 0.d0
-
- network_name = 'DK'
-
- do ilongitude = 0,359
-
-! station on integer value of degree YYY
- stlon = ilongitude
- write(station_name,"('S',i3.3,'_00')") ilongitude
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' ',sngl(stlon),' 0 0'
-
-! station on half value of degree YYY (i.e. in degree YYY + 0.5)
- stlon = ilongitude + 0.5d0
- write(station_name,"('S',i3.3,'_50')") ilongitude
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' ',sngl(stlon),' 0 0'
-
- enddo
-
- close(IOUT)
-
- end program generate_station_list
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_one_fourth.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/generate_station_list_one_fourth.f90 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_station_list_one_fourth.f90 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,83 +0,0 @@
-!=====================================================================
-!
-! S p e c f e m 3 D G l o b e V e r s i o n 5 . 1
-! --------------------------------------------------
-!
-! Main authors: Dimitri Komatitsch and Jeroen Tromp
-! Princeton University, USA
-! and University of Pau / CNRS / INRIA, France
-! (c) Princeton University / California Institute of Technology and University of Pau / CNRS / INRIA
-! April 2011
-!
-! This program is free software; you can redistribute it and/or modify
-! it under the terms of the GNU General Public License as published by
-! the Free Software Foundation; either version 2 of the License, or
-! (at your option) any later version.
-!
-! This program is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-! GNU General Public License for more details.
-!
-! You should have received a copy of the GNU General Public License along
-! with this program; if not, write to the Free Software Foundation, Inc.,
-! 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-!
-!=====================================================================
-
-! program to generate the STATIONS file to include stations
-! every 0.1 degree along one-fourth of a great circle
-
-! Dimitri Komatitsch, University of Pau, France, October 2007
-
- program generate_station_list
-
- implicit none
-
- include "constants.h"
-
- integer nrec,ilatitude,idecimal_degree,upper_bound
-
- double precision stlat,decimal_degree
-
- character(len=MAX_LENGTH_STATION_NAME) station_name
- character(len=MAX_LENGTH_NETWORK_NAME) network_name
-
- print *
- print *,'generating the DATA/STATIONS file to include stations'
- print *,'every 0.1 degree along one-fourth of a great circle'
- print *
-
- network_name = 'DK'
-
- nrec = 451
-
- open(unit=IOUT,file='DATA/STATIONS',status='unknown')
-
- write(IOUT,*) nrec
-
-! generate one-fourth of the great circle along the Greenwich meridian (longitude = 0)
- do ilatitude = -90,0
-
-! add 1/10th of a degree to generate stations every 0.1 degree between -90 and -50
-! otherwise only every degree
- if(ilatitude < -50) then
- upper_bound = 9
- else
- upper_bound = 0
- endif
-
- do idecimal_degree = 0,upper_bound
-
- stlat = ilatitude + idecimal_degree / 10.d0
- write(station_name,"('FRONT_MINUS_',i2.2,'_',i2.2)") int(abs(stlat)),nint(100. * (abs(stlat) - int(abs(stlat))))
- write(IOUT,*) trim(station_name),' ',trim(network_name),' ',sngl(stlat),' 0 0 0'
-
- enddo
-
- enddo
-
- close(IOUT)
-
- end program generate_station_list
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_table_NEX_manual.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/generate_table_NEX_manual.f90 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/generate_table_NEX_manual.f90 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,57 +0,0 @@
-
- program generate_table_NEX_manual
-
-! generate Table showing possible values of NEX for the SPECFEM3D_GLOBE manual
-
-! Author: Dimitri Komatitsch, University of Pau, France, September 2007
-
- implicit none
-
- integer NPROC_XI,c,NEX_XI,counter
-
- integer, parameter :: NB_COLUMNS_TABLE = 10
- integer, dimension(NB_COLUMNS_TABLE) :: store_NEX_XI
-
-! maximum total number of processors we want to see in the table
- integer, parameter :: MAX_NUMBER_OF_PROCS = 100000
-! integer, parameter :: MAX_NUMBER_OF_PROCS = 212992 ! current maximum on BlueGene at LLNL
-
-! base value depends if we implement three or four doublings (default is three)
- integer, parameter :: NB_DOUBLING = 3
- integer :: BASE_VALUE
-
-! output in LaTeX format or in regular ASCII format
- logical, parameter :: OUTPUT_LATEX_FORMAT = .false.
-
- BASE_VALUE = 2**NB_DOUBLING
-
-! total number of processors is 6 * NPROC_XI^2
- do NPROC_XI = 1,int(sqrt(MAX_NUMBER_OF_PROCS / 6.d0))
-
- counter = 1
- c = 0
-
- do while (counter <= NB_COLUMNS_TABLE)
- c = c + 1
- NEX_XI = BASE_VALUE * c * NPROC_XI
- if(NEX_XI >= 64 .and. mod(NEX_XI,2*BASE_VALUE) == 0) then
- store_NEX_XI(counter) = NEX_XI
- counter = counter + 1
- endif
- enddo
-
- if(OUTPUT_LATEX_FORMAT) then
- write(*,"(i6,' &')") NPROC_XI
- write(*,"(i6,' &')") 6*NPROC_XI**2
- do counter = 1,NB_COLUMNS_TABLE-1
- write(*,"(i6,' &')") store_NEX_XI(counter)
- enddo
- write(*,*) store_NEX_XI(NB_COLUMNS_TABLE),' ',achar(92),'tabularnewline'
- else
- write(*,"(i6,' | ',i6,' | ',i6,1x,i6,1x,i6,1x,i6,1x,i6,1x,i6,1x,i6,1x,i6,1x,i6,1x,i6,1x,i6)") &
- NPROC_XI, 6*NPROC_XI**2,(store_NEX_XI(counter), counter = 1,NB_COLUMNS_TABLE)
- endif
- enddo
-
- end program generate_table_NEX_manual
-
Deleted: seismo/3D/SPECFEM3D_GLOBE/trunk/utils/strike_dip_rake_to_CMTSOLUTION.c
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/UTILS/strike_dip_rake_to_CMTSOLUTION.c 2012-03-04 00:40:29 UTC (rev 19715)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/utils/strike_dip_rake_to_CMTSOLUTION.c 2012-03-04 16:03:00 UTC (rev 19716)
@@ -1,102 +0,0 @@
-/*---------------------------------------------------------------------------
- *
- * Copyright (c) 2000-2004 by Onur TAN
- * See COPYING file for copying and redistribution conditions.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * Contact info: Onur TAN,
- * Istanbul Technical University, Faculty of Mines
- * Department of Geophysics, Maslak, Istanbul-TURKEY
- * www.geop.itu.edu.tr/~onur
- * tano at itu.edu.tr
- *--------------------------------------------------------------------------*/
-
-/* dc2mt.c : Calculates moment tensor elements from strike/dip/rake
- by Onur TAN
- ITU, Dept. of Geophysics, Istanbul, Turkey, 2Jan2004
- 21Apr2004 bug fix for Mxy
- [ g++ -o dc2mt dc2mt.c ]
-*/
-
-// Modified by Dimitri Komatitsch, University of Pau, France, September 2007
-// compile with " gcc -o dc2mt dc2mt.c -lm " to include the math library
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-
-int main ( int argc, char* argv[] )
-{
-float S,D,R,d2r;
-float Mxx, Myy, Mzz, Mxy, Mxz, Myz;
-float Mrr, Mtt, Mpp, Mrt, Mrp, Mtp;
-
-if ( argc != 4 ) {
-printf("\nDouble Couple - Moment Tensor Converter (by Onur TAN)\n");
-printf("Usage : dc2mt Strike Dip Rake (in degrees)\n" );
-printf("Output Aki&Richards1980: Mxx Myy Mzz Mxy Mxz Myz \n\n");
-exit(1);
-}
-
-// PI / 180 to convert degrees to radians
-d2r = 0.017453293;
-
-S = atof ( argv[1] );
-D = atof ( argv[2] );
-R = atof ( argv[3] );
-
-printf("\nStrike = %9.5f degrees\n",S);
-printf("Dip = %9.5f degrees\n",D);
-printf("Rake/Slip = %9.5f degrees\n",R);
-
-// convert to radians
-S *= d2r;
-D *= d2r;
-R *= d2r;
-
-Mxx = -1.0 * ( sin(D) * cos(R) * sin (2*S) + sin(2*D) * sin(R) * sin(S)*sin(S) ); /* Mxx */
-Myy = ( sin(D) * cos(R) * sin (2*S) - sin(2*D) * sin(R) * cos(S)*cos(S) ); /* Myy */
-Mzz = -1.0 * ( Mxx + Myy); /* Mzz */
-Mxy = ( sin(D) * cos(R) * cos (2*S) + 0.5 * sin(2*D) * sin(R) * sin(2*S) ); /* Mxy */
-Mxz = -1.0 * ( cos(D) * cos(R) * cos (S) + cos(2*D) * sin(R) * sin(S) ); /* Mxz */
-Myz = -1.0 * ( cos(D) * cos(R) * sin (S) - cos(2*D) * sin(R) * cos(S) ); /* Myz */
-
-printf("\nOutput Aki&Richards1980: Mxx Myy Mzz Mxy Mxz Myz \n");
-printf("%9.5f %9.5f %9.5f %9.5f %9.5f %9.5f\n",Mxx, Myy, Mzz, Mxy, Mxz, Myz);
-
-// also convert to Harvard CMTSOLUTION format
-Mtt = Mxx;
-Mpp = Myy;
-Mrr = Mzz;
-Mtp = Mxy * -1. ;
-Mrt = Mxz;
-Mrp = Myz * -1. ;
-
-/* Harvard CMTSOLUTION format is for instance
-Mrr: -7.600000e+27
-Mtt: 7.700000e+27
-Mpp: -2.000000e+26
-Mrt: -2.500000e+28
-Mrp: 4.000000e+26
-Mtp: -2.500000e+27
-*/
-
-printf("\nOutput Harvard CMTSOLUTION: Mrr Mtt Mpp Mrt Mrp Mtp\n");
-printf("Mrr: %9.5f\n",Mrr);
-printf("Mtt: %9.5f\n",Mtt);
-printf("Mpp: %9.5f\n",Mpp);
-printf("Mrt: %9.5f\n",Mrt);
-printf("Mrp: %9.5f\n",Mrp);
-printf("Mtp: %9.5f\n\n",Mtp);
-
-}
-
More information about the CIG-COMMITS
mailing list