Program greensm

USAGE:

          greensm @ <ins-file> [options]

PURPOSE:

Compute loading Greens functions from Load Love numbers.
Background reading concerning program's maths.

STDOUT:

   contains lines with Green's function values

                    Distance Component           Re___Unnormalized___Im    Re____Normalized____Im   diagn. from common /CGREPORT/
                      [deg]                                                                         _jrep_    _nrep_   ___drep___
 <Main-->>>    0.00150  Radial              2.3539D+05  0.0000D+00    6.1625D+00  0.0000D+00    0    0    0    0  0.0000E+00
 <Main-->>>    0.00150  Tangential         -7.2197D+04  0.0000D+00   -1.8901D+00  0.0000D+00    0    0    0    0  0.0000E+00
 <Main-->>>    0.00150  PTangential         1.1408D+01  0.0000D+00    2.9867D-04  0.0000D+00    0    0    0    0  0.0000E+00
 <Main-->>>    0.00150  Gravity             5.7245D+05  0.0000D+00   -2.9973D+01  0.0000D+00    0    0    0    0  0.0000E+00
 <Main-->>>    0.00150  Tilt                9.0599D+09  0.0000D+00   -6.2096D+00  0.0000D+00    0    0    0    0  0.0000E+00

     ... useful to catch for plotting.  

CONTROL:

          By instruction file, ins-file

MODIFY by command line options:

    values override namelist settings

-ddiskf    - the DFA parameter, disk factor (radius in degrees)
-kkindsum  - the KIND_SUM parameter
-witer     - the ITER_REQ parameter
-Llovetag  - the ITAG parameter
-porder    - the INTPO_LN parameter
-ttpar     - the T parameter
-D         - debug

INSTRUCTION FILE:

(1) OPEN-FILE BLOCK
(2) NAMELIST &param
(3) Distances (degrees)

(1) OPEN-FILE BLOCK
    21 B Love-file        - input. The old format, e.g. loadf.dat
    31 B Greens-file      - output. The old format, slightly modified (number of
                            columns per row)
    41 B Interpol-Love    - optionally. If open, program will stop after
                            producing the table.
       Q

(2) NAMELIST &param

Parameter        Type         Description  [default]
-------------------------------------------------------------------------------------------------------------
ITAG             char*8     - The label of the Love number file (first string there)              ['L00EGBC']
QINFLN           logical    - .true.: Input the infinite-degree Love numbers (else ignore)           [.true.]
QCMPLX           logical    - Process complex-valued Love numbers                                    [.true.]
INTPO_LN         integer    - 1 plus the order of the interpolation polynomial for Love nr's              [3]
NEXPAND          integer    - The upper limit for Legendre degree                                     [10000]
DFA              real*8     - If DFA > 0, assume a disk load DFA*distance ...                          [-1.0]
DFAMIN,DFAMAX    real*8     ... but keep within these limits                                       [0.,180.0]
T                real*8     - Sum terms n are multiplied with T**n                                    [1.0d0]
DISTMIN,DISTMAX  real*8     - Distance limits [deg]                                       [0.001d0,179.999d0]
NDISTX           integer    - Log-equalspaced distances: number of points in interval
                              DISTMIN..DISTMAX. If NDISTX < 0, read distances after namelist             [-1]
NDISTH           integer    - If DISTMAX < 170.1, the interval from DISTMAX to 179.99 is
                              divided into NDISTH
log-equalspaced distances                              [30]
QDISTDEC         logical    - Copy read-in distances to all decades above, end at DISTMAX           [.false.]
COMPS(20)        char*16    - The components. First blank component determines the end.
                              Possible are (first four chars are significant):
                              RADIAL TANGENTIAL PTANGENTIAL OTEP GRAV TILT                ['RADI','TANG',' ']
More components must be coded up, especially: Strains

KIND_SUM         integer    - Selects summation algorithm                                                 [1]
                              1: Direct
                              2: van Wijngarden
                              3: Precise sum
                              0: If van Wijngarden does not reach the end, take algortihm 1.
WIJN_ACC         real*8       If partial sums don't change more than WIJN_ACC, end iteration          [1.d-9]
ITER_REQ         integer      ... but require at least min(ITER_REQ,NALT/3) to accept van Wijngarden
                              (NALT is the number of terms of the reduced, strictly alternating sum)      [0]
GREENS_COMMNT    char*64    - Comment in the first line of the Greens function file.
                                                                             ['FARRELL''S LOAD LOVE NUMBERS']
QDEBUG           logical    - Sets a couple of subroutines into busy reporting state                [.false.]
                              (wish: more distinction, use a string)

-------------------------------------------------------------------------------------------------------------

(3) Specific distances

If namelist's NDISTX is not specified, the program expects distance information.
The distances will be ordered by the program to increase monotonously.
Each input line may be

distance | X | E | -1

E or -1 mark the end of data

If QDISTDEC=.true., X marks the end of the division of the lowest decade, but additional distances will follow.

Example:

21 B loadf.dat
31 B greenf.dat
41 * B love_ip.dat
   Q
 &param
 qinfln=.true.
 qcmplx=.false.
 qdistdec=.true.
 dfa=-1.
 kind_sum=3
 iter_req=20
 comps='RADI','GRAV ',' '
 &end
0.01
0.012
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
X
110.
130.
140.
150.
170.
173.
176.
177.
178.
179.
179.5
179.8
0.0015
E


Plot interpolated Love numbers:  cd ~/Green/; plot-ip-love

Plot Greens function:           
cd ~/Green/; quick-plot-green Gravity

.

.bye