# Smoothing Marmousi velocity model
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Input files required
  chk.pl: "data/mar/" "mar-vel.dat"
  chk.pl: "data/mar/" "mar-mod0.dat"
  chk.pl: "model/"    "sob22.dat"
  chk.pl: "forms/"    "inv.cal"

# Inversion
# ~~~~~~~~~
# Initial and updated models
  MODEL='mar-mod0.dat'  MODOUT='mar-mod.out'  NEGPAR=0

# Gridded slowness to fit (intervals 40m*80m)
  N1=76  N2=116  D1=40  D2=80  O1=0  O2=0
  CAL='inv.cal' GRD1='mar-vel.dat' GRD2='mar-u0.out'
  grdcal:

# Calculating matrices for inversion
  M1='m1.out'  M2='m2.out'  MODL2=' '  MODSOB='modsob.out'
  SOBOLEV='sob22.dat'  SOBW01=1  # minimizing second slowness derivatives
  invsoft:
# Unit given standard deviation of slowness  ERRMUL=SQRT(N1*N2)
  GRD='mar-u0.out'  INDFUN=1  MPAR=1  POWERM=-1  ERRMUL=93.9
  GM1='gm1.out'  GM2='gm2.out'  GM3=' '  DM1='dm1.out'
  invpts:
  GRD=' '

# Matrix operations
  MATIN1='dm1.out' MATOUT='dm2.out' MATFUN='inv'
  matfun:
  MATIN1='dm2.out'    MATIN2='gm1.out'     MATOUT='dm2gm1.out'
  SYMMETRY=      MATT1=  MATT2=1
  matmul:
  MATIN1='gm1.out'    MATIN2='dm2gm1.out'  MATOUT='sm1.out'
  SYMMETRY='sym' MATT1=  MATT2=
  matmul:
  MATIN1='sm1.out'    MATIN2='modsob.out' MATOUT='sm2.out'
  COEF1=  COEF2=1296000000
  matlin:
  MATIN1='sm2.out'                        MATOUT='sm3.out'
  matinv:
  MATIN1='dm2.out'    MATIN2='gm2.out'    MATOUT='gm3.out'
  SYMMETRY=' '   MATT1=  MATT2=
  matmul:
  MATIN1='gm1.out'    MATIN2='gm3.out'    MATOUT='gm4.out'
  matmul:
  MATIN1='sm3.out'    MATIN2='gm4.out'    MATOUT='gm5.out'
  matmul:

# Updating the model
  M1='m1.out'  MODNEW='gm5.out'
  modmod:

# Calculating components of the residual objective function
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Standard slowness deviation 'mar-ud1.out' of the updated model
  MATIN1='gm1.out'    MATIN2='gm5.out'    MATOUT='gm8.out'
                  MATT1=1 MATT2=
  matmul:
  MATIN1='gm2.out'   MATIN2='gm8.out'     MATOUT='gm9.out'
  COEF1=  COEF2=-1
  matlin:
  MATIN1='dm2.out'   MATIN2='gm9.out'     MATOUT='dm2gm9.out'
  SYMMETRY=       MATT1=  MATT2=
  matmul:
  MATIN1='gm9.out'   MATIN2='dm2gm9.out'  MATOUT='gm0.out'
  SYMMETRY='diag' MATT1=1 MATT2=
  matmul:
  MATIN1='gm0.out'                        MATOUT='mar-ud1.out'
  MATFUN='sqrt'
  matfun:

# Sobolev norm 'mar-un1.out' of the slowness in the updated model
  MATIN1='modsob.out'    MATIN2='gm5.out'     MATOUT='gm6.out'
  SYMMETRY=       MATT1=  MATT2=
  matmul:
  MATIN1='gm5.out'       MATIN2='gm6.out'     MATOUT='gm7.out'
  SYMMETRY='diag' MATT1=1 MATT2=0
  matmul:
  MATIN1='gm7.out'                            MATOUT='mar-un1.out'
  MATFUN='sqrt'
  matfun:

# Important output files
# ~~~~~~~~~~~~~~~~~~~~~~
# 'mar-u0.out' ... Gridded slowness being fit.
# 'mar-mod.out'... Smoothed model.
# 'mar-ud1.ou@'... Standard slowness deviation of the model.
# 'mar-un1.ou@'... Sobolev norm of the slowness in the model.
