Mineos - CPS Earth flattening comparison

The purpose of this presentation is to compare mineos normal mode synthetics to the Computer Program in Seismology codes that use an Earth flattening approximation to construct synthetics

Installing Mineos

Mineos is obtained from the Computational Infrastructure of Geodynamics web site: (mineos download). One line of the distribution code was modified to permit compilation using the gfortran compiler.  The unofficial distribution, with the source code fix in minos_bran.f is given in the tar-ball MINEOS.tgz. To install mineos and the scripts used for testing th CPS codes, do the following:

cd (Directory where you want this installed)
gunzip -c MINEOS.tgz | tar xvf -
cd MINEOS
./DOIT

You will now have compiled the programs, which are placed in the newly created bin directory.
You will find PDF documentation of the package in the file mineos-1.0.0.rbh/doc/mineos.pdf .
You will also find an abreviated  DEMO package in mineos-1.0.0.rbh/DEMO/DEMO.tar.gz.

Modifications to the distribution:

    mineos-1.0.0.rbh/utils:
       Changed the cucss2sac.h  sac header fields from long to int.  This was done in typedef struct sac and in the SAC_HD *read_sac prototype. Why?  This definition of the SAC header is a dreg from 16 bit processors.  Using the long  will be invalid for a 64 bit machine unless the -w32 compiler flag is used. Note I did not correct the incorrect time stamp, e.g., try a time 1 second before January 1, 1970.  I also did not correct for the fact that DEPMAX and DEPMIN are not based on data but on the first two samples of the time series!

    mineos-1.0.0.rbh:
          minos_bran.f  would not pass the gfortran compiler. The reason is
the instance of
      dimension x(20),det(20),qx(3,20),wrk(60),wt(*),ichar(4)
      data tol/1.d-9/,itmax/15/,ichar/' s',' t',' s',' c'/

which was changed to

      dimension x(20),det(20),qx(3,20),wrk(60),wt(*),kchar(4)
      character*2 kchar
      data tol/1.d-9/,itmax/15/,kchar/' s',' t',' s',' c'/

BECAUSE:
        1. ichar is a reserved function in FORTRAN90
        2. ichar was not defined as a character string. This part of the code is really FORTRAN66!

          syndat.f did not have the required read to define the output field. I added (in caps with neighboring lines)

      read(*,'(a256)') dbout
      write(*,*) dbout(1:lnblnk(dbout))
c-----
c     CORRECTION RBH
c-----
      WRITE(*,*) 'Enter output units: 0 [nm/s/s] 1 [nm/s] 2 [nm]'
      READ(*,*)idout
c
c    read source and moment
c
              Note also that  the source code does not agree with the documentation.  The source code wants the following input:

      write(*,*) '============== Program syndat =================='
      write(*,*) 'enter input CMT file name:'
      read(*,'(a256)') fname1
      write(*,*) fname1(1:lnblnk(fname1))
c.... setup tensor type: moment/Mo,nodal2/Mo,nodal2
      write(*,*) 'enter tensor type: 0 - moment, ',
     *     '1 - nodal plane 1, 2 - nodal plane 2'
      read(*,*) itptens
      write(*,*) itptens
c.... i/o database name
      write(*,*) 'enter input dbname'
      read(*,'(a256)') dbin
      write(*,*) dbin(1:lnblnk(dbin))
      write(*,*) 'enter output dbname'
      read(*,'(a256)') dbout
      write(*,*) dbout(1:lnblnk(dbout))
c-----
c     CORRECTION RBH
c-----
      WRITE(*,*) 'Enter output units: 0 [nm/s/s] 1 [nm/s] 2 [nm]'
      READ(*,*)idout
                 The manual says
                            cmt_event  - TRUE
                            in_dbname     These two are reversed from the source code
                            plane
                            out_dbname  TRUE
                            datatype        TRUE

Simple Mineos Run


The first example:

cd share/mineos/nDEMO5
DOIT

The DOIT script runs a variant of the RUN_MINEOS.sh, called DOEGN, which get the free oscillation frequencies and eigenfunctions for my version of AK135-f. Only the spheroidal and toroidal modes are computed. The Radial mode is not computed.  The script DOIT
#!/bin/sh

#####
# compute the free oscillation frequencies and the eigenfunctions
#####
DOEGN tak135-f
#####
# now compute the synthetics for a specific moment tensor that represents
# the following cases
#
# Source STK DIP RAKE Mw [M0(dyne-cm)] Src-Rec Az
# DS 45 90 90 2.6 [1.0E+20] 0
# SS 22.5 90 0 2.6 [1.0E+20] 0
# DD 45 45 90 2.6 [1.0E+20] 0
# EX Center of expansion 2.6 [1.0E+20] 0
#####
DOSYNSS
DOSYNDS
DOSYNDD
DOSYNEX

Then computes SAC files for the given mechanism, moment and station azimuth. The output of the MINEOS package are ground acceleration in units of nm/s/s. To be able to comapre them to the Compute Program in Seismology synthetics, we must integrate and then convert to other units. This will be done later by the script DOPOPULATEMIN.

       The script creates synthetic ground accelerations for each source for distances of 10 to 170 degrees for source depths of 10, 100 and 700 km.
The synthetics are in the directories with names, such as SS_Syndat_700 for the SS source and 700 km source depth. The output of the gsac command to plot the LHT synthetics for the SS source for a 10 km depth are

gsac << EOF
r SS_Syndat_010/*LHT.SAC
bg plt
prs gcarc
plotnps -F7 -W10 -EPS -K < PRS001.PLT > prs001.eps
quit
EOF

is
LHT synthetic