169
New Jersey Geological Survey Open-File Report OFR 90-1 Microcomputer Software for Individual or Simultaneous Inverse Modeling of Transient Electromagnetic, Resistivity, and Induced Polarization Soundings land surface layer 1 layer 2 NJ DEPOSITORY · DOCu' 'T '\"U""io; ... 1 DEC 2'2' S90 WM. PA! E.{;".... ;,! OF j .. \ ,r N.J. Department of Environmental Protection -'Dlvisio:1 of Water Resour es

New Jersey Geological Survey Open-File Report OFR 90-1

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New Jersey Geological Survey Open-File Report OFR 90-1

New Jersey Geological Survey Open-File Report OFR 90-1

Microcomputer Software for Individual or Simultaneous Inverse Modeling of Transient Electromagnetic, Resistivity, and

Induced Polarization Soundings

land surface

layer 1

layer 2

NJ DEPOSITORY · DOCu' Ii·A~~ 'T

'\"U""io; ... 1

DEC 2'2' S90

WM. PA! E.{;"....;,! t.(;tLcC~

OF N~·\I.I j .. \ ,r

N.J. Department of Environmental Protection - 'Dlvisio:1 of Water Resour es

Page 2: New Jersey Geological Survey Open-File Report OFR 90-1

STATE OF NEW JERSEY Jim Florio, Govemor

Department oCEnvironmental Protection Judith A. Yaskin, Commissioner

Environmental Management and Control John S. Keith,Assistant Commissioner

Geological Survey Haig F. Kasabach, State Geologist

Cover illustration: Schlumberger resistivity-array geometry showing lines of current flow in a two-layered earth with higher conductivity in deeper layer.

Page 3: New Jersey Geological Survey Open-File Report OFR 90-1

New Jersey Geological Survey Open-File Report OFR 90-1

Microcomputer Software for Individual or Simultaneous Inverse Modeling of Transient Electromagnetic, Resistivity, and

Induced Polarization Soundings

by Stewart K Sandberg

New Jersey Department of Environmental Protection Division of Water Resources

Geological Survey Trenton, NJ 08625

1990

Page 4: New Jersey Geological Survey Open-File Report OFR 90-1

New Jersey Geological Survey open-file reports are published by the New Jersey Geological Survey, CN-029, Trenton, NJ 08625.

Additional copies of this and other reports may be obtained from:

Maps and Publications Sales Office Bureau of Revenue CN-402 Trenton, NJ 08625

A price list is available on request.

Use of brand, commercial, or trade names is for identification purposes only and does not constiMe endorsement by the New Jersey Geological Survey.

IBM Program License Agreement Redistributed IBM Personal Computer Programs

YOU SHOULD CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS BEFORE USING THE REDISTRIBUTOR'S APPLICATION PROGRAM. YOUR INITIAL USE OF THE REDISTRIBUTOR'S APPLICATION PROGRAM INDICATES YOUR ACCEPTANCE OF THESE TERMS AND CONDITIONS. IF YOU DO NOT AGREE WITH THEM, YOU SHOULD PROMPTLY RETURN THE REDISTRIBUTOR'S APPLICATION PROGRAM TO THE REDISTRIBUTOR.

Name and Address of Redistributor:

New Jersey Geological Survey CN'()29 Trenton, New Jersey 08625

Name of Redistributors Application Program:

EINVRT4.EXE

The Redistributor's Application Program (Redistributor's Ap­plication) contains in j:lart copyrighted materials which are the property of IBM or IBM's Vendor (IBM Program). IBM licenses their use by you onl~ in conjunction with your authorized use of the Redistributor s Application in the United States and Puerto Rico. You assume res~nsibility for the selection of the IBM Program to achieve your intended results, and for the in­stallation and use of, and results obtained from, the IBM Pro­gram.

LICENSE Unless prohibited by the Redistributor, you may in conjunction with your authorized use of the RedistriDutor's Application:

1) l!se the IBM Program on only one machine at anyone time: .

2) co,Py the IBM Program into any machine-readable or printed form:

3) modify the IBM Program and/or merge it, along with the Redisfributor's Appllcation l )nto another program for your use. (Any ~rtion of the IBM Program merged, along with the Redlstributor's Application, into another program will continue to be subject to the terms and conditions of this Agreement); and

4) transfer the IBM Program, along with the Redistributor's Applicationl with a copy of thiS Agreement to another party only it the other party agrees to accept from IBM the terms and conditions of this Agreement. " you transfer the IBM Program you must at ttie same time either trans­fer all copies whether in printed or machine-readable form to the same party or destroy any copies not trans­ferred This inCludes an modifications and portions of the IBM Program contained or merged into other pr0:Rams. IBM grants a license to such other party under this ree­menf and the other party will accept such license by I S in­itial use of the RedlstriDutor's ~plication. " you transfer possession of any copy, modification or merged portion of the IBM Program, in whole or in part, to another party, you license is automatically terminated.

You must reproduce and include the copyright notice on any copy, modification, or portion merged into another program.

You may not reverse assemble or reverse compile the IBM Pro­gram.

You may not use, copy, modify or transfer the IBM Program, or any copy, modification or merged portion. in whole or in part, except as expressly provided for in this Agreement.

You may not sublicense, rent or lease the IBM Program.

CHARGES The charge applicable to the IBM Program(s) will be paid by the Redistributor.

TERM You may terminate this Agreement at any time by destroying the IBM Program together with all copies, modifications and merged portions in any form, It will also terminate if you fail to comply with any term or condition of this Agreement. You agree upon termination to destroy the IBM Program together With all copies, modifications and merged portions in any form.

DISCLAIMER OF WARRANTY THE IBM PROGRAM IS PROVIDED "AS IS" WITHOUT WAR­RANTY OF ANY KIND EITHER EXPRESS OR IMPLIED IN­CLUDING ... BUT NOT LIMITED TOt THE IMPLIED WARRANTIES OF MERvHANTABILITY AND FI NESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PER­FORMANCE OF THE IBM PROGRAM IS WITH YOU. SHOULD THE IBM PROGRAM PROVE DEFECTIVE YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION, SOME STATES DO NOT ALLOW THE EX­CLUSION OF IMPLIED WARRANTIES SO THE ABOVE EX­CLUSION MAY NOT APPLY TO YOU. 'tHIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS AND YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY FROM STATE TO STATE.

LIMITATION OF REMEDIES IN NO EVENT WILL IBM BE LIABLE TO YOU FOR ANY DAMAGES OF ANY lOST PROFITS, lOST SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARIS­ING OUT OF THE USE OF OR INABILITY TO USE THE IBM PROGRAM EVEN IF IBM OR THE REDISTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.

SOME STATES DO NOT ALLOW THE LIMITATION OR EX· ClUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUEN· TIAL DAMAGES SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.

General You agree that you will look only to the Redistributor, and not to IBM, for any support, maintenance assistance or the like with respect to the IBM Program and Redistributor's Applica­tion and that IBM shall have no liability to you in relation to these Programs.

This Nlreement will be construed under the Uniform Commer­cial COde of the State of New York.

Page 5: New Jersey Geological Survey Open-File Report OFR 90-1

Abstract

Introduction Acknowledgments

CONTENTS

Hardware requirements and modification notes Screen graphics Field equipment

Field data reduction and storage TEM data file format

BASIC program T47INPUT Input Output

FORTRAN program READ Resistivity/induced polarization data file format

BASIC program SLUMBER Input Output

page

1

2 2 3 3 4

4 5 5 5 6 7 7 7 7 8

Transient electromagnetic apparent resistivity calculation 8 FORTRAN program RAMPRES2 10

Input 10 Output 10

Forward model algorithms Transient electromagnetics Resistivity. Induced Polarization

Inverse modeling. Theory

The Jupp-Vozoff algorithm Parameter resolution statistics

FORTRAN program EINVRT4 Modes of operation . Input file Output file of results Output plot file Graphics screens

The philosophy and practice of inverse modeling Suggested interpretation process Tips on how to speed up the modeling process How to tell when a model is adequate.

Specific examples that have been worked out

Summary

References

12 12 15 18

20 20 20 24 26 26 26 31 32 33 34 36 37 38 38

42

43

Page 6: New Jersey Geological Survey Open-File Report OFR 90-1

FIGURES

Figure 1. Transient electromagnetic sounding field layout showing the central-Ioop-sounding configuration

page

using a large square transmitting loop 13

2. Schlumberger resistivity-array geometry showing lines of current flow in a two-layered earth with higher conductivity in deeper layer 16

3. EINVRT4 subroutine and function flow chart 27

APPENDIX I - Exaaples

Example 1a. Input session for T47INPUT . lb. Output (test2.dat) from T47INPUT

2a. 2b. 2c. 2d.

3a. 3h. 3c.

4a. 4b. 4c.

Input session for SLUMBER. Output data file (test1.100) Output plot file (test1.plt) Plot of test1.plt using PLOT

RAMPRES2 screen session.

from SLUMBER from SLUMBER

Output plot file (test2.ppp) from RAMPRES2 Plot of test2.ppp using PLOT

Input file (test4.mod) for EINVRT4 Graphics screen for mode 2 (using test4.mod) Output file (test4.out) from EINVRT4 using test4.mod as input

page

46 47

48 49 50 51

52 53 54

55 56

4d. Plot of output plot file (test4.plt) using PLOT. 57 67

5. Graphics screen for mode 5 (using test3.mod)

6. Graphics screen for mode 6 (using test2.mod)

7a. Data file (readtest.dat) created by the Geonics GSPx7 program

7b. READ session where readtest.dat is input 7c. Output data file patcm6h.dat from READ 7d. Output data file patem6j.dat from READ 7e. RAMPRES2 session creating patem6.plt 7f. Plot of patem6.plt created in example 7e

68

69

70 71 72 72 73 74

Page 7: New Jersey Geological Survey Open-File Report OFR 90-1

APPENDIX II - Program Listings

T47INPIJT.BAS READ. FOR . SLUMBER. BAS RAMPRES2.FOR EINVRT4.FOR

Subroutines Main . Data . Guess Zjacob Switch Forward

function gaver function dd function zf1 function ff function aO

Zhanks Error Stat Outptt Pnew . Hysvd

hyrot Resist Block data Screen .

Graphics screen updating subroutines bkupck sline smat siter srcsq sparm ssplt hms hawIng fno timeup samu

page

76 77 80 82 91

91 103 108 111 114 117

120 122 125 126 129 132

138 140 144

Page 8: New Jersey Geological Survey Open-File Report OFR 90-1

MICROCOMPUTER SOFTWARE FOR INDIVIDUAL OR SIMULTANEOUS INVERSE MODELING OF TRANSIENT ELECTROMAGNETIC, RESISTIVITY, AND INDUCED POLARIZATION SOUNDINGS

by Stewart K. Sandberg

ABSTRACT

This report presents microcomputer software for the quantitative interpretation of geoelectric soundings. Five computer programs are included which are useful for data input, data reduction, and one-dimensional inverse modeling applied to resistivity, induced polarization (IP), and transient electromagnetic (TEM) methods. The inverse modeling program has the capability to model field­data sets either individually or simultaneously from these methods. In addition, standardized data-file formats for the TEM central loop induction configuration, and the Schlumberger resistivity/IP array are introduced.

Data reduction includes the calculation of apparent resistivity for the four-electrode Schlumberger array, and ramp-corrected TEM apparent resistivity for the central loop configuration. In addition, plot files of redu.ced data are generated for initial inspection of field data, qualitative interpretation, and to assist in the determination of initial guess layered-earth parameters for subsequent inversion.

Inverse modeling is designed to obtain parameters of a layered­earth model. The inversion program operates in six possible modes:

1) TEM central loop induction configuration only 2) Schlumberger array resistivity only 3) Simultaneous Schlumberger resistivity and TEM 4) Simultaneous dipole-dipole resistivity and TEM 5) Simultaneous Schlumberger resistivity and IP 6) Simultaneous Schlumberger resistivity, IP, and TEM

Because of the method used to calculate the resistivity forward solution, Wenner array resistivity (alone and with IP) data can also be modeled.

Screen graphics is used in the inversion software but the program can be run without it if the graphics drivers are not compatible with particular user microcomputer hardware. Both compiled and source code are provided, allowing user modification and customization.

1

Page 9: New Jersey Geological Survey Open-File Report OFR 90-1

INTRODUCTION

Modern surface electrical geophysical investigations in which soundings are applied to solve geologic mapping problems almost always employ mathematical inversion of field measurements to obtain a geoelectric model. The use of forward modeling has become almost as outdated as its predecessor, curve matching. Inversion has a second advantage besides being one step closer to the elusive automatic interpretation, and that is its ability to produce quantitative resolution information. It is an analysis of resolution which has led to a better understanding of the capabilities of various geophysical methods.

In the past few years, simultaneous inverse modeling techniques, where data are obtained from two different electrical geophysical methods, have been shown to improve resolution. Examples include the work of Vozoff and Jupp (1975), Raiche and others (1985), and Gustafson and McEuen (1987).

This report presents inversion software developed specifically to improve resolution in electrical geophysical surveys. The software incorporates many features useful to the practicing geophysicist to save time in the interpretation process. In addition, features useful to the geophysicist for understanding the subtle features of the invcrsjon method applied to each specific case have been incorporated.

Electrical geophysical methods alone and in combination, addressed by this software include the following one-dimensional (sounding-type) techniques: 1) Schlumberger array resistivity, 2) simultaneous Schlumberger resistivity and induced polarization (IP), 3) transient electromagnetic (TEM) central loop, 'or in-loop array soundings, 4) simultaneous TEM and Schlumberger resistivity soundings, 5) simultaneous TEM and dipole-dipole array resistivity soundings, and 6) simultaneous TEM, Schlumberger resistivity, and IP soundings. Also, owing to the way that the resistivity forward solution is calculated, Wenner array resistivity and/or IP soundings can be sUbstituted in the above categories where Schlumberger array is listed. Half-Schlumberger array resistivity and IP data can be interpreted also.

This software was developed as part of. dissertation research work at Rutgers University from 1988-1989.

Acknowledgaents

I thank Kevin T. Kilty who graciously provided the source code for the HYSVD subroutine. I also thank Brian R. Spies, Kevin T. Kilty, and Craig W. Beasley for critically reviewing the manuscript and offering helpful suggestions.

2

Page 10: New Jersey Geological Survey Open-File Report OFR 90-1

Hardware requireaents and aodification notes

This software was written for an IBM-AT personal computer with at least 512 KB of memory, an 80287 math coprocessor chip, and one disk drive (a hard disk is preferable). Screen graphics is incorporated into the code using the IBM Graphics Development Toolkit version 1.12, but there is an option to operate without graphics if the graphics drivers are not available. The IBM Graphics Toolkit drivers for the EGA and CGA cards and monitors are provided. The programming languages used are the IBM BASICA interpreter (the GWBASIC interpreter also works) for the TEM and resistivity/IP data input routines (T47INPUT and SLUMBER, respectively), and IBM Professional FORTRAN for the remainder of the code (READ, RAMPRES2, and EINVRT4).

Nonstandard BASIC and FORTRAN statements in the code were avoided if possible, but the following should be noted for conversion to other systems:

1. FORTRAN programs RAMPRES2 and subroutine FORWARD in EINVRT4 both use a zero-based index for a factorial array. The specific code in both programs is:

common/fctrl/afac(0:69)

A suggested modification for compilers without zero-based indexing (Kevin T. Kilty, written communication, February 13, 1988) is to replace the common statement with the following:

real*8 afac(70),fixx common/fctrl/fixx(71) equivalence (fixx(2),afac(1»

2. Early compilers cannot process input/output list items enclosed in parentheses. For example, the statement

... , (tt*1000.),.

must be changed to

... ,tt*1000., ..

3. Earlier compilers cannot do complex arithmetic. The subroutine FORWARD of the EINVRT4 program has complex arithmetic in the code.

Screen graphics

For the screen graphics to operate, the appropriate driver name must be added to the CONFIG.SYS file after which the computer

3

Page 11: New Jersey Geological Survey Open-File Report OFR 90-1

must be re-booted. Prior to running software requiring graphics (the EINVRT4 program), the INIT_VDI.EXE program must be executed. An example CONFIG.SYS file is provided on the program disk, along with several device drivers. The device driver to be used with an EGA card and monitor is the VDIDYOI0.SYS driver. The device driver for a CGA card and monitor is the VDIDY006.SYS driver.

Field equip.eDt

The TEM equipment for which the software was designed is the Geonics PROTEM receiver operating with either the EM-37, EM-47, or the EM-57 transmitter. If the Geonics EM-37-3 receiver is used, the TEMINPUT.BAS code in Sandberg (1988) must be used to account for the instrument channel gains. Any of the transmitted base frequencies available on the PROTEM receiver can be used (3, 7.5, 30, 75, and 315 Hz).

The sample gate times in the DATA statements of the programs and the receiver coil effective areas can be modified for other equipment. Also, the ramp shutoff time obtained from the Geonics equipment is used in the algorithms.

The resistivity/IP equipment for which the software was designed is the Huntec M4 time-domain system. However, any basic IP equipment could be used if the IP data are scaled to the same order of magnitude as the sum of the 10 time windows of the Huntec as read on the receiver display. (For more information pertaining to IP scaling and its importance, see the section on Induced Polarization under Forward model algorithms.)

Resistivity-alone data obtained from any standard resistivity equipment can be interpreted with this software. Data'points required include the transmitter current, the receiver voltage. and the electrode array parameters (AB/2 and MN for Schlumberger, a-spacing and n-value for dipole-dipole).

FIELD DATA REDUCTION AND STORAGE

TEM field notebook data must be reduced for receiver coil amplifier gain and the receiver coil's effective area (area of coil multiplied by number of turns). In addition. a standardized data format is necessary.

The BASIC program T47INPUT creates standardized data files by keying-in data values displayed on the PROTEM receiver datalogger screen. Alternatively, the FORTRAN program READ translates the file created by the Geonics transfer program GSPx7 (Geonics, Dec. 1988), and creates one output file for each TEM sounding. However. as stated in the previous section. the BASIC program TEMINPUT in Sandberg (1988) must be used to account for the

4

Page 12: New Jersey Geological Survey Open-File Report OFR 90-1

instrument channel gains when reducing data obtained with the Geonics EM-37-3 receiver.

Resistivity and IP sounding field data require a standardized format, not for data reduction, but for storage. These data initially need to be reduced to apparent resistivity versus current electrode separation and plotted to determine data quality and allow determination of an initial guess for the inversion. A program for resistivity data input and generation of a plot file of apparent resistivity versus current electrode half-separation is included as the BASIC program SI.UMBER.

TEM data-file for.at

The TEM data-file format was described by Sandberg (1988) as the NJGS (New Jersey Geological Survey) Standard TEM Data Format. Software presented in Sandberg (1988) and in this report require input files in this format. TEM data values in the NJGS Standard TEM Data Format are produced by both data input routines T47INPUT and READ.

BASIC program T47INPUT

This program creates a data file for each TEM sounding through the interactive process of keying-in data values from the PROTEM receiver data-logger display. An input session and corresponding output are shown in examples la and Ib (Appendix I). Note that entering a duplicate file name to a pre-existing file will cause the pre-existing file to be overwritten.

Input

The program prompts for a file name in which the reduced data will be stored. Next, the following variables are entered:

code

where

code

gain ai toff tx

Number corresponding to the transmitted base frequency and receiver coil type. Allowable values are:

1 (for 3 Hz or LO receiver setting)

2 (for 7.5 Hz or MD)

3 (for 30 Hz or HI setting with the low frequency coil and the EM-57 or EM-37 transmitter)

4 (for 30 Hz or HI with the low frequency coil and

5

Page 13: New Jersey Geological Survey Open-File Report OFR 90-1

the EM-47 transmitter)

5 (for 30 Hz or HI with the high frequency coil and and the EM-47 transmitter)

6 (for 75 Hz or VH)

7 (for 315 Hz or UH)

gain The amplifier gain from the receiver expressed as a power of 2.

ai The transmitter current in amperes.

toff The transmitter current pulse turnoff time in microseconds. This value is obtained from a meter on the transmitter.

tx The transmitter loop side dimension (fig. 1) in meters.

Finally. 20 channels of data are requested. At the end. provision is made to enter another data file while the program is running.

Output

The output is a data file in free format consisting of 21 lines as shown in example 1b (Appendix I). The top line shows code. gain. ai. toff. and tx as defined above.

The remaining 20 lines are the calculated dB/dt in microvolts per square meter (pV/m2) at the receiver coil at each of the 20 time windows of the receiver. The formula used in the calculation (Geonics Limited. 1989. p. 17) is:

dB 19.2·V·2-gain ( 1 )

dt

where v (in mV) is the reading at the receiver and AR is the effective area of the receiver coil (in m2 ). This output format is the NJGS Standard TEM Data Format. All programs requiring TEM data input are read assuming this format. The inversion program EINVRT4 has an option to produce an output file in this format. Such a file is useful as a forward modeling result for either an arbitrary theoretical model. or as a final theoretical model which matches a set of field data. Other than this output file, the only forward modeling results are late-time asymptotic TEM apparent resistivity values.

6

Page 14: New Jersey Geological Survey Open-File Report OFR 90-1

fORTRAN program READ

This program reads the data file created by the Geonics GSPx7 Transient EM Data Handling & Modeling program (Geonics Limited. 1988). Data are uploaded from the PROTEM receiver data logger to the microcomputer using this manufacturer-supplied software. These data are then reduced and translated by the FORTRAN program READ into individual sounding files in the NJGS Standard TEM Data Format as described for T47INPUT in the previous section. This is an interactive process which is specific to the PROTEM receiver data logger; it has not been designed for data from the EM37 data logger. No account for differing channel gains has been made as in the program TEMINPUT (Sandberg. 1988). An example of the operation of this program is in the section entitled Specific examples that have been worked out. with input and output sample data files in APPENDIX I as examples 7a through 7d.

ResistiVity/induced polarization data-file for.at

The resistivity/IP' data-file format is defined as the NJGS Standard Resistivity/IP Data Format. Details of this syntax are explained below in the Output section of the SLUMBER program description. Data are required in this format to be entered into the inversion program EINVRT4.

BASIC program SLUMBER

This program is a data-input routine which creates two output files: a data file for storage of resistivity/IP data in the NJGS Standard Resistivity/IP Data Format. and a plot file for initial inspection of field data. A separate data file is created for each resistivity/IP sounding. An example of an input session and the corresponding output files are shown in examples 2a. 2b. and 2c (Appendix I). Note that entering a duplicate file name to a pre-existing file causes the pre-existing file to be overwritten.

Input

Data are entered interactively in response to screen prompts. Input data consist of the current electrode half-separation (AB/2) in meters. potential electrode separation (MN) in meters. and the transmitted current (I) in amperes. Depending upon whether the data were collected with the AHEM Terrameter or a regular receiver (such as the Huntec M4 or Bison 2390). one is either prompted for the resistance (R) in ohms (for the ABEM). or the voltage (V) in volts. If IP data were also collected. one is then prompted to enter the chargeability in milliseconds. One enters a zero value for AB/2 to exit the program (see example 2a).

7

Page 15: New Jersey Geological Survey Open-File Report OFR 90-1

Output

Output consists of two files. A plot file of apparent resistivity versus current electrode half-separation (AB/2) is created for initial inspection of field data (example 2c). In addition. a data file of electrode geometry and readings is created (example 2b).

The plot file consists of three columns of numbers in free format. These columns are AB/2. apparent resistivity. and a plot-symbol number. The plot-symbol numbers correspond to plotting symbols as interpreted by NJGS plotting programs such as PLOT (Sandberg, 1988). This format has been referred to as the NJGS Standard Plot Format (Sandberg. 1988).

The data file consists of five columns of numbers in free format. These columns are AB/2. MN. received voltage. transmitted current. and chargeability. This is defined as the NJGS Standard Resistivity/IP Data Format because of its common use in various modeling and data-reduction programs at the New Jersey Geological Survey. If IP data are not collected, a "1" is placed in the chargeability column. If data were collected by the ABEM Terrameter. voltages are calculated based on the current readings and resistance readings.

TRANSIENT ELECTROMAGNETIC APPARENT RESISTIVITY CALCULATION

TEM data are almost always reduced from dB/dt values (generated by the BASIC program T47INPUT above) to apparent resistivity. Two common reasons for this are: 1) it facilitates inspection of data quality and qualitative analysis. and 2) it enables one to make an initial guess for modeling.

An analysis of apparent resistivity algorjthms for TEM central loop soundings was previously made by Sandberg (1988). Modification to the computer program RAMPRES (Sandberg. 1988) for the time channels of the EM-47 and EM-57 transmitters as well as the EM-37 transmitter has been completed and is included here as RAMPRES2. This algorithm accounts for the finite transmitter­turnoff ramp of the Geonics transmitters.

The algorithm solves the equation

1 Z(o.t) - ·~-ii·+··:rT2· ~ ( 2 )

•• 11

8

Page 16: New Jersey Geological Survey Open-File Report OFR 90-1

for the apparent resistivity,~ (= 1/0) where

t "C

, ( 3 ) opa 2

and

t + 0 "C ... H •• ___ ....... , .....

01la 2 (4 )

In these expressions, Z is the mutual impedance (voltage in the receiver coil divided by the current in the transmitter loop), 0

is the half-space conductivity, t is the measurement time, 0 is the ramp time, II is the magnetic permeability, a is the equivalent circular transmitter-loop radius, AR is the area of the receiver coil, and AT is the area of the transmitter loop.

The apparent resistivity derived from inverting equation (2) is referred to as the ramp-derived apparent resistivity. Problems associated with the two-valued response and the unreliability of this apparent resistivity definition are discussed in Sandberg (1987). Many workers use the step-function asymptotic "early" and "late" time apparent resistivities defined as follows. The asymptotic "early" time apparent resistivity is

j>~arlY ( 5 )

and the asymptotic "late" time apparent resistivity is,

4/3A2/3 5/3 a R p

·_-'-'·-2·'7"3 .... ·_ .. 1"'7"3 ...... ·'57'3· ...... ·2 .. 7"3' 20 rr t Z

( 6 )

Owing to problems associated with the ramp-derived apparent resistivity, the objective function used in the inversion program EINVRT4 is the asymptotic "late" time apparent resistivity as defined in equation (6).

9

Page 17: New Jersey Geological Survey Open-File Report OFR 90-1

FORTRAN prograa RAMPRES2

The program RAMPRES2 operates much the same as its predecessor, RAMPRES (Sandberg, 1988). One added feature is the ability to add (or subtract) a fixed amount of time to each of the time gates. This is needed if the receiver was set incorrectly for the ramp-turnoff time of the transmitter (which can easily be done).

Input

The program RAMPRES2 requires one or more input files in the NJGS Standard TEM Data Format (generated by T47INPUT or equivalent). An example input file is shown in example 1b (Appendix I). The screen-output file in example 3a (Appendix I) also shows an input session.

Output

All input files are combined into one output-plot file. Note that entering a filename identical to that of a pre-existing file causes an error exit of the program to protect previously created output files. A provision is made for including results from the asymptotic "early" time or "late" time approximations from the above equations (5) and (6) respectively, in the output for comparison. Also, the program is designed to remain on either the "late" time branch or the "early" time branch of the ramp­derived function in looking for solutions (see Sandberg, 1988).

Screen output consists of the following columns: channel number, sample time, "late" time step-function asymptotic apparent resistivity, ramp-derived apparent resistivity, number of iterations of the secant method (which is used to solve equation (2) for the apparent resistivity), the branch of the mutual impedance curve to which the apparent resistivity corresponds, and the slope of the mutual impedance curve at the solution point in log-log space. During computation of the series in equation (2), if 70 terms are calculated without convergence, the statement "divergent sum" appears on the screen and no ramp­derived apparent resistivity is written to the plot file. If "no soln" and "not applicable" appear in the columns for resistivity and branch, either no solution for apparent resistivity exists for that data point, or a numerical instability of the method prevented solution. To obtain a hard copy of this information, a screen dump can be made using the "PrtSc" key of the computer. An example screen output for the input file of example 1b is shown in example 3a (Appendix I).

In addition to the screen output, an output file in the NJGS Standard Plot Format (Sandberg, 1988) is generated. This format

10

Page 18: New Jersey Geological Survey Open-File Report OFR 90-1

consists of three columns of numbers in free format: column 1 is the x-coordinate (or time in seconds for RAMPRES2), column 2 is the y-coordinate (or apparent resistivity in ohm-meters for RAMPRES2), and column 3 is the plotting-symbol number. The plotting-symbol number corresponds to a symbol used by the plotting program and usually ranges from 1 to 6 (see for example PLOT in Sandberg, 1988). Only one output-plot file is generated for each program run, no matter how many input files are processed. Examples 3b and 3c are the output-plot file and resulting plot using PLOT (Sandberg, 1988) corresponding to the input file of example lb.

1 1

Page 19: New Jersey Geological Survey Open-File Report OFR 90-1

FORWARD MODEL ALGORITHMS

This section provides details of the forward calculation for each of the methods: transient electromagnetics, resistivity, and induced polarization. Each of these forward solutions is numerical rather than analytical.

Transient electroaagnetics

The TEM central loop induction configuration is shown diagrammatically in figure 1. The expression for the TEM mutual impedance in this configuration for a layered earth is given by Raiche (1984) as

the symbols following: and J 1 is a

Z(o,t)

are as defined previously with the addition of the I is the argument of the inverse Hankel transform, Bessel function of order 1. The function G is

( 7 )

( 8 )

with ~ and ~' as defined previously. For the layered earth case,

-1 -L q

rAo (q ) .. ~ ~ ............... _ ....... _ .. ~

n q J ( 9 )

where Lg - 1 is the inverse Laplace transform operator with respect to q, tne transform pair is (q,~2~), AO is the layered earth impedance function, and the expression for q is

-iwolla 2

q ( 10)

where w is the angular frequency, and i is~. The layered earth impedance function, AO ' is derived following Raiche (1984) as follows. Define the exponential factor

12

Page 20: New Jersey Geological Survey Open-File Report OFR 90-1

~recelver cOIlT

transmitter wire

conductive layer

Figure 1. Transient electromagnetic sounding field layout showing the central-loop-sounding configuration using a large square transmitting loop.

13

Page 21: New Jersey Geological Survey Open-File Report OFR 90-1

-2S.h. E. = e J J ,

J ( 11)

where h j is the thickness of layer j and

(12 )

where o. is the conductivity of layer j. Next define a reflectlon coefficient, R j , at the boundary of layers j and j+l as

To obtain AO' start at the bottom layer and work to the top. For N layers above a half-space define

FN+l = 0 (14)

( 15)

( 16)

for all j except j ·0 or j = N. Then

RO + Fl ( 17 )

The inverse Laplace transform is calculated numerically using the Gaver - Stehfest method as described by Knight and Raiche (1982). The two formulas used in this algorithm are

and

J f(t) ::: [In(2)lt]L:d(j,J)·F[j·ln(2)lt]

j=1

14

( 18 )

Page 22: New Jersey Geological Survey Open-File Report OFR 90-1

d(j,J) min(j,M)

(_l)j+M L k=m (M-k) !k! (k-l)! (j-k)! (2k-j)!

( 19 )

where F is the Laplace transform of the function f(t) defined for non-negative t, J is an even integer whose optimal value depends upon the computer word length, M = J/2, and m is the integer part of (j+l)/2. The optimal value of J for the IBM-AT computer used in this development based upon testing known inverse Laplace transforms is 16.

The inverse Hankel transform in equation (5) is evaluated using the adaptive filter in function subroutine ZHANKS of Anderson (1979) in which the tolerance is initially set at 0.01 for a high rate of calculation. If the convolution diverges, the tolerance automatically decreases in succession by factors of 10 until convergence is achieved.

It has been shown by Asten (1987) that by not taking into account the entire transmitter waveform, the amplitude of the computed transient may be in error by 4 to more than 100 percent, depending upon the sample time and type of earth model. The greatest errors occur at sample times near the end of the transmitter off-time and for models with a conductive basement. The correction to account for the entire waveform has not been incorporated in this computer program. Because of this, computed results may be incorrect at late time windows if a conductive basement is modeled. In fact, any conductive section with large transmitting loops will be affected (Brian R. Spies, ARCO Oil and Gas Company, written communication, Jan. 17, 1990).

Resistivity

The Schlumberger resistivity array geometry is shown diagramatically in figure 2. In a strict sense, the Schlumberger array is specific in that the AB, or current electrode separation distance is much greater than the MN, or potential electrode separation distance. In this paper, a less restrictive definition is adopted in which the array is a colinear array in which the outer two electrodes are the current sources and the inner two electrodes are the potential measuring points. This definition allows the Wenner array to be a special case. The forward solution used here assumes no restriction on the AB distance versus the MN distance. Therefore, the apparent resistivity for this Schlumberger array is defined as

15

Page 23: New Jersey Geological Survey Open-File Report OFR 90-1

interface

land s .. face CllTtlllf

tI/tlC/rDt/tI

resistivity= ~

Figure 2. Schlumberger resistivity-array geometry showing lines of current flow in a two-layered eartl with higher conductivity in deeper level. 1

1

16

Page 24: New Jersey Geological Survey Open-File Report OFR 90-1

jJa rr . MN . V i\ li AB/2 2

• N •

I ~ n MN t··,

"n

1 n

" 4 Ii

.. ~

( 2 0)

where V is the voltage across the potential electrodes (MN). and lis the cur r e n t a c r 0 sst he cur r e n tel e c t rod e s ( AB ) . Not e t hat if the Wenner array is being considered. the Wenner a-spacing MN = AB/3. and equation (20) reduces to the familiar result

rr·V ~a(wenner) ................... a-spacing

I ( 21 )

From Sandberg (1979. p. 23) the potential over an N-layered earth at a distance r from a point current source is

where

and

VCr)

R(A)

k(M-l)M·· ·N

= ~~ .. = .. ! ......... = ... ~.~.~ .. ~ ... ~ ... ~ .. :. .. !.J ..... : ..... : ..... : ... ~. UCM-1)M·· ·N toM - 1 + .PMk M ( M + 1 ) . . . N

k(N-1)N

-2).d N_ 1 .. ~ ........ = ........ ~ .. L~ .. =} .. .t~ .. ~ .................................... ..

-2Ad N_ 1 1 + U(N-l )N e

17

( 22)

( 23)

( 24 )

(25 )

( 26)

( 27)

Page 25: New Jersey Geological Survey Open-File Report OFR 90-1

U(N-l)N (28 )

A similar development for 2 and 3-layer earth models is given in Wait (1982, p. 3 and 11, respectively). Following the development in Sandberg (1979, p. 15-16), substitute). = e- Y and r = eX in equation (22). The potential is then

-I VCr)

2ltr r~R(y)eX-YJo(eX-Y)dY J-~

which is in the form of a convolution integral

VCr) = J::(y)g(X-Y)dY

(29 )

(30 )

where R(y) can be considered as an input function f(y), and eXJo(e X ) as the impulse response of a stationary filter. If R(y) is evaluated at N discrete points, we can approximate VCr) by a finite sum

v (r) ~

N

L: c].R(ln[r] - "1 J.) 2ltr j=1

I (31 )

where ~j are the abscissas of the stationary filter coefficients Cj. The algorithm used in the EINVRT4.FOR program uses a 61-point filter to evaluate V(r). The forward routine and filter were originally from an unpublished computer program written by Luiz Rijo which was later documented by Sandberg (1979). Rijo and others (1977) found that the 61-point filter provided adequate accuracy as long as the maximum resistivity contrast did not exceed 200:1. This is an important restriction on interpretation using this software.

Induced Polarization

Induced polarization (IP) data are collected in the Schlumberger array in the time domain. As successfully employed by Seara and Granda (1987), the apparent chargeability, -a' as given by Roy and Poddar (1981) is

18

Page 26: New Jersey Geological Survey Open-File Report OFR 90-1

I'a (,.oi + a i.Pi ) - f'a (JOi ) ._ ............................................................ _ ...................... -......................................... . A ('pi)

(32 )

In this expression, aa is the apparent chargeability due to altering the layer resistivities, ;Oi' by the layer chargeabilities, ai' and then computing the difference with unaltered apparent resistivity, and finally normalizing, generating a percentage change. The IP equipment for which this software was designed is the Huntec M4 time-domain system. Instrument readings from this system consist of the sum of 10 time wjndows of equal width following a specified delay. Experience gained from obtaining IP data while mapping hydrogeologic units for groundwater studies in New Jersey has shown that this reading (in milliseconds) has been found to range from about 1 to 25 when the gate widths and delay were both set to 100 ms. The chargeability a in equation (32) is not the same as the instrument reading from the Huntec receiver. To use Huntec instrument readings, a scale factor, chnora, is introduced into equation (32) which becomes

(33) chnora 'fJa YOi )

In the program EINVRT4, subroutine SWITCH, chnora is set to 0.01 which works well in ground-water applications. In addjtion, the inversion program operates in linear space for IP data compared to log space for the. resistivity and TEM data, so a second scale factor is applied to the above apparent chargeability,'aa + 6, so that the range of values is closer to the range of logarithmic apparent resistivities. The range of data values must be comparable to other types of data in simultaneous inversion so that one data set will not be emphasized over another.

19

Page 27: New Jersey Geological Survey Open-File Report OFR 90-1

INVERSE MODELING

Inverse modeling, or inversion, is the process by which adjustments to an earth model are made to improve the field versus model-computed data fit. The term normally refers to semi-automated methods where mathematical analysis (based on least squares or other criteria) rather than trial-and-error creates the parameter adjustments. Most electrical geophysical inverse models are nonlinear (meaning that the forward model is a nonlinear function of the parameters) so that the minimization is accomplished in steps, or iterations. each of which is a linearization of the problem over a small interval.

In this section. the inverse modeling process is examined by application of the EINVRT4 computer program. First. the inversion theory used in the modeling algorithm is presented. Next, the EINVRT4 computer program is presented in a user's guide type format. Finally. the process of inverse modeling using EINVRT4 is presented. including methods of speeding up the inversion, and methods of ascertaining when a model is good enough.

Theory

The Jupp-Vozoff algorithm

The inversion algorithm used in this report is that described by Jupp and Vozoff (1975). In particular. the application by Raiche and others (1985) which is restated and elaborated upon in Hohmann and Raiche (1988). employs simultaneous inverse modeling of Schlumberger resistivity and coincident loop TEM soundings. Although the software presented in this report addresses resistivity, IP. and central loop TEM soundings, the same algorithm used by Raiche and others (1985) forms the framework for the inversion as used in the EINVRT4 computer program here. The following is a brief treatment of the method.

Let d be a vector of field-data values containing M observations. These are Schlumberger apparent resistivity values at particular current and potential electrode separations. IP chargeability measurements which are also obtained at these particular electrode separations. and/or TEM late time asymptotic apparent resistivities corresponding to particular sample times after transmitter-current shutoff.

Let x be a vector of layered-earth parameters containing N values corresponding to layer resistivities. chargeabilities. and thicknesses.

A forward problem generates model data at the same electrode separations and/or sample times after transmitter current shutoff

20

Page 28: New Jersey Geological Survey Open-File Report OFR 90-1

as the field observations, as a function of the vector of parameters, x. Let g(x) be that vector of model data, again containing M values. Therefore, gi is the model-predicted data point corresponding to the field data value d i .

The inverse problem is to determine values of x which are used to calculate the values of g so that they "match" the field observations d. This "match" corresponds to minimizing the Root Mean Squared (RMS) relative error between model-derived data and field data,

RMS

lr'

n 1 M n L N M .. i = 1 ft ..

(34)

Now it is possible to expand g(x) about x in a Taylor expansion ignoring higher-order terms. Ignoring the higher-order terms amounts to assuming that the problem is linear. Then,

[g(x+6x)]i + ••. (35)

or

g(x+6x) g(x) + ~6x (36)

where

(37 )

In this development, J is the Jacobian matrix relating changes in the model data to changes in the parameters.

In solving the inverse problem an iterative scheme is used. It is assumed that the nonlinear problem is linear, and a correction to the current version of parameters is calculated. The parameters are modified and new model data are calculated and compared to the field data. This constitutes an iteration. Using the same notation and assuming that the problem is linear,

21

Page 29: New Jersey Geological Survey Open-File Report OFR 90-1

d g(x) + ~ox

or

d - g(x)

The parameter correction step is then

ox ~+[d - g(x)]

where J+ is a pseudoinverse of the Jacobian matrix J, and the updated parameter vector is given by

x old + ox .

(38 )

(39)

(40 )

( 41)

Often in inversion algorithms iterations proceed until either 1) the error in equation (34) decreases below some predetermined value, 2) the new iteration does not decrease the error, or 3) the preset number of iterations is exceeded. In the EINVRT4 computer program, the program continues to iterate until the specified number of iterations in the input file has been satisfied, or the algorithm diverges (see section on input file under EINVRT4).

What now remains is to determine the pseudoinverse J+ in equation (40). The matrix J is not a square matrix since it has dimensions M x N. The singular value decomposition (SVD) of J is calculated as

( 42)

where U is an M x N matrix, S is an N x N diagonal matrix, and V is an N x N matrix. The matrices U and V are such that

and (43)

where 1M and IN are identity matrices of rank M and N, respectively. For convenience, the diagonal S matrix is defined to have elements

22

Page 30: New Jersey Geological Survey Open-File Report OFR 90-1

and

s· J

The Aj values are eigenvalues of the matrix JT J . Therefore equatlon (39) becomes

At this point. define the eigenparameter vector

q

Then

( 44 )

(47)

( 48)

is the eigenparameter correction vector. Equation (46) is premultiplied on both sides by A1-~UT(d - g). and the transformed residual vector r is defined as

(49)

Then,

r = S6q ""

(50 )

or

( 51 )

The eigenparameters and the V matrix are used in the resolution analysis described in the next section.

In general. the Jacobian matrix. J is ill-conditioned. A damping factor, ti is incorporated into equation (51). so that

23

Page 31: New Jersey Geological Survey Open-File Report OFR 90-1

with 2k

si · .... ··2·k .. · .. ····················2·k s i + P

(52 )

(53)

The number. p is called the relative singular value threshold. and k is the order of damping. In the computer program EINVRT4. a value k = 2 is used. The number. p is varied for each iteration such that as the model fit improves. p decreases. A smaller p results in the incorporation of smaller eigenvalues into the process. This scheme of varying p results in a more stable sequence of iterations. For TEM inversion in the program EINVRT4. the range of permissible values is 0.01 ~ P ~ 0.10. The value of p increases or decreases (doubles or halves) depending upon the previous iteration's value (or the ~alue specified in the input file). and upon whether the iteration decreases the squared error.

The concepts of important. unimportant. and irrelevant parameters must be discussed in this context. If a small change in the value of the parameter Xj results in a significant change in at least some of the model data g. then Xj is an important parameter. If a relatively large change in Xj results in only a minimal change in g. then Xj is termed an unimportant parameter. If a large change in Xj produces no effect in g. then Xj is an irrelevant parameter.

Therefore. if one of the x. were irrelevant. then the jth column of the Jacobian. J in equaiion (37) would be zero. which in turn would produce a zero eigenvalue. If one of the x. were unimportant. at least one of the eigenvalues woula be very small. The modification of equation (51) to equation (52) serves to eliminate irrelevant parameters. and damps the oscillations produced by unimportant parameters in the iterative solution.

Parameter Resolution Statistics

It is possible to analyze the confidence of a particular model arrived at by inversion. Following Hohmann and Raiche (1988). one can determine the estimated standard error

"'.

~ 1 o = ~ M······:·····N ( 54 )

t

and the noise-to-signal ratio.

24

Page 32: New Jersey Geological Survey Open-File Report OFR 90-1

o NSR (55)

In these expressions D~ and Gn are scaled field data and model data values correspondIng to unscaled values d n and gn. Scaling in the program EINVRT4 consists of the following: resistivity and TEM apparent resistivity data values are dealt with in log space, whereas IP data is kept in linear space using a scaling factor of 1/6 for the chargeability values. A standard error of a few percent usually implies a good fit, whereas one greater than 20 percent implies problems with the inversion. Standard error in equation (54) is referred to as the rcsq parameter in the computer program EINVRT4 following the notation of Rijo and others (1977).

NSR is a measure of how well variations in the observed data are taken up by variations in the model data. A good inversion has an NSR of less than 2 percent. One greater than 10 percent would indicate an inappropriate model.

Confidence intervals for the layered calculated in the following manner. ~n are defined (Hohmann and Raiche,

.... ":I liz

I3 n = ittk(Vnk/Sk)2~ tk=l ...

earth parameters are The Cramer-Rao multipliers

1988, after Bard, 1974)

(56)

Inasmuch as the logarithms to the base 10 of the parameters are used in the program EINVRT4, the parameter confidence intervals are given by

+ P~

·10(±1. 96 I3n o ) Pn

+ where P-n are the upper and lower bounds of a 95-percent confidence interval for the parameter Pn.

( 57)

The V matrix is very useful in examining parameter resolution. From equation (47), V .. is a measure of the relative contribution of physi~~i parameter Xi to qj. Each column of V corresponding to an eigenparameter qj' is a linear combination of physical parameters Xi. Any combination of Xi corresponding to a qj with a damping factor (equation [53]) tj = 1 will be well resolved, and combinations with tj « 1 will be poorly resolved.

25

Page 33: New Jersey Geological Survey Open-File Report OFR 90-1

Examples illustrating resolution for the coincident loop TEM -Schlumberger resistivity sounding case are discussed by Raiche and others (1985).

Portran Prograa EINVRT4

This program was designed to individually or simultaneously invert resistivity, resistivity/IP, and TEM data for a horizontally stratified, or one-dimensional earth model. A flow chart of the subroutine names is shown in figure 3.

Modes of Operation

The program is designed to operate, depending upon choice of option, in any of the following six modes:

1. TEM central loop induction configuration only 2. Schlumberger array resistivity only 3. Simultaneous Schlumberger resistivity and TEM 4. Simultaneous dipole-dipole resistivity and TEM 5. Simultaneous Schlumberger resistivity and IP 6. Simultaneous Schlumberger resistivity, IP, and TEM

Each of these modes has a characteristic graphics screen associated with the type of data to be depicted.

In addition, owing to the way that the resistivity forward solution is calculated, Wenner array resistivity (alone and with IP) data can be interpreted if the input data file is set up in the following way. The Wenner array data are put into the NJGS Standard Resistivity/IP Data File Format as described previously under field data reduction and storage. But, for the Wenner array, instead of an AB/2 distance use 1.S·a, where a is the characteristic spacing for the distance between electrodes in the Wenner array. And, for the MN distance, use the a-spacing.

Graphics screens for modes 2, 5, and 6, are included in this report as examples 4b, 5, and 6 in the appendix.

Input File

Entry to the EINVRT4 program for the first time with a particular data set will mean that an input file is unavailable. This input file must be created prior to performing the inversion. Specifying that an input file is lacking causes prompts to be given through which an input file is created. This input file makes subsequent inversions easier in that program prompting is minimized, and changing program-control parameters and data can be accomplished by using a text editor, such as the IBM Professional Editor, Words tar (in the non-document mode), or other standard ASCII text editor.

26

Page 34: New Jersey Geological Survey Open-File Report OFR 90-1

Figure 3. EINVRT4 subroutine and function flowchart.

27

Page 35: New Jersey Geological Survey Open-File Report OFR 90-1

A sample of an input file is given in the appendix as example 4a. The input files corresponding to differing modes of operation are fairly similar, although the one in example 4a is for mode 2, corresponding to a simple inversion of Schlumberger resistivity data. This input file includes most of the features corresponding to the six modes of operation. A description of the input data lines is given next, along with the data format.

Line 1 output filename, and output plot filename format(2a15)

Line 2 n,ic,icode,mr,mc,mt,ifwd,metric,igrf,ioul format(lOi5)

n = total number of layered earth parameters (# resistivities + # chargeabilities + # thicknesses). The program will handle 15 layers, but the graphics screen will only accomodate 12. If more than 12 layers are needed, do not use screen graphics.

ic code for using thicknesses or depths 1 for thicknesses

= 2 for depths

icode = code for determining which problem is being solved (which mode of operation) l=TEM only 2=Schlumberger resistivity only 3=both TEM and Schlumberger resistivity 4=TEM and dipole-dipole resistivity 5=Schlumberger resistivity and IP 6=TEM, Schlumberger resistivity, and IP

mr number of resistivity data points

mc number of chargeability data points

mt number of TEM data points

ifwd maximum number of iterations to be performed o for forward calculation only

< 0 no iterations and also skip the forward calculation (used when a theoretical data set is being generated)

metric 1 means thicknesses or depths will be in meters in the input file and the screen display o means thicknesses or depths will be in feet in the input file and the screen

28

Page 36: New Jersey Geological Survey Open-File Report OFR 90-1

display.

igrf 1 uses screen graphics (requires graphics driver) o echos selected portion of output file on screen (no graphics).

(default=l)

iout = 1-7 creates output data file (in NJGS Standard TEM Data File Format) from final model with corresponding time gates and name "einvrt4x.dat" = 0 does not create output data file (default=O)

Line 3 al,deriv,ammu,khow format(fl0.l,fl0.4,fl0.3,il0)

al = square TEM loop side dimension in meters

deriv = size of derivative increment in first forward difference approximation for calculating Jacobian matrix (default=O.004)

ammu = starting value of p in equation (53) (default=O.l)

khow 1 use RCSQ to monitor iterations 2 use 11 to monitor iterations 3 iterate anyway no matter what and hold ammu

constant = 4 if new RCSQ > old RCSQ then quit (default=l)

Line 4 one,two,three,four,five,six format(6fl0.0)

Plot symbol numbers for the output plot file

one Chargeability field data points (default=2)

two Chargeability calculated values (default=3)

three = Schlumberger resistivity field-data points (default=l)

four TEM field-data points (default=4)

five Schlumberger resistivity calculated values (default=5)

29

Page 37: New Jersey Geological Survey Open-File Report OFR 90-1

six TEM calculated values (default=6)

Line 5 pO(i) layer resistivities format(8f10.2)

Line 6 pO(i) layer chargeabilities (this line is omitted when IP is not being used [options 1-4]) format(8f10.2)

Line 7 pO(i) layer thicknesses format(8f10.2)

Line 8 ipf(i), i=1,n code for fixing of parameters format(40i2)

ipf(i) = 1 hold parameter at its current value throughout inversion

ipf(i) = 0 allow parameter to vary

Next, several data lines corresponding to reduced data values follow. For resistivity/IP data lines:

ab2(i) ,amn(i) ,ai(i) ,v(1) ,rhoa(i) ,ch(i) format(2f10.2,2flO.4,f10.1,f10.2)

ab2(i) = Schlumberger array AB/2 distance (m), or dipole-dipole n-value

amn(i) = Schlumberger array MN distance (m), or dipole-dipole a-spacing (m)

ai(i) = transmitter current reading (amperes)

veil = receiver voltage (volts)

rhoa(i) = calculated apparent resistivity (using equation (20) for Schlumberger array] (ohm-m)

ch(i) = measured apparent chargeability (ms), or 1 if no IP

For TEM data lines:

tt(i) ,temv(i) ,abaCi) ,ramp(i) format(f15.4,e15.6,f5.0,e15.3)

tt(i) = TEM sample time (ms)

temv(i) = TEM voltage in receiver coil divided by

30

Page 38: New Jersey Geological Survey Open-File Report OFR 90-1

current at transmitter divided by coil effective area (pV/amp'm2)

abaCi) = key for particular transmitter base frequency and receiver coil effective area (see program T47INPUT.BAS)

ramp(i) = TEM current shutoff ramp duration (ps)

Output file of results

Example 4c in the appendix shows an output file derived from the input file shown in example 4a. A sequential explanation of this file is included in this section. This output file is designed so that if there is no graphics capability and this output is sent to the CRT screen, it is still possible to monitor the progress of the inversion.

The program title, date, beginning time, and input filename are output first. The initial guess results are then presented as a list of field data, theoretical data, and the percentage difference between the two for each data point. TEM data are presented as apparent resistivity using the asymptotic late time formula from equation (6). Following this, the standard error from equation (54) is calculated and displayed as rcsq, and the 11 norm is given. The 11 norm is the normalized sum of absolute value residuals, given by

1 M I 1 = L ' D - Gn

!!

M ~ n ~ n=1

(58)

using notation from the theory section under the INVERSE MODELING heading. In addition, the time to calculate the complete forward problem is given (in hours).

Next, the rows of the Jacobian matrix in equation (37) are presented. Each row, consists of the following: the first 3 characters are RES, CHG, or TEM depending upon which data type the row represents, the next number is the iteration number, the next fraction is the current row number over the total number of rows for that particular data type (RES, CHG, or TEM), and the next number is the amount of time used to calculate that row (for RES and CHG this is in seconds, for TEM this is in hours). For a RES or CHG row, the next numbers are the Jacobian matrix values.

Following the Jacobian, the iteration number, current value of p (ammu) in equation (53), and a list of eigenvalues for the Jacobian matrix are given. Parameter increments (in 10giO space) are given, and the old-versus-new parameters are presented.

31

Page 39: New Jersey Geological Survey Open-File Report OFR 90-1

Then, results of a forward calculation using the new parameters are shown as field-versus-theoretical data with the percentage difference.

If the new rcsq is lower than the previous one, a new Jacobian matrix is calculated. Otherwise, ammu is doubled and new parameters are again determined, followed by a forward calculation. This is repeated until either a new Jacobian matrix is calculated, the program satisfies the specified number of iterations and moves on to statistics, or ammu gets too large, resulting in a message that divergence has occurred.

A section on statistics is output next. The NSR from equation (55) is output followed by parameter confidence intervals calculated from equation (57). The V-matrix defined in equation (42) is output next, followed by the corresponding damping factors from equation (53).

Next, the final field-versus-model data are presented with the percentage difference, and relevant dependent paramet~rs. Final layer parameters are listed next. The thickness (or depth-to­bottom) parameters have two columns: the first column is in meters, and the second, in feet.

Finally, the rcsq and 11 values from the final parameters are listed, followed by the number of iterations completed, and the time of completion.

Output plot file

A plot file of field-versus-model data is generated by.EINVRT4 to display data fit. Field and model-derived TEM data are asymptotic late time apparent resistivity calculated using equation (6). If inversion of TEM data alone were performed, sample times would be in ms. If both resistivity and TEM data were being inverted, TEM sample times in the plot file would be scaled by a factor of 10 and the units would be in ms. If IP data were being inverted, the output plot file would contain field and theoretical chargeability data in the following form

(59)

where -a is the apparent chargeability (in ms).

This is done so that the entire plot file can be graphed on a log-log plot in which the IP data are linear, with a scale of 5 msec per decade. This scale has been found to be useful for IP data collected for ground-water studies in New Jersey.

32

Page 40: New Jersey Geological Survey Open-File Report OFR 90-1

Example 4d shows a graph of the output plot file from example 4 using the program PLOT (Sandberg, 1988).

Graphics screens

Examples 4b, 5, and 6 show three of the graphics screens generated by the EINVRT4 program using the graphics capability. Other graphics screens are possible depending upon the choice of operation mode, parameterization (depths or thicknesses), and units (feet or meters), but the three examples shown here display most of the basic features.

On a color monitor, the calculated model response lines are in color to distinguish them from each other. The resistivity calculated line is drawn in white, the TEM calculated line is in green, and the IP calculated line is in red.

Data plotting area

Field and calculated data are plotted in the data plotting area. The range of field data is used to adjust the plot axes so that the data sets are centered in the plotting area. There are no checks on the data span, so that data can conceivably plot anywhere on the graphics screen if the span is great enough. Resistivity and TEM apparent resistivity, electrode AB/2 distance, and TEM sample time are all plotted logarithmically in ohm-m, m, and ms respectively. IP apparent chargeability data are plotted on a linear scale in ms. One or two of these axes are omitted when run modes are selected which do not use these data types.

As model data are calculated, the results are plotted as straight-line segments in the color scheme explained above.

Bottom of screen

One line from the bottom on the left side is the name of the input data file. Along the bottom line to the left is the status line. The status line displays what operation is currently being performed in the program. The term "calc. forward" means that the forward solution given the current model is being calculated. The fraction directly after that displays the number of data values calculated over the total number.

The term "sys matrix" in the status line (see examples 4b, 5, or 6) means that the Jacobian matrix is being computed. The fraction directly following is the number of rows of the matrix which are completed over the total number.

On the bottom line, in the center and to the right. is one of two messages. One message displayed is "forward elapsed time" and a

33

Page 41: New Jersey Geological Survey Open-File Report OFR 90-1

clock is shown displaying the number of seconds. minutes. and hours that have elapsed while the forward routine calculates the initial guess response. The other message is "estim. completion and a countdown clock is shown displaying an estimate of how mue. time remains to complete the current task shown in the status line.

At the bottom right. is the current value of mu (which is ammu. or ~) in equation (53). This value is updated depending on whether the inversion is converging or not.

Parameter area

Below the data plot key box, the iteration number is shown as a fraction over the total number of iterations to be performed. This is updated after new parameters have been obtained from a new system matrix.

Below the iteration number, the rcsq and 11 values from the forward calculation for the current parameters are shown. These are updated after completion of a complete forward calculation.

Below the rcsq and 11 values. the current parameters are listed. Layer resistivities in ohm-m are under the heading rho, and layel chargeabilities in msec are under the heading chg. Layer thicknesses are either in m or ft under the headings thk(m) or thk(ft). If depth-to-bottom parameters are used, these are either dpth(m) or dpth(ft). An asterisk (*) appears to the left of a parameter being inverted. If no asterisk appears, then tha parameter is fixed in the inversion.

The philosophy and practice of inverse aodeling

Inverse modeling, like many other endeavors, requires a certain amount of experience. The software in this report is designed for a better understanding of this process.

Simultaneous inverse modeling is an art. A knowledge of several geophysical method responses is required; moreover fitting only one geologic model to more than one of these responses is tricky business. Because there are usually several local squared-error minima in geoelectrical inverse problems. it is important to obtain an initial guess of parameters which provides a close fit to the field data. Therefore, repeated forward modeling and geologic input are crucial to making good interpretations.

Much in modeling depends upon the complexity of the model. For only 3 to 4 layers and one geophysical technique, such as Schlumberger resistivity, initial guesses can be quite poor and the algorithm will find a reasonable solution. In this case the important factor is the number of layers in the model. If an

34

Page 42: New Jersey Geological Survey Open-File Report OFR 90-1

linsufficient number of layers ~ill not provide a close fit. ~OOd "feel" for the situation. , ~

is specified, the model commonly Trial and error often provides a

~hen using depth rather than thickness as a parameter, the ~lgorithm approximation is only correct for small changes. The ~ode prevents an interface moving past another one, but the

f· ...... ensitivity of the depth is often incorrect when the initial uess is not good.

~

35

Page 43: New Jersey Geological Survey Open-File Report OFR 90-1

Suggested interpretation process

The interpretation process described in this section is designed to minimize the amount of time required to interpret field data. The programs are sufficient to process resistivity, IP, and TEM sounding data in an organized manner. The data input routines are simple and can serve as a guide for customization since source code is included.

First, field data must be put into NJGS Standard Data Files. This procedure amounts to running the T47INPUT or READ, and SLUMBER programs for TEM and resistivity (or resistivity/IP) data, respectively. Next, the output plot file of reduced field data generated by SLUMBER should be plotted so that initial guesses for the resistivity and IP layer parameters can be made. For TEM data, the program RAMPRES2 should be run in order to generate reduced data and plots. Plotting can be done using the program PLOT (Sandberg, 1988), a plotting program which is able to read this file (such as LOTUS or Harvard Graphics), or by hand on log­log graph paper.

Initial guess layer parameters can be obtained by curve-matching, forward modeling, geologic information, or by experienced guessing. However these are obtained, they are needed to execute the EINVRT4 program.

The next step is running EINVRT4 in two stages. Through the prompting process (stage 1), an input file is created. When this is complete, the question "go on? (yes=l, no=O)" is output to the screen. Respond "no" and edit the input file with a text editor program (such as the IBM Professional Editor, Wordstar, or other ASCII-type text editor). Errors in parameter initial guesses and the number of iterations can be corrected at this point. Noisy data which will prevent the algorithm from finding a good fit can be deleted from the input file at this stage. Do not forget to change mr, me, and mt on line 2 after deleting data. Note that decreasing mc (number of IP values) without deleting entire data lines is acceptable. Usable resistivity data from large electrode spacings, corresponding to low voltage levels at the receiver, could easily coincide with very noisy, and hence unusable IP data. The program has no provision to weight data points; either a data point is good, or it is not.

If an initial guess is close to fitting the field data, the value of ammu (line 3, third from the left [see above) should be set equal to 0.01 so that less important parameters are considered (see section on the Jupp-Vozoff algorithm). Save this modified input file.

Stage 2 is to re-execute the EINVRT4 program. The prompts are minimized now that an input file exists. By observing the

36

Page 44: New Jersey Geological Survey Open-File Report OFR 90-1

inversion screen graphics (or by carefully watching output on the screen when screen graphics is not available). one can determine how well the model is fitting the data. Adjustments can be made to the input file for subsequent runs of the program. Several runs are usually made in interpreting field data.

Tips on how to speed up the modeling process

Because the TEM forward algorithm used in EINVRT4 is fairly slow. and the IP forward algorithm is slower than the resistivity forward algorithm. when doing simultaneous modeling it is advisable to interpret the resistivity data first. Next. interpret both the resistivity and IP data together. and finally. interpret all the data (resistivity/IP/TEM) together. This procedure will speed up the modeling process.

Specifying either ifwd=O (for forward modeling) to tighten up initial guess parameters. or ifwd=3 (a small number) iterations is recommended to test whether the program can find a solution. Once things are going well. edit the input file and replace the old initial guess parameters with new ones found by previous program runs. or by other geologic ideas.

Often. fixing parameters dictated by geologic information can be very useful because run times are directly related ~o how many parameters are free to vary. Fixing parameters amounts to reparameterization. which can also aid in improving the resolution of remaining free parameters.

In addition. one might use only every other time channel in the TEM data for initial runs. This simple procedure can cut the run time in half.

One unorthodox but useful method of obtaining a good starting model (and thereby reducing the time needed to interpret the data set) is to run the inversion program only long enough to see how good the input guess is. after which typing Ctrl-C aborts the program. Then. the input file is edited. parameters are changed. and the inversion program is executed again with the altered input file. The danger here is that the computer is left in the graphics mode. and the curser and DOS prompts may not appear on the screen. One way out of this is to set igrf=O (Line 2. second from the right). However. without screen graphics it is hard to tell how well the model is fitting. Another way out is to execute one of several utility programs which alter the screen display and thereby get rid of the graphics mode (such as those which change the EGA screen from 43 lines to 25 lines). If it is necessary to re-boot the computer in order to get out of graphics mode. then the Ctrl-C option is probably an unsatisfactory idea.

Changing hardware is one way to speed up the execution of the

37

Page 45: New Jersey Geological Survey Open-File Report OFR 90-1

program. For example. at the NJGS this software is used on an AST Premium/3B6 computer running at 20 MHz. This configuration decreases execution time by a factor of about 6, compared to an IBM-AT running at 6 MHz. It should be noted that the program has been compiled using the math co-processor. Re-compiling the source code eliminating the co-processor will significantly increase the execution time.

How to tell when a model is adequate

One difficult task for the unexperienced interpreter is to determine when a model is adequate. Hohmann and Raiche (1988, p. 488) describe how to quantitatively evaluate the confidence that can be placed in inversion results. Their procedure is summarized in this report in the section on Parameter Resolution Statistics. It involves looking at the estimated standard error (here called RCSQ), and the noise-to-signal ratio (NSR). Confidence intervals often are swamped by high parameter correlations. but sometimes are meaningful.

Qualitatively, one can examine plots of field versus model­derived data to determine visually whether the model fits the data. Experience, and a knowledge of how precise parameters have to be for the specific application, help determine when data have been fit well enough for a reasonable geologic interpretation.

One empirical method which appears to work in determining whether enough iterations have been performed is to look at the parameter increments (displayed in log space). If increments on any of the parameters in the last iteration are ~ 0.1, then more iterations should be performed. Edit the input file, put the parameters from the final iteration in as the initial guess, and run the inversion again.

Specific examples that have been worked out

In order to become familiar with the EINVRT4 computer program, specific worked-out examples have been included in this documentation report. Examples provided in this section do not include every option and variation possible with this program, but provide the fundamentals from which all options can be understood. The examples are in Appendix I of this report.

The first example. la, shows screen prompts and responses for entering TEM data through the program T47INPUT. The data set being entered is theoretically-derived data (with 2% random noise added) for a 5-layer earth. the specifics of which will be elaborated upon later. As can be seen, these data are from the 315 Hz TEM base frequency, based on a 75-m-square transmitting loop, a receiver gain of 1 (actually 21 ), a transmitted current of 1 Amp, and a ramp turn-off time of 10 ps. The corresponding

38

Page 46: New Jersey Geological Survey Open-File Report OFR 90-1

output file created by the T47INPUT program is shown as example Ib (file name is test2.dat).

As a second example, the same 5-layer earth used to generate the theoretical TEM data in example la was used to generate theoretical resistivity and IP data (theoretical resistivity data have 4% random noise added, and theoretical IP data have 6% random noise added). These data are input into the SLUMBER computer program through the screen prompts and responses shown in example 2a. Note that these data encompass Schlumberger array AB/2 values from 0.8 to 400 m at logarithmic intervals of 10 per decade. Two output files are created by the SLUMBER program which are testl.l00 and testl.plt shown in examples 2b and 2c, respectively. A plot of the testl.plt file using the program PLOT (Sandberg, 1988) is shown in example 2d. Note that different symbols are used for different resistivity MN spacings as specified in the input session shown in example 2a. The horizontal axis is AB/2 (m), and the vertical axis is apparent resistivity (n·m) for resistivity data (using equation 20), and linear chargeability (ms) for IP data, where the 10-label corresponds to 5 ms and each decade is an interval of 5 ms.

The third example (3a) shows screen prompts and responses from running the RAMPRES2 program. The input data file is test2.dat shown as example lb. Following the prompts and responses enables the program to generate a plot file of TEM step-function asymptotic late-time apparent resistivity using equation 6, along with late time branch ramp-derived apparent resistivity obtained by inverting equation 2 for apparent resistivity (see section: TRANSIENT ELECTROMAGNETIC APPARENT RESISTIVITY CALCULATION). The output plot file is shown as example 3b, and plotted using PLOT (Sandberg, 1988) as example 3c. The axes on the plot are as follows: the horizontal axis is time (s) and the vertical axis is apparent resistivity (n-m). The plus (+) symbols are the step function asymptotic late time apparent resistivity values, and the. cross (x) symbols are the late time branch ramp-derived apparent resistivity values.

The fourth example (4a) shows an input file generated by following the prompts from EINVRT4 (Schlumberger resistivity only, input data file is testl.IOO from example 2b, 4 layers above halfspace were specified, thicknesses are used, units are meters, initial guess-layer resistivities and thicknesses are:

16.00,0.64 160,40 16,16 400,48 16

39

Page 47: New Jersey Geological Survey Open-File Report OFR 90-1

where the last resistivity, 16, is the one for the basal halfspacc, 3 iterations are specified, all parameters are allowed to vary, filename for field data and initial guess is test4.mod, filename for output is test4.out, filename for plot is test4.plt, and we have neglected to go on). We have edited the input file (test4.mod) and changed the ammu value to 0.010, which results in the file shown as example 4a. The program EINVRT4 is executed again, this time we respond yes to the prompt "Is initial guess and field data file already in a file?" The filename is test4.mod, and at the prompt "go on? (yes=l,no=O)" we respond with a "1", indicating yes. The graphics screen is engaged which should match the one shown as example 4b. The output file (test4.out) from this example is example 4c. At the end of this output file are the final parameters. The resistivity method alone was not able to resolve these parameters very accurately as can be seen by the parameter statistics. The exact layer parameters for examples 4, 5, and 6 should be:

layer rho chg thk(m)

1 20. O'm 10. ms 0.8 m 2 200. 5 . 50. 3 20. 15. 20. 4 500. 5. 60. 5 20. 15.

The output plot file (test4.plt) using PLOT is shown as example 4d.

Example 5 shows the graphics screen resulting from an input file similar to that in example 4a except that simultaneous Schlumberger resistivity and IP are specified, and initial guess layer chargeabilities are given. The graphics screen is shown as it appears after the forward calculation using the initial guess parameters. Running this example (not shown) substantially improves resolution of the above parameters by incorporation of the IP information.

Example 6 shows the graphics screen resulting from a simultaneous TEM, Schlumberger resistivity, and IP inversion. Input data files are test2.dat (example Ib) and testl.100 (example 2b). The graphics screen is shown as it appears .after the forward calculation using the initial guess parameters. Again, running this example (not shown) results in a considerable improvement in resolution over examples 4 and 5 through incorporation of the TEM information.

Example 7a shows a data file (readtest.dat) created by the Geonics GSPx7 Transient EM Data Handling & Modeling program (Geonics Limited, 1988). This is real field data from a study area in north-central New Jersey. Example 7b shows screen

40

Page 48: New Jersey Geological Survey Open-File Report OFR 90-1

prompts and responses resulting from running the READ program. The readtest.dat file (example 7a) is input. and the two files patem6h.dat and patem6j.dat are created. which are shown as examples 7c and 7d. respectively. Example 7e shows screen prompts and responses resulting from running the RAMPRES2 program using the files patem6h.dat (example 7c) and patem6j.dat (example 7d) as input and generating the output plot file patem6.plt. which has been plotted in example 7f. Note the jump in apparent resistivity in moving from the 315 Hz base frequency. EM-47 transmitter data (patem6h.dat) to the 30 Hz base frequency. EM-57 transmitter data (patem6j.dat). This jump results from the change in transmitter shutoff ramp time from 4.2 (patem6h.dat) to 55 ps (patem6j.dat) when transferring from one transmitter to another.

The example data files from this section are provided on the program diskette included with this report. These are included so that some familiarity with program operation can be made by running through these examples and comparing results with those shown in Appendix I. Included example data files are:

test2.dat (example Ib) testl.lOO (example 2b) test4.mod (example 4a) test3.mod (input for EINVRT4 to generate example 5) test2.mod (input for EINVRT4 to generate example 6) readtest.dat (example 7a) patem6h.dat (example 7c) patem6j.dat (example 7d)

41

Page 49: New Jersey Geological Survey Open-File Report OFR 90-1

SUMMARY

This report presents software designed to assist in the interpretation of geoelectrical soundings. In particular. data input routines (T47INPUT. READ. and SLUMBER). data reduction routines (SLUMBER and RAMPRES2). and an inverse modeling routine (EINVRT4) are presented for processing resistivity. resistivity/IP. and TEM soundings. The inverse modeling program has the capability to model field-data sets either individually or simultaneously from these differing methods.

Data input routines T47INPUT. READ. and SLUMBER are used to set up standard data-file formats. These are defined as the NJGS Standard TEM Data-File Format and the NJGS Standard Resistivity/IP Data Format for sounding-data sets.

Data reduction for resistivity/IP soundings consists of converting the voltage. current. and electrode geometry to apparent resistivity versus current electrode spacing. This is a by-product of the data input routine SLUMBER: In addition to creating a datafile in the NJGS Standard Resistivity/IP Data Format. a plot file of apparent resistivity (and chargeability. if collected) versus current electrode spacing is created. This plot file can be read by a plotting routine such as PLOT (Sandberg. 1988) and data can be plotted for data-q~ality inspection and for determining initial guess parameters for inversion.

Data reduction for TEM central loop soundings consists of converting receiver-coil voltage versus sample-time measurements to apparent resistiv'ity versus sample time. The program RAMPRES2 provides a means to calculate ramp-corrected apparent resistivity versus sample time so that data-quality inspection and initial guess parameters can be obtained. The ramp-corrected apparent resistivities can also be used in qualitative interpretations.

Inverse modeling for a one-dimensional. accomplished using the program EINVRT4. six possible modes:

layered earth is This program operates in

1) TEM central loop induction configuration only 2) Schlumberger array resistivity only 3) Simultaneous Schlumberger resistivity and TEM 4) Simultaneous dipole-dipole resistivity and TEM 5) Simultaneous Schlumberger resistivity and IP 6) Simultaneous Schlumberger resistivity. IP. and TEM

In addition. because of the way that the resistivity forwal'd solution is calculated. Wenner array resistivity (alone and with IP) data also can be interpreted.

42

Page 50: New Jersey Geological Survey Open-File Report OFR 90-1

REFERENCES

Anderson. W. L., 1979, Numerical int.egration of related Hankel transforms of orders 0 and 1 by adaptive digital filtering: Geophysics, v. 44, p. 1287-1305.

Asten, M. W., 1987, Full transmitter waveform transient electromagnetic modeling and inversion for soundings over coal measures: Geophysics, v. 52, p. 279-288.

Bard, Y., 1974, Nonlinear parameter estimation: New York, Academic Press, 216 p.

Geonics Limited, 1988, GSPx7 transient EM data handling & modelling for Geonics' EM37 & PROTEM systems and IBM PC/XT MS-DOS 2.0 -- December, 1988: Geonics Limited, Mississauga, Ontario, Canada, 64 p.

:Geonics Limited, 1989, Geonics Protem EM system -- Protem II (I) i operating instructions -- April, 1989: Geonics Limited, t Mississauga, Ontario, Canada, 23 p.

IGUstafson, E. P., and McEuen R. B., 1987, Minimizing interpretation ambiguities through joint inversion of surface electrical data: Ground Water Monitoring Review, v. 7, no. 4, p. 101-113.

Hohmann, G. W., and Raiche, A. P., 1988, Inversion of controlled-source electromagnetic data, in Nabighian, M. N., Ed., Electromagnetic methods in applied geophysics, 1: Soc. Expl. Geophys., 513 p.

! !JuPP, D. L. B., and Vozoff. Keeva, 1975, Stable iterative ! methods for the inversion of geophysical data: Geophys. J.

Roy. Astr. Soc., v. 42, p. 957-976.

Knight, J. H., and Raiche, A. P., 1982, Transient electromagnetic calculations using the Gaver-Stehfest inverse Laplace transform method: Geophysics, v. 47, p. 47-50.

Raiche, A. P., 1984, The effect of ramp function turnoff on the TEM response of a layered ground: Exploration Geophysics. v. 15, p. 37-41.

Raiche, A. P., Jupp, D. 1985, The joint use electromagnetic and layered structures:

L. B., Rutter, Hugh, and Vozoff, Keeva, of coincident loop transient Schlumberger sounding to resolve

Geophysics, v. 50, p. 1618-1627.

43

Page 51: New Jersey Geological Survey Open-File Report OFR 90-1

Rijo, Luiz, Pelton, W. H., Feitosa, E. C., and Ward, S. H., 1977, Interpretation of apparent resistivity data from Apodi Valley, Rio Grande Do Norte, Brazil: Geophysics, v. 42. p. 811-822.

Roy. A .. and Poddar. M .. 1981, A simple derivation of Seigel's time domain induced polarization formula: Geophysical Prospecting. v. 29, p. 432-437.

Sandberg. S. K., 1979, Documentation and analysis of the Schlumberger interactive 1-D inversion program SLUMB: Univ. of Utah Dept. Geol. and Geophys. rep. DOE/ET/27002-2. 84 p.

-------- 1987. Transient electromagnetic data processing applied to a saltwater-intruded aquifer in central New Jersey: Society of Exploration Geophysicists 57th Annual International Meeting Expanded Abstracts, Oct. 11-15, 1987, p.88-91.

-------- 1988, Microcomputer software for the processing and forward modeling of transient electromagnetic data taken in the central loop sounding configuration: New Jersey Geol. Surv. Open-File Report 88-1, 88 p., 1 diskette.

Seara, J. L., and Granda, A., 1987. Interpretation of IP time domain/resistivity soundings for delineating sea-water intrusions in some coastal areas of NE Spain: Geoexploration, v. 24. p. 153-167.

Vozoff, Keeva, and Jupp, D. L. B., 1975, Joint inversion of geophysical data: Geophys. J. Roy. Astr. Soc., v. 42, p. 977-991.

Wait, J. R., 1982, Geo-electromagnetism: New York, Academic Press, 268 p.

44

Page 52: New Jersey Geological Survey Open-File Report OFR 90-1

APPENDIX I

45

Page 53: New Jersey Geological Survey Open-File Report OFR 90-1

field data input routine

enter the data filena.e to be created? test2.dat output will ~o to test2.dat

enter code for trans.itter base frequency

low (3Hz or LO setting on Rx) = 1 aed (7.5Hz or MD setting on Rx) z 2 high (30Hz or HI on Rx) with:

low f coil, EM57 or EM37 Tx - 3 low f coil, EM47 Tx = 4 high f coil, EM 47 Tx = 5

very high (75Hz or VH on Rx) • 6 ultra high (315Hz or UH on Rx) = 7 ? 7

enter transMitter loop side di.ension (.) ? 75 enter gain fro. receiver switch setting? 1 enter current (a.peres) ? 1 enter ra.p turn-off ti.e (.icroS) ? 10 for channel 1 ,enter reading ? 290.42 for channel 2 ,enter reading 7 178.3

for channel 3 .enter reading ? 103.2 for channel 4 ,enter reading ? 63.7 for channel 5 ,enter reading ? 45.0 for channel 6 ,enter reading ? 30.6 for channel 7 ,enter reading 7 22.2 for channel 8 ,enter reading 7 16.0 for channel 9 ,enter reading ? 10.6 for channel 10 ,enter reading 7 7.15 for channel 11 ,enter reading ? 4.62 for channel 12 ,enter reading ? 2.87

for channel 13 ,enter reading 7 1.64 for channel 14 ,enter reading ? .912 for channel 15 ,enter reading 7 .549 for channel 16 ,enter reading ? .311 for channel 17 ,enter reading 7 .182 for channel 18 ,enter reading ? . 115 for channel 19 ,enter reading ? .071 for channel 20 ,enter reading ? .045 is another data set to be entered? (yes=I,no=O) ? 0 Ok

Example la. Input session for T47INPUT.

Page 54: New Jersey Geological Survey Open-File Report OFR 90-1

7 1 1 10 75 88.79083 54.51211 31.5516 19.47516 13.75796 9.355414 6.787262 4.89172 3.240765 2.185987 1.412484 .8774522 .5014013 .2788281 .1678472 9.508281E-02 5.564332E-02 3.515924E-02 2.170701E-02 1.375796E-02

Example lb. Output (test2.dat) from T47INPUT.

47

Page 55: New Jersey Geological Survey Open-File Report OFR 90-1

This program reads Schlu.berger resistivity/IP field data for plotting using the plot.bas program, or similar plotting routine.

Enter the filename of data file to be created? testl.l00

Enter filenaMe for plot data? testl.plt use different symbols for different MN? (yes=l,no=O)? 1

Is the data froll the ABEM? (yes=l, no=O)? 0 is there IP data also? (yes=l, no=O)? 1 Enter the observed data in the following fore: AB/2 (II), MN (II). V (volt). current (amp). chargeability

? .8 •. 3.3.654,1.9.99 ? 1. .3.2.508.1.9.66 ? 1. .6.5.102.1.9.16 ? 1.26 •. 6.3.582.1.9.10 ? 1.58 .. 6.2.734.1.9.49 ? 2 .. 6.1.962.1.8.85 ? 2.5 •. 6.1.541,1.9.14 ? 3.16 .. 6.1.123.1,8.60 ? 4 •. 6 .. 813.1.8.11 ? 5 •. 6 .. 619.1.8.16 ? 6.31. .6 .. 446,1,7.79 ? 8 •. 6 .. 335.1,8.12 ? 10 •. 6 .. 233.1.7.48 ? 12.6 •. 6 .. 165.1,7.26 ? 15.8 .. 6 .. 114.1.6.92 ? 15.8.2 •. 372.1.6.71 ? 20.2 .. 244.1.6.20 ? 25.2 •. 165.1.5.97 ? 31.6.2 •. 113.1.6.21 ? 31.6.4 •. 219.1.5.93 ? 40.4 •. 135.1,5.50 ? 50.4 •. 086.1.5.46 ? 50.8 .. 181.1.5.88 ? 63.1.8 •. 108.1.5.87 ? 80.8 •. 063.1.6.21 ? 80.16 •. 124.1.5.96 ? 100.16 •. 071.1,6.45 ? 126.16 •. 041.1.7.58 ? 126.32, .084.1.7.62 ? 158.32 •. 046.1.8.16 ? 200.32 •. 029.1.9.78 ? 250.32 .. 018.1.9.87 ? 316.32 •. 011.1.8.63 ? 400.32 •. 0065.1.8.28 ? 0.0.0.0.0 no. of points read= 34 Ok

=======

Example 2a. Input session for SLUMBER.

Page 56: New Jersey Geological Survey Open-File Report OFR 90-1

.8 .3 3.654 1 9.99 1 .3 2.508 1 9.66 1 .6 5.102 1 9.16 1.26 .6 3.582 1 9.100001 1.58 .6 2.734 1 9.49 2 .6 1 .962 1 8.850001 2.5 .6 1.541 1 9.140001 3.16 .6 1 .123 1 8.600001 4 .6 .813 1 8.11 5 .6 .619 1 8.16 6.31 .6 .446 1 7.79 8 .6 .335 1 8.12 10 .6 .233 1 7.48 12.6 .6 .165 1 7.26 15.8 .6 .114 1 6.92 15.8 2 .372 1 6.71 20 2 .244 1 6.2 25 2 .165 1 5.97 31 .6 2 .113 1 6.21 31 .6 4 .219 1 5.93 40 4 .135 1 5.5 50 4 .086 1 5.46 50 8 .181 1 5.88 63.1 8 .108 1 5.87 80 8 .063 1 6.21 80 16 .124 1 5.96 100 16 .071 1 6.45 126 16 .041 1 7.58 126 32 .084 1 7.62 158 32 .046 1 8.16 200 32 .029 1 9.78 250 32 .018 1 9.87 316 32 .011 1 8.63 400 32 .0065 1 8.28

Example 2b. Output data file (test1.100) from SLUMBER.

4'

Page 57: New Jersey Geological Survey Open-File Report OFR 90-1

.8 23.62837

.8 99.54054 3 1 25.67276 1 1 85.50664 3 1 24.30973 2 1 67.92038 3 1.26 28.08792 2 1. 26 66.06934 3 1.58 34.44805 2 1.58 79.06786 3 2 40.16743 2 2 58.88439 3 2.5 49.70289 2 2.5 67.29766 3 3.16 58.18622 2 3.16 52.48074 3 4 67.72656 2 4 41.87936 3 5 80.73516 2 5 42.85486 3 6.31 92.77032 2 6.31 36.14098 3 8 112.1016 2 8 42.07265 3 10 121.8886 2 10 31.33286 3 12.6 137.0809 2 12.6 28.31392 3 15.8 148.9569 2 15.8 24.2103 3 15.8 145.2893 4 15.8 21.9786 3 20 152.9263 4 20 17.37801 3 25 161.7291 4 25 15.63148 3 31.6 177.0667 4 31.6 17.45822 3 31.6 171.0664 5 31.6 15.34617 3 40 169.2218 5 40 12.58926 3 50 168.5903 5 50 12.35947 3 50 176.5589 6 50 14.99685 3 63.1 168.1873 6 63.1 14.92794 3 80 157.9403 6 80 17.45822 3 80 154.2647 1 80 15.55966 3 100 138.5159 1 100 19.49844 3 126 127.2917 1 126 32.80953 3 126 128.8131 2 126 33.4195 3 158 111.5822 2 158 42.85486 3 200 113.1538 2 200 90.36497 3 250 109.9941 2 250 94.18893 3 316 107.5602 2 316 53.21083 3 400 101.9383 2 400 45.28974 3

Example 2c. Output plot file (testl.plt) from SLUMBER.

10

Page 58: New Jersey Geological Survey Open-File Report OFR 90-1

plot version 2.26 Inversion Software project line= test1.plt 10:01:42 03-22-1990

number of data points= 68 scale is .5714286 cycles per inch

I I I 111111 I II 1111 1111111 I I I 1000 - .1 1 10 100

• • • * • i • ~ • + + X * = + VI • + + + + + ... 100 -- [::J + -- + [::J I!I

-- I!I I!I + -. I!I I!I I!I + III + I!I -- + I!I

= m III I!l I!l m -- + ii + I!l ID I!l

¥ + I!I ;: X III

C III

III I!I I!I - III C I!I I!I I!I

I!I I!l

10 I , I I II I I I I I I II I I I III I I I

plot complete . 1 1 10 100

ExampJe 20. Plot of testl.plt using PLOT.

Page 59: New Jersey Geological Survey Open-File Report OFR 90-1

C:\>rallpres2

written by: S. K. Sandber~. NJGS version 2.00

last revised: February 20.1990

Enter input FILENAME test2.dat

Enter output FILENAME test2.ppp plot step function asymptotic LATE TIME resistivity? (yes=l.no=O)

1 plot step function asymptotic EARLY TIME resistivity? (yes=1.no=O)

o look for solutions on which branch? (I=EARLY.2=LATE)

2

o

0

Is there a turnoff ti.e error to account for? (yes=l.no=O)

input dataset=test2.dat output plotfile=test2.ppp

ch time(msec) late t res resistivity

1 0.007 402.1 165.6 2 0.009 357.5 171. 7 3 0.012 314.3 174.4 4 0.016 272.2 168.8 5 0.020 232.7 155.7 6 0.026 193.8 139.5 7 0.034 158.0 120.3 8 0.043 134.2 106.7 9 0.055 116.0 96.2

10 0.069 101.6 87.1 11 0.086 94.9 83.5 12 0.107 90.6 81.6 13 0.138 86.1 79.2 14 0.175 85.6 80.2 15 0.219 82.7 78.4 16 0.280 80.2 76.8 17 0.354 77.5 74.9 18 0.441 73.0 71.0 19 0.561 67.4 65.9 20 0.707 62.1 61.0

Add another data set? (yes=1.no=O)

Execution ter.inated : 0

C:\>

Example 3a. RAMPRES2 screen session.

52

no. iter.

6 4 4 4 4 3 4 4 3 3 4 4 4 3 3 3 3 3 3 3

branch slope

late t -1.25 late t -1.31 late t -1.35 late t -1.38 late t -1.39 late t -1.41 late t -1.41 late t -1.42 late t -1.43 late t -1. 44 late t -1.45 late t -1.46 late t -1.46 late t -1.47 late t -1.48 late t -1. 48 late t -1.48 late t -1. 49 late t -1.49 late t -1.49

Page 60: New Jersey Geological Survey Open-File Report OFR 90-1

0.0000069 165.63 1 . 0.0000069 402.15 2. 0.0000090 171.71 1 . 0.0000090 357.53 2. 0.0000121 174.37 1 . 0.0000121 314.33 2. 0.0000160 168.79 1 . 0.0000160 272.18 2. 0.0000202 155.70 1 . 0.0000202 232.67 2. 0.0000263 139.50 1 . 0.0000263 193.82 2. 0.0000338 120.27 1. 0.0000338 158.02 2. 0.0000425 106.74 1. 0.0000425 134.19 2. 0.0000547 96.20 1 . 0.0000547 115.95 2. 0.0000693 87.11 1. 0.0000693 101 .63 2. 0.0000860 83.53 1 . 0.0000860 94.88 2. 0.0001070 81.57 1 . 0.0001070 90.55 2. 0.0001380 79.22 1 . 0.0001380 86.05 2. 0.0001750 80.20 1 . 0.0001750 85.65 2. 0.0002190 78,.37 1 . 0.0002190 82.67 2. 0.0002800 76.84 1 . 0.0002800 80.17 2. 0.0003540 74.92 1 . 0.0003540 77.52 2. 0.0004410 70.97 1 . 0.0004410 72.99 2. 0.0005610 65.88 1 . 0.0005610 67.40 2. 0.0007070 60.97 1 . 0.0007070 62.13 2 .

Example 3b. Output plot file (test2.ppp) from RAMPRES2 .

• 3

Page 61: New Jersey Geological Survey Open-File Report OFR 90-1

plot version 2.26 Inversion Software project line= test2.ppp 10:22:06 03-22-1990

number of data points= 40 scale is .5 cycles per inch

I I I I I I I I I I I I I I I I f I I I I I I 1000 - .000001 .00001 .0001 .001

+ +

+ +

+ +

• x X X X X + = X + = X +

X X + X +x * ';'X

)I; * * * * ~ * *

100

-! ---

10 I I 1\ II I I ! I I I I I I II II

plot complete .000001 .00001 .0001 .001

Example 3c. Plot of test2.ppp using PLOT.

Page 62: New Jersey Geological Survey Open-File Report OFR 90-1

test4.out test4.plt 9 1 2 34 0 0 3 1 1 0

0.0 0.0040 0.010 1 2. 3. 1 . 4. 5. 6.

16.00 160.00 16.00 400.00 16.00 0.64 40.00 16.00 48.00

0 0 0 0 0 0 0 0 0 0.80 0.30 1.0000 3.6540 23.6 9.99 1.00 0.30 1.0000 2.5080 25.7 9.66 1.00 0.60 1.0000 5.1020 24.3 9.16 1.26 0.60 1.0000 3.5820 28.1 9.10 1.58 0.60 1.0000 2.7340 34.4 9.49 2.00 0.60 1.0000 1.9620 40.2 8.85 2.50 0.60 1.0000 1 .5410 49.7 9.14 3.16 0.60 1.0000 1.1230 58.2 8.60 4.00 0.60 1.0000 0.8130 67.7 8. 11 5.00 0.60 1.0000 0.6190 80.7 8.16 6.31 0.60 1.0000 0.4460 92.8 7.79 8.00 0.60 1.0000 0.3350 112.1 8.12

10.00 0.60 1.0000 0.2330 121.9 7.48 12.60 0.60 1.0000 0.1650 137.1 7.26 15.80 0.60 1.0000 0.1140 149.0 6.92 15.80 2.00 1.0000 0.3720 145.3 6.71 20.00 2.00 1.0000 0.2440 152.9 6.20 25.00 2.00 1.0000 0.1650 161.7 5.97 31.60 2.00 1.0000 0.1130 177.1 6.21 31.60 4.00 1.0000 0.2190 171 . 1 5.93 40.00 4.00 1.0000 0.1350 169.2 5.50 50.00 4.00 1.0000 0.0860 168.6 5.46 50.00 8.00 1.0000 0.1810 176.6 5.88 63.10 8.00 1.0000 0.1080 168.2 5.87 80.00 8.00 1.0000 0.0630 157.9 6.21 80.00 16.00 1.0000 0.1240 154.3 5.96

100.00 16.00 1.0000 0.0710 138.5 6.45 126.00 16.00 1.0000 0.0410 127.3 7.58 126.00 32.00 1.0000 0.0840 128.8 7.62 158.00 32.00 1.0000 0.0460 111. 6 8.16 200.00 32.00 1.0000 0.0290 113.2 9.78 250.00 32.00 1.0000 0.0180 110.0 9.87 316.00 32.00 1.0000 0.0110 107.6 8.63 400.00 32.00 1.0000 0.0065 101.9 8.28

Example 4a. Input file (test4.mod) for EINVRT4.

.5

Page 63: New Jersey Geological Survey Open-File Report OFR 90-1

test4.l'Itod status**>sys

Example 4b.

+++*=+++++ t.-t-±----------------_ + + + + + +

~. ~-j.--""'I'" ---.. -1..*'" -".

t.":f~-t ..

~"::r ;/--"t:"

1 IB H10 ab/2 (M)

Matrix r 21 34 estiM. COMpletion:

Graphics screen for mode 2 (using test4.mod).

+ resistivity data

resist calculated

iteration= 81 3 RCSQ=8.B1879 11=8.87B2

layer rho thk(M) 1 * 16.8B * B.6 2 * 16B.HB * 48.8 3 * 16.88 * 16.8 4 * 4BB.HB * 48.8 5 * 16.80

h M s B 3 15 MU= B.Bl

Page 64: New Jersey Geological Survey Open-File Report OFR 90-1

Exampl e 4 c .

*

* * *

* * * *

* * * EINVRT4 *

* ***************

written by: Stewart Sandberg

vel'. 4.00 3/19/90

todays date is 3 22 1990 time at beginning= 10 33 26 input filename= test4.mod

initial guess results

field data theoretical pct diff

1 2 3 4 5 6

RES RES RES RES RES RES RES 7 RES 8 RES 9 RES 10 RES 11 RES 12 RES 13 RES 14 RES 15 RES 16 RES 17 RES 18 RES 19 RES 20 RES 21

22 23

RES RES RES 24 RES 25 RES 26 RES 27 RES 28 RES 29 RES 30 RES 31 RES 32 RES 33

23.60 25.70 24.30 28.10 34.40 40.20 49.70 58.20 67.70 80.70 92.80

112.10 121. 90 137.10 149.00 145.30 152.90 161.70 177.10 171.10 169.20 168.60 176.60 168.20 157.90 154.30 138.50 127.30 128.80 Ill. 60 113.20 110.00 107.60

20.53 23.42 22.82 27.04 32.42 39.23 46.68 55.46 65.19 75.07 85.82 96.91

107.08 116.92 125.45 125.33 13~.63 137.53 139.97 139.93 138.95 134.18 134.24 125.24 113.03 113.37 101.68 92.73 93.21 88.82 87.91 86.93 82.27

13.0 8.9 6.1 3.8 5.8 2.4 6.1 4.7 3.7 7.0 7.5

13.6 12.2 14.7 15.8 13.7 13.3 15.0 21.0 18.2 17.9 20.4 24.0 25.5 28.4 26.5 26.6 27.2 27.6 20.4 22.3 21.0 23.5

Output file (test4.out) from EINVRT4 using test4.mod as input.

17

Page 65: New Jersey Geological Survey Open-File Report OFR 90-1

RES 34 101.90 72.48 28.9 rcsq= 0.01082 11 norm= 0.07822 tjme to do complete forward= 1.11096702E-03 hours

RES 1 1/34 0.82 0.9432 0.0564 0.0001 0.0002-0.0004-0.4951 0.0001 -0.0001 0.0002 RES 1 2/34 0.82 0.9158 0.0837 0.0001 0.0002-0.0003-0.6388 0.0001 -0.0001 0.0002 RES 1 3/34 0.82 0.9204 0.0790 0.0001 0.0002-0.0003-0.6042 0.0001 -0.0001 0.0002 RES 1 4/34 0.83 0.8862 0.1130 0.0000 0.0002-0.0003-0.7232 0.0001 -0.0001 0.0001 RES 1 5/34 0.83 0.8499 0.1492 0.0001 0.0001-0.0002-0.7735 0.0001

0.0000 0.0001 RES 1 6/34 0.88 0.8094 0.1893 0.0000 0.0001-0.0001-0.7721 0.0002

0.0000 0.0001 RES 1 7/34 0.82 0.7680 0.2305 0.0000 0.0001-0.0001-0.7445 0.0002

0.0000 0.0001 RES 1 8/34 0.82 0.7203 0.2779 0.0001 0.0001-0.0001-0.7033 0.0004

0.0000 0.0001 RES 1 9/34 0.88 0.6677 0.3303 0.0001 0.0001-0.0001-0.6547 0.0007 -0.0001 0.0001 RES 1 10/34 0.88 0.6135 0.3842 0.0001 0.0000-0.0001-0.6036 0.0012 -0.0001 0.0000 RES 1 11/34 0.88 0.5530 0.4444 0.0003 0.0001-0.0001-0.5456 0.0021 -0.0002 0.0000 RES 1 12/34 0.88 0.4880 0.5090 0.0005 0.0001-0.0001-0.4827 0.0037 -0.0004 0.0001 RES I 13/34 0.88 0.4252 0.5714 0.0009 0.0001-0.0001-0.4214 0.0066 -0.0007 0.0001 RES 1 14/34 0.93 0.3600 0.6358 0.0016 0.0002 0.0000-0.3574 0.0117 -0.0013 0.0002 RES 1 15/34 0.88 0.2977 0.6967 0.0029 0.0004-0.0001-0.2962 0.0209 -0.0023 0.0002 RES 1 16/34 0.93 0.2984 0.6959 0.0029 0.0004 0.0000-0.2970 0.0208 -0.0023 0.0002 RES 1 17/34 0.88 0.2367 0.7549 0.0053 0.0007 0.0000-0.2360 0.0379 -0.0043 0.0005 RES 1 18/34 0.88 0.1829 0.8041 0.0097 0.0014 0.0001-0.1825 0.0664 -0.0077 0.0009 RES I 19/34 0.88 0.1314 0.8460 0.0182 0.0027 0.0001-0.1313 0.1167 -0.0147 0.0017 RES 1 20/34 0.87 0.1320 0.8456 0.0181 0.0027 0.0001-0.1318 0.1163 -0.0147 0.0018 RES 1 21/34 0.88 0.0845 0.8749 0.0338 0.0054 0.0002-0.0845 0.1975 -0.0279 0.0035 RES 1 22/34 0.93 0.0426 0.8857 0.0603 0.0105 0.0006-0.0424 0.3079 -0.0507 0.0069 RES 1 23/34 0.94 0.0433 0.8852 0.0598 0.0104 0.0005-0.0433 0.3058 -0.0505 0.0069 RES .1 24/34 0.88 0.0019 0.8692 0.1068 0.0208 0.0013-0.0017 0.4464 -0.0925 0.0141 RES 1 25/34 0.94-0.0341 0.8061 0.1837 0.0423 0.0028 0.0345 0.5744 -0.1641 0.0300 RES 1 26/34 0.93-0.0328 0.8075 0.1815 0.0417 0.0027 0.0332 0.5692 -0.1621 0.0296 RES 1 27/34 0.94-0.0535 0.6892 0.2807 0.0790 0.0058 0.0541 0.6080 -0.2580 0.0589

Example 4c. continued.

18

Page 66: New Jersey Geological Survey Open-File Report OFR 90-1

RES 1 28/34 0.93-0.0524 0.5117 0.3875 0.1422 0.0117 0.0530 0.5041 -0.3655 0.1125 RES 1 29/34 0.94-0.0522 0.5209 0.3813 0.1395 0.0115 0.0528 0.5083 -0.3592 0.1102 RES 1 30/34 0.94-0.0341 0.3395 0.4477 0.2253 0.0215 0.0346 0.3118 -0.4295 0.1887 RES 1 31/34 0.93-0.0138 0.2034 0.4398 0.3318 0.0377 0.0141 0.1320 -0.4257 0.2935 RES 1 32/34 0.99-0.0050 o . 1307 0.3680 0.4440 0.0606 0.0052 0.0562 -0.3557 0.4101 RES 1 33/34 0.93-0.0053 0.0835 0.2485 0.5742 0.0974 0.0055 0.0520 -0.2361 0.5493 RES 1 34/34 0.93-0.0101 0.0410 0.0978 0.7142 0.1556 0.0104 0.0802 -0.0847 0.7015

ltera t i on # 1 allIl1U= 0.010

no. eigenvalue

1 4.1715 2 3.0399 3 1.7470 4 0.9658 5 0.5084 6 0.3128 7 0.0138 8 0.0005 9 0.0001 parameter increllents 1 0.1126 2 0.0920 3 0.0202 4 0.0883 5 0.0276 6 0.1181 7 0.0902 8 -0.0159 9 0.0870

old paralleter log new parameter log

16.00 1. 2041 20.73 1.3167 160.00 2.2041 197.75 2.2961

16.00 1.2041 16.76 1.2243 400.00 2 .. 6021 490.21 2.6904

16.00 1.2041 17.05 1.2317 0.64 -0.1938 0.84 -0.0757

40.00 1.6021 49.23 1.6922 16.00 1.2041 15.42 1.1882 48.00 1.6812 58.64 1.7682

field data theoretical pct diff

RES 1 23.60 23.77 -0.7 RES 2 25.70 26.00 -1.2 RES 3 24.30 25.58 -5.2 RES 4 28.10 29.11 -3.6

Example 4c. continued.

Page 67: New Jersey Geological Survey Open-File Report OFR 90-1

RES 5 34.40 34.07 1.0 RES 6 40.20 40.87 -1 .7 RES 7 49.70 48.75 1 .9 RES 8 58.20 58.36 -0.3 RES 9 67.70 69.28 -2.3 RES 10 80.70 80.64 0.1 RES 11 92.80 93.35 -0.6 RES 12 112.10 106.89 4.6 RES 13 121.90 119.76 1 .8 RES 14 137.10 132.74 3.2 RES 15 149.00 144.62 2.9 RES 16 145.30 144.45 0.6 RES 17 152.90 155.43 -1.7 RES 18 161.70 163.87 -1 .3 RES 19 177.10 170.09 4.0 RES 20 171.10 170.01 0.6 RES 21 169.20 172.84 -2.2 RES 22 168.60 171.50 -1.7 RES 23 176.60 171.49 2.9 RES 24 168.20 165.28 1.7 RES 25 157.90 153.87 2.5 RES 26 154.30 154.15 0.1 RES 27 138.50 140.35 -1.3 RES 28 127.30 126.34 0.8 RES 29 128.80 127.05 1.4 RES 30 111.60 116.93 -4.8 RES 31 113.20 112.16 0.9 RES 32 110.00 110.80 -0.7 RES 33 107.60 107.92 -0.3 RES 34 101.90 99.54 2.3

rcsq= 0.00014 11 norln= 0.00804

RES 2 1/34 0.82 0.9664 0.0333 0.0002 0.0002-0.0004-0.3153 0.0001 -0.0002 0.0002 RES 2 2/34 0.83 0.9457 0.0538 0.0001 0.0003-0.0003-0.4638 0.0001 -0.0001 0.0002 RES 2 3/34 0.77 0.9492 0.0504 0.0001 0.0002-0.0003-0.4319 0.0001 -0.0001 0.0002 RES 2 4/34 0.82 0.9206 0.0788 0.0001 0.0002-0.0003-0.5925 0.0001 -0.0001 0.0002 RES 2 5/34 0.82 0.8874 0.1119 0.0001 0.0002-0.0002-0.7092 0.0001

0.0000 0.0002 RES 2 6/34 0.88 0.8493 0.1497 0.0000 0.0001-0.0002-0.7655 0.0001

0.0000 0.0001 RES 2 7/34 0.83 0.8107 0.1880 0.0000 0.0001-0.0001-0.7679 0.0002

0.0000 0.0001 RES 2 8/34 0.83 0.7669 0.2315 0.0000 0.0001-0.0001-0.7409 0.0003

0.0000 0.0001 RES 2 9/34 0.82 0.7186 0.2796 0.0001 0.0000-0.0001-0.6999 0.0004 -0.0001 0.0000 RES 2 10/34 0.82 0.6686 0.3294 0.0001 0.0000-0.0001-0.6541 0.0007 -0.0001 0.0000 RES 2 11/34 0.82 0.6119 0.3858 0.0002 0.0001-0.0001-0.6009 0.0013 -0.0001 0.0001 RES 2 12/34 0.88 0.5499 0.4474 0.0003 0.0001-0.0001-0.5417 0.0023 -0.0002 0.0001

RES 2 13/34 0.87 0.4887 0.5082 0.0005 0.0001-0.0001-0.4826 0.0039 -0.0004 0.0001

Example 4c. continued.

10

Page 68: New Jersey Geological Survey Open-File Report OFR 90-1

RES 2 14/34 0.88 0.4236 0.5729 0.0009 0.0001-0.0001-0.4193 0.0069 -0.0008 0.0001 RES 2 15/34 0.88 0.3596 0.6359 0.0017 0.0002-0.0001-0.3567 0.0122 -0.0014 0.0002 RES 2 16/34 0.93 0.3604 0.6352 0.0017 0.0002-0.0001-0.3574 0.0122 -0.0014 0.0002 RES 2 17/34 0.88 0.2953 0.6988 0.0031 0.0005 0.0000-0.2934 0.0222 -0.0026 0.0004 RES 2 18/34 0.93 0.2369 0.7544 0.0055 0.0009 0.0000-0.2359 0.0391 -0.0048 0.0005 RES 2 19/34 0.94 0.1804 0.8055 0.0105 0.0018 0.0001-0.1798 0.0701 -0.0090 0.0011 RES 2 20/34 0.93 0.1810 0.8049 0.0104 0.0017 0.0001-0.1804 0.0699 -0.0090 0.0011 RES 2 21/34 0.93 0.1289 0.8464 0.0196 0.0033 0.0001-0.1287 0.1226 -0.0171 0.0021 RES 2 22/34 0.94 0.0840 0.8730 0.0353 0.0065 0.0003-0.0837 0.2009 -0.0311 0.0042 RES 2 23/34 0.93 0.0848 0.8724 0.0350 0.0064 0.0003-0.0846 0.1997 -0.0309 0.0041 RES 2 24/34 0.94 0.0406 0.8816 0.0640 0.0127 0.0006-0.0404 0.3142 -0.0573 0.0084 RES 2 25/34 0.93-0.0011 0.8596 0.1146 0.0256 0.0014 0.0014 0.4523 -0.1045 0.0175 RES 2 26/34 0.93 0.0003 0.8598 0.1133 0.0254 0.0013 0.0001 0.4478 -0.1034 0.0173 RES 2 27/34 0.93-0.0327 0.7945 0.1872 0.0489 0.0027 0.0331 0.5562 -0.1742 0.0348 RES 2 28/34 0.94-0.0513 0.6655 0.2882 0.0929 0.0059 0.0520 0.5751 -0.2733 0.0699 RES 2 29/34 0.93-0.0500 0.6716 0.2827 0.0910 0.0058 0.0506 0.5720 -0.2680 0.0685 RES 2 30/34 0.94-0.0478 0.4967 0.3808 0.1595 0.0115 0.0484 0.4624 -0.3669 0.1273 RES 2 31/34 0.93-0.0288 0.3173 0.4335 0.2560 0.0216 0.0293 0.2649 -0.4225 0.2170 RES 2 32/34 0.93-0.0120 0.1986 0.4123 0.3636 0.0363 0.0123 0.1179 -0.4035 0.3246 RES 2 33/34 0.93-0.0055 0.1262 0.3272 0.4904 0.0597 0.0057 0.0588 -0.3194 0.4576 RES 2 34/34 0.93-0.0077 0.0773 0.1985 0.6334 0.0967 0.0079 0.0676 -0.1903 0.6115

Iteration * 2 ammu= 0.010

no. eigenvalue

1 4.2248 2 3.0165 3 1.5737 4 0.8550 5 0.5220 6 0.3639 7 8 0.0053

0.0003 9

parameter 0.0001

increments

EXample 4c. continued.

11

Page 69: New Jersey Geological Survey Open-File Report OFR 90-1

1 -0.0205 2 0.0058 3 -0.0151 4 0.0106 5 0.0028 6 -0.0210 7 0.0018 8 0.0150 9 0.0119

old parameter log new parameter log

20.73 1.3167 19.78 1.2962 197.75 2.2961 200.39 2.3019

16.76 1.2243 16.19 1.2092 490.21 2.6904 502.32 2.7010

17.05 1.2317 17. 16 1.2345 0.84 -0.0757 0.80 -0.0967

49.23 1.6922 49.44 1.6941 15.42 1.1882 15.97 1.2032 58.64 1.7682 60.27 1.7801

field data theoretical pct di ff

RES 1 23.60 23.09 2.1 RES 2 25.70 25.48 0.9 RES 3 24.30 25.02 -2.9 RES 4 28.10 28.74 -2.3 RES 5 34.40 33.88 1 .5 RES 6 40.20 40.84 -1 .6 RES 7 49.70 48.82 1 .8 RES 8 58.20 58.52 -0.5 RES 9 67.70 69.53 -2.7 RES 10 80.70 81.00 -0.4 RES 11 92.80 93.84 - 1 . 1 RES 12 112.10 107.54 4.1 RES 13 121.90 120.58 1 . 1 RES 14 137.10 133.78 2.4 RES 15 149.00 145.86 2.1 RES 16 145.30 145.69 -0.3 RES 17 152.90 156.88 -2.6 RES 18 161.70 165.52 -2.4 RES 19 177.10 171.88 2.9 RES 20 171.10 171.80 -0.4 RES 21 169.20 174.70 -3.3 RES 22 168.60 173.30 -2.8 RES 23 176.60 173.29 1.9 RES 24 168.20 166.85 0.8 RES 25 157.90 154.94 1.9 RES 26 154.30 155.23 -0.6 RES 27 138.50 140.71 -1.6 RES 28 127.30 125.82 1 .2 RES 29 128.80 126.57 1.7 RES 30 111.60 115.72 -3.7 RES 31 113.20 110.72 2.2 RES 32 110.00 109.87 0.1 RES 33 107.60 108.22 -0.6 RES 34 101.90 101.43 0.5

Example 4c. continued.

82

Page 70: New Jersey Geological Survey Open-File Report OFR 90-1

rcsq= 0.00010 11 norm= 0.00751

RES 3 1/34 0.83 0.9642 0.0355 0.0002 0.0002-0.0004-0.3495 0.0001 -0.0002 0.0002 RES 3 2/34 0.82 0.9430 0.0565 0.0001 0.0003-0.0003-0.5024 0.0001 -0.0001 0.0002 RES 3 3/34 0.83 0.9466 0.0530 0.0001 0.0002-0.0003-0.4690 0.0001 -0.0001 0.0002 RES 3 4/34 0.82 0.9179 0.0815 0.0001 0.0002-0.0003-0.6273 0.0001 -0.0001 0.0002 RES 3 5/34 0.83 0.8852 0.1140 0.0001 0.0002-0.0002-0.7339 0.0001

0.0000 0.0002 RES 3 6/34 0.83 0.8482 0.1508 0.0000 0.0001-0.0001-0.7789 0.0001

0.0000 0.0001 RES 3 7/34 0.87 0.8105 0.1882 0.0000 0.0001-0.0001-0.7746 0.0002

0.0000 0.0001 RES 3 8/34 0.88 0.7675 0.2309 0.0000 0.0001-0.0001-0.7450 0.0003

0.0000 0.0001 RES 3 9/34 0.88 0.7198 0.2784 0.0001 0.0001-0.0001-0.7034 0.0004 -0.0001 0.0000 RES 3 10/34 0.83 0.6703 0.3277 0.0001 0.0001-0.0001-0.6576 0.0008 -0.0001 0.0001 RES 3 11/34 0.88 0.6141 0.3836 0.0002 0.0001-0.0001-0.6045 0.0013 -0.0001 0.0000 RES 3 12/34 0.88 0.5525 0.4449 0.0003 0.0001 0.0000-0.5454 0.0023 -0.0002 0.0001 RES 3 13/34 0.88 0.4916 0.5054 0.0005 0.0001 0.0000-0.4863 0.0039 -0.0004 0.0001 RES 3 14/34 0.88 0.4266 0.5699 0.0009 0.0002 0.0000-0.4230 0.0070 -0.0007 0.0001 RES 3 15/34 0.88 0.3627 0.6329 0.0016 0.0002-0.0001-0.3604 0.0123 -0.0014 0.0002 RES 3 16/34 0.93 0.3635 0.6322 0.0016 0.0002 0.0000-0.3611 0.0123 -0.0014 0.0002 RES 3 17/34 0.88 0.2983 0.6959 0.0030 0.0004 0.0000-0.2969 0.0224 -0.0025 0.0003 RES 3 18/34 0.88 0.2397 0.7519 0.0054 0.0008 0.0000-0.2390 0.0395 -0.0046 0.0005 RES 3 19/34 0.93 0.1829 0.8036 0.0100 0.0015 0.0001-0.1826 0.0709 -0.0086 0.0010 RES 3 20/34 0.93 0.1835 0.8031 0.0100 0.0015 0.0000-0.1832 0.0707 -0.0086 0.0010 RES 3 21/34 0.94 0.1311 0.8456 0.0188 0.0030 0.0001-0.1310 0.1243 -0.0163 0.0019 RES 3 22/34 0.93 0.0854 0.8736 0.0339 0.0057 0.0002-0.0854 0.2041 -0.0299 0.0036 RES 3 23/34 0.93 0.0862 0.8729 0.0337 0.0057 0.0002-0.0863 0.2028 -0.0297 0.0036 RES 3 24/34 0.94 0.0413 0.8845 0.0618 0.0113 0.0005-0.0412 0.3208 -0.0552 0.0075 RES 3 25/34 0.93-0.0017 0.8661 0.1115 0.0229 0.0011 0.0018 0 .. 4654 -O.iOl6 0.0156 RES 3 26/34 0.94-0.0002 0.8662 0.1103 0.0228 0.0012 0.0005 0.4606 -0.1004 0.0155 RES 3 27/34 0.88-0.0349 0.8049 0.1840 0.0442 0.0024 0.0353 0.5788 -0.1709 0.0314 RES 3 28/34 0.94-0.0553 0.6786 0.2876 0.0851 0.0053 0.0559 0.6078 -0.2726 0.0638

EXample 4c. continued.

83

Page 71: New Jersey Geological Survey Open-File Report OFR 90-1

RES 3 29/34 0.93-0.0538 0.6845 0.2820 0.0833 -0.2671 0.0625 RES 3 30/34 0.93-0.0523 0.5079 0.3868 0.1481 -0.3727 0.1176 RES 3 31/34 0.93-0.0319 0.3223 0.4491 0.2407 -0.4380 0.2031 RES 3 32/34 0.93-0.0130 0.1988 0.4352 0.3444 -0.4268 0.3061 RES 3 33/34 0.94-0.0047 0.1259 0.3552 0.4668 -0.3480 0.4338 RES 3 34/34 0.94-0.0060 0.0797 0.2300 0.6057 -0.2227 0.5824

Iteration' 3 ammu= 0.010

no. eigenvalue

1 4.2549 2 3.0556 3 1.5716 4 0.8605 5 0.4893 6 0.3573 7 0.0046 8 0.0003 9 0.0001 parameter increments 1 -0.0006 2 0.0002 3 0.0003 4 0.0006 5 0.0001 6 -0.0004 7 -0.0006 8 -0.0003 9 0.0006

old parameter log new parameter

19.78 1.2962 19.75 200.39 2.3019 200.48

16.19 1.2092 16.20 502.32 2.7010 502.99

17.16 1.2345 17.17 0.80 -0.0967 0.80

49.44 1.6941 49.37 15.97 1.2032 15.96 60.27 1.7801 60.34

field data theoretical pct di ff

RES 1 23 .. 60 23.07 2.2 RES 2 25.70 25.46 0.9 RES 3 24.30 24.99 -2.9 RES 4 28.10 28.72 -2.2 RES 5 34.40 33.87 1.6 RES 6 40.20 40.82 -1.6

Example 4c. continued.

0.0052

0.0104

0.0198

0.0333

0.0548

0.0886

0.0545

0.0529

0.0324

0.0133

0.0049

0.0062

log

1.2956 2.3021 1.2095 2.7016 1.2347

-0.0971 1.6934 1.2030 1.7806

0.6040

0.4964

0.2871

o . 1240

0.0531

0.0554

Page 72: New Jersey Geological Survey Open-File Report OFR 90-1

RES 7 49.70 48.80 1.8 RES 8 58.20 58.50 -0.5 RES 9 67.70 69.51 -2.7 RES 10 80.70 80.98 -0.3 RES 11 92.80 93.83 -1.1 RES 12 112.10 107.53 4.1 RES 13 121.90 120.58 1 . 1 RES 14 137.10 133.78 2.4 RES 15 149.00 145.87 2.1 RES 16 145.30 145.70 -0.3 RES 17 152.90 156.90 -2.6 RES 18 161.70 165.54 -2.4 RES 19 177.10 171.91 2.9 RES 20 171.10 171.83 -0.4 RES 21 169.20 174.73 -3.3 RES 22 168.60 173.32 -2.8 RES 23 176.60 173.31 1.9 RES 24 168.20 166.85 0.8 RES 25 157.90 154.92 1 .9 RES 26 154.30 155.21 -0.6 RES 27 138.50 140.69 -1.6 RES 28 127.30 125.82 1.2 RES 29 128.80 126.57 1.7 RES 30 111. 60 115.76 -3.7 RES 31 113.20 110.82 2.1 RES 32 110.00 110.01 0.0 RES 33 107.60 108.39 -0.7 RES 34 101.90 101.61 0.3

rcsq= 0.00010 11 norm= 0.00749

****************** statistics *****************

NSR= 3.64192314E-02

undamped 95% confidence intervals

low P 21.45319366

205.41310120

parameter. high P. 19.75089073

200.47969055 16.19998932

502.98910522 17.16542053

++++++++++++++++

0.79964674 49.36508942 15.95705032 60.34323120

V-aatrix

++++++++++++++++ ++++++++++++++++

0.92816544 ++++++++++++++++ ++++++++++++++++ ++++++++++++++++

18.18366623 195.66476440

O.OOOOOOOOE-OI O.OOOOOOOOE-Ol O.OOOOOOOOE-Ol

0.68892342 O.OOOOOOOOE-OI O.OOOOOOOOE-Ol O.OOOOOOOOE-OI

-0.6000 0.4863-0.1562 0.2308-0.5572 0.1239-0.0011 0.0000 0.0000 -0.6050-0.6501 0.3370-0.2766-0.1016 0.1048-0.0010-0.0001 0.0000 -0.0570-0.1896-0.4526 0.1280 0.1782 0.4593-0.0652-0.5411 0.4470 -0.0253-0.0982-0.4849-0.3694-0.1445-0.3095 0.1342 0.4597 0.5217 -0.0021-0.0094-0.0571-0.0586-0.0300-0.0801-0.9883 0.0942 0.0190

0.4982-0.3524 0.0352 0.1354-0.7524 0.2048-0.0015-0.0001 0.0001 -0.1360-0.3627-0.1562 0.7370 0.0615-0.5276 0.0110 0.0116-0.0071

0.0538 0.1803 0.4423-0.1150-0.1761-0.4680-0.0165-0.5110 0.4943 -0.0210-0.0834-0.4445-0.3732-0.1576-0.3480 0.0261-0.4751-0.5323

Example 4c. continued.

86

Page 73: New Jersey Geological Survey Open-File Report OFR 90-1

1.0000 1.0000 1.0000 1.0000 0.9999 0.9998 0.0001 0.0000 0.0000

final result:

field model pct di ff ab/2 mn current voltage

23.6 23.1 2.2 0.80 0.3 1.0000 3.6540 25.7 25.5 0.9 1.00 0.3 1.0000 2.5080 24.3 25.0 -2.9 1.00 0.6 1.0000 5.1020 28.1 28.7 -2.2 1 .26 0.6 1.0000 3.5820 34.4 33.9 1.6 1.58 0.6 1.0000 2.7340 40.2 40.8 -1.6 2.00 0.6 1.0000 1.9620 49.7 48.8 1.8 2.50 0.6 1.0000 1.5410 58.2 58.5 -0.5 3.16 0.6 1.0000 1.1230 67.7 69.5 -2.7 4.00 0.6 1.0000 0.8130 80.7 81.0 -0.3 5.00 0.6 1.0000 0.6190 92.8 93.8 -1.1 6.31 0.6 1.0000 0.4460

112.1 107.5 4.1 8.00 0.6 1.0000 0.3350 121.9 120.6 1.1 10.00 0.6 1.0000 0.2330 137.1 133.8 2.4 12.60 0.6 1.0000 0.1650 149.0 145.9 2.1 15.80 0.6 1.0000 0.1140 145.3 145.7 -0.3 15.80 2.0 1.0000 0.3720 152.9 156.9 -2.6 20.00 2.0 1.0000 0.2440 161 .7 165.5 -2.4 25.00 2.0 1.0000 0.1650 177. 1 171. 9 2.9 31.60 2.0 1.0000 0.1130 171.1 171.8 -0.4 31.60 4.0 1.0000 0.2190 169.2 174.7 -3.3 40.00 4.0 1.0000 0.1350 168.6 173.3 -2.8 50.00 4.0 1.0000 0.0860 176.6 173.3 1.9 50.00 8.0 1.0000 0.1810 168.2 166.8 0.8 63.10 8.0 1.0000 0.1080 157.9 154.9 1 .9 80.00 8.0 1.0000 0.0630 154.3 155.2 -0.6 80.00 16.0 1.0000 0.1240 138.5 140.7 -1.6 100.00 16.0 1.0000 0.0710 127.3 125.8 1 .2 126.00 16.0 1.0000 0.0410 128.8 126.6 1.7 126.00 32.0 1.0000 0.0840 111 .6 115.8 -3.7 158.00 32.0 1 .0000 0.0460 113.2 110.8 2.1 200.00 32.0 1.0000 0.0290 110.0 110.0 0.0 250.00 32.0 1.0000 0.0180. 107.6 108.4 -0.7 316.00 32.0 1.0000 0.0110: 101.9 101.6 0.3 400.00 32.0 1.0000 o . 0065.

final parameters

layer 1 resistivity= 19.75089073 layer 2 resistivity= 200.47969055 layer 3 resistivity= 16.19998932 layer 4 resistivity= 502.98910522 layer 5 resistivity= 17.16542053 layer 1 thickness= 0.79964674 2.62351298 layer 2 thickness= 49.36508942 161.95895386 layer 3 thickness= 15.95705032 52.35252762 layer 4 thickness= 60.34323120 197.97647095

rcsq= 0.00010 11= 0.00749 iterations completed= 3 time at end= 10 35 18

Example 4c. continued.

88

Page 74: New Jersey Geological Survey Open-File Report OFR 90-1

• ...

plot version 2.26 Inversion Software project line= test4.plt 10:46:28 03-22-1990

number of data points= 68 scale is .5714286 cycles per inch

, "'"'''' 1000 - .1 1

100

10

plot complete

• ; •

!!

I , " " , . 1 1

, """ 10

, , " " , 10

Example 4d. Plot of output plot file (test4.plt) using PLOT.

, , " " , 100

, , " " , 100

, , ,

, , ,

Page 75: New Jersey Geological Survey Open-File Report OFR 90-1

I

.0\

EIolfUk14 _..L

" ~ .",

::> lBB .",

~ ~

.",

~ Ql >..

~ ~ 1B Ql >.. ~ ~ ~ ~

DO ++++++++ DO 00 0 0 t+-~---- ++ o +.- .,.- ----------ti~ .h. ±

___ 0 .~ar-6"[j u .J:;l.o -----~+ 0 0 ~/--........ \

..J,J" --_-.. 1=1 .1' .... f,.:''!"" ". t:::l 0 0' .\ ••

-i:--:f:-+" ----... -.-." ... _.... 0 0 BoB 0 ~/" '. ---... "J -.._----'",_ ...

I "" I 1 1B IBB

ab/2 (~)

"...,

14 ~ E

test3.~od

status**>sys ~atrix r 41 G8 esti~. co~pletion:

Example 5. Graphics screen for mode 5 (using test3.mod).

+ o

resistivity data IP data

resist calculated IP calculated

iteration= BI 3 RCSQ=B.B4981 11=B.1641

rho chg thk(~)

16.BB * 8.B * 0.6 1GB.BB * 4.B * 40.B

IG.BB * 12.B * 16.B * 4BB.B8 * 4.B * 40.B * 16.B8 * 12.B

h ~ s 8 12 27 ~u= 8.81

Page 76: New Jersey Geological Survey Open-File Report OFR 90-1

• 4D

,.., £ I

] 1888 o

"wi

" .tJ ."" :)

.""

.tJ 188 ~

."" ~ nl ~

.tJ ~ nl ~

IB ~ ~ ~ ~

8.81 " III

1

test2.nod status**>sys natrix

tine (ns) B.l

I I I II III

IB ab/2 (1'1'1)

r 21 88

1 II 1/ II

,.., 14 ~

£ "wi

12 " .tJ .""

18 1""'4

."" "" ~ * 8 ~ * ~

* ~ 6 ~ * (J

* 4 .tJ

~ nl ~

2 ~ ~ ~ ~

8 ute

estiM. cOMpletion:

Example 6. Graphics screen for mode 6 (using test2.mod).

<) TEM data + res i st i v i ty data o IP data

--- TEM ca leu lated resist calculated

--- IP calculated

iteration= 81 3 RCSQ=8.83969 11=8.1516

rho chg thk(l'tI) 16.B8 * 8.8 * 6.6

16B.B8 * 4.8 * 46.8 16.88 * 12.B * 16.B

4HH.BB * 4.8 * 40.B 16.88 * 12.B

h I'tI S

1 21 57 MU= e.81

Page 77: New Jersey Geological Survey Open-File Report OFR 90-1

... o

Goon!c. Ellx7 IE" d.t. 1.011 PROlE" 10990 •. o 0 0 0 0

209 800 ONH HOR XIL .10. RXA' 31.1 209 3911.1 10S0 1 U 2.1 38 38 31.4 17 lS.4 8.1 7.7 17 6.1 -3.1 -2.9 m m 533

209 800 1m OPR REF h Sa 10-1115 1699.3 1007 S12.3 302.7 182.9101.815 S8.1 36.025 18.S 11 5.63 3.17 1.88 .SS .17 .935000 .62 .69 .m .395 .0012 3.5 sm

209 800 I7NZ OPR REF h Sa 1 0-1116 1681.5 1000.1 538.1 301.4 180.3 102. m 56.9 33.m IUS 11.0lS S,91 3.12 1.51 1.91 1.3 .mooo .sm .111S .2m .6775 .0012 U sm

209 800 IINZ OPR REF h Sa 10. 1117 1683.6 m.l 537.1 197.5 180.3 IOU 59.S 34.115 18.1 10.015 6.3S US .91 .83 .81 .61 .615 .665 .9115 .31 .0041 3.5 m5

109 800 19HZ OPR REF v Sa 1 0_ 1118 6811.1 6SS0 5081.1 1918.9 1731.5 965.3 531.3 m.m 183.515 105.115 61.11 3US 19.53 10.22 s.tiI 1.6815 1.00lS .705 1.0615 .m .0011 3.5 sm

209 SOD 50NZ OPR REF v tia 1 0-1119 3S71.3 1158.3 1363.4 751.8 111.1 113.2 134.6 19.975 16.1 26.315 15.15 1.8 1.55 1.45.165000 .33 .1315 .om .0625 .0012 3.5 561S

109 800 SINZ OPR REF v 6.10. 1110 3SS3.1 1441.7 mu 750.1 111.2 112.2 133.6 79.915 4U5 16 15.38 9.01 1.11 2.71 1.45 .5875 .415 .305 .125 .0825 .0012 3.5 5615

209 800 51NZ OPR REF u 1.10-1121 6680 6145.1 mu 1176.7 1389.1693.675 m.35161.825 76 32.9 16.58 8.93 1.66 2.65 1.57 .sm .165 .155 .135 .07 .0042 3.5 5615

109 800 53HZ OPR REF u 1.10' 1421 6680 6148.3 3910.1 1271.4 1387.1693.025 m.35161.825 76 32.9 16.558.90000 4.tiI 1.65 1.57 .S515 .165 .155 .1375 .07 .0042 3.5 m5

m SOD 54NZ OPR REF h 5.10_ 1431 2909 1713.8 922.7 521.2 311.2181.675103.175 61.25 34.05 18.25 9.91 5.34 2.12 1.07 .48 .1775 .0825 .02 .0175 .0115 .0550 16 5615

209 800 55HZ OPR REF h 5.10-1132 1926.1 1721.7 916.7 522.6 315.9 181.75 IOU 60.915 34.1 18.25 10.01 5.3S 2.51 1.11 .56 .1S15 .105 .05 .005 .om .0550 16 5615

209 800 S6NZ OPR REF. hID-1134 116.4 501.8 165.9 140.1 75 35.615 15.975 6.5 1.275 -.4 4.01 -.33 -4.11 -1.95 2.23 -1.6215 1.7625 -.1275 .03 .m .0550 16 5625

209 800 57HZ OPR REF. 1010-IllS 851.7 505.5 269.9 113.5 77.7 37.25 16.1 6.5 2.075 1.075 .68 1.4 3.11 -.11 -1.63 .0115 -.6115 -.295 .165 .3125 .0550 16 5615

209 800 58NZ OPR REF. 8110' 1136 156,9 508.1 271.1 1Il.5 79 38.1 18.2 7.275 1.6 -1.815 .7 .H 1.01 U8 .39 -1.19 -2.1175 -.175 .53 -.555 .0550 16 5625

m 800 59NZ OPR REF 1 1.10. 1137 16.7 C6.1 20.5 6.5 .1 .075 U15 7.6 -8.275 -.16 3.16 -5.59 -6.S9 -.32 .11 -.725 -.32 1.61 .m .0550 16 sm

209 800 60NZ OPR REF 1 1.10. 1138 IU 48.9 13 10.4 -.025 -2.515 -1.725 .075 -7.025 -6.U -3.06 -U -1.99 1.1 -.46 .36 -.33 -.905 -.0175 .0550 16 5625

209 800 61NZ OPR REF 1 1010-1139 93.9 53.5 30.6 16 1.4 -.025 -5.1 -6 -6.25 -us 4.37 us -4.32-1.98000 1.53 . illS -.401S -.14 .lm .71 .OSSO 16 ms

209 800 62HZ OPR REF u 7. 8. o 98.5 56.1 35 19.6 2.m -6.075 -7.m -11.225 -13.725 -12.7 1.71 -20.02 -16.518.S3000 1.112S -.8m .m -.ms -2.6675 .0550 0 16 5615

XXXXXX 0 98.5 56.8 35 19.6 2.m -6.015 -7.725 -11.21S -13.725 -12.7 1.71 -20.02 -16.548.S3000 1.1725 -.8m .m -.1615 -2.661S .0011

Example 7a. Data file (readtest.dat) created by the Geonics GSPx7 program.

Page 78: New Jersey Geological Survey Open-File Report OFR 90-1

C:\>read

read.for

This program reads the data file created by the Geonics GSPx7 Transient EM Data Handling & Modelling program (version December 1988), and writes data files in the NJGS Standard Data Format (defined in Sandberg 1988)

Enter the filename of the data file created by the Geonics PROTEM program

readtest.dat

Enter Choice: 1 use all default values in the data file 2 prompt for current, Tx loop size, and TIO time

for each data file 3 only prompt for current, Tx loop size, and TIO time

once for all data files to be created

Enter Choice: 1 prompt for line and station number for each

data file 2 use same line number and sequentially add to each

station number for subsequent files to be created

opening file readtest.dat first record= Geonics EMx7 TEM data from PROTEM logger.

Enter output filename for sounding dataset number

patem6h.dat

Enter line number [format(a5») and station number [format(a6») for record desired, separated by a carraige return

800 53N

line= 800 station= 53N Read another sounding data set? (yes=l,no=O)

opening file readtest.dat first record= Geonics EMx7 TEM data from PROTEM logger.

Enter output filename for sounding dataset number

patelll6j.dat 2

3

o

Enter line number [format(a5») and station number [format(a6») for record desired, separated by a carraige return 800

55N line= 800 station= 55N enter code:

low f coil. EM57 or EM37 Tx 3 low f coil, EM47 Tx = 4 high f coil. EM47 Tx 5

Read another sounding data set? (yes=l,no=O)

Execution terminated 0

C: \ >

Example 7b. READ session where readtest,dat is input.

71

Page 79: New Jersey Geological Survey Open-File Report OFR 90-1

7 2042.29309082 1879.73510742 12]9.90332031

694.44079590 424.08154297 211.88027954 101.91593170

51.30955505 23.23567009 10.05859947 5.05987263 2.72101903 1.41859877 0.81019115 0.48000005 0.26216564 0.14216562

7.79617876£-02 4.20382209£-02 2.14012749£-02

Example 7c.

3 17.55660057 10.33020020 5.56020021 3.13560009 1.89540005 1.09050000 0.62040001 0.36585000 0.20460001 0.10950001

6.00600019£-02 3.22800018£-02 1.50600001£-02 6.84000039E-03 3.36000021E-03 1.51500001£-03 6.30000024E-04 3.00000014E-04 3.00000011£-05 1.50000005£-05

Example 7d.

1 3.50000000 4.19999981 75.00000000

Output data file patem6h.dat from READ.

5 16.00000000 55.00000000 75.00000000

Output data file patem6j.dat from READ.

72

Page 80: New Jersey Geological Survey Open-File Report OFR 90-1

written by: S. K. SaDdber,. NJGS veraJon 2.00

J •• t reviled: 'ebruary 20. 11'0

Enter IDput PILENANE pate.lh.dat

Enter output PILENANE pateaa.plt

1

o

plot otop fDnctlon aoy.ptotlc LATE TINE r.olotlvlty? (yeo-I.no-O)

plot otep function .Oy.ptotlc EARLY TINE reolotlvlty? (yeo-I.no-O)

look for oolotlono on which branch? (I-EARLY.2-LATE) 2

o

I. there. turnotf t1 •• error to account for? (yeo-I.Do-O)

input dat •• et-pateeSh.dat output plotflle-pat •• I.plt

ch tie.(.a.c) late t rea reliltivJty no. iter.

1 0.007 114. I 25.1 15 2 0.009 '77.8 DO loIn 18 not 3 0.012 83.4 21.2 8 4 0.011 57.8 28.0 7 5 0.020 li4.8 32.4 5 8 0.028 55.8 38.' 5 '7 0.034 58.8 '1.2 5 8 0.043 14.8 53.3 5 II 0.055 '71.11 62 .1 5

10 0.088 84.'7 '78.1 , II 0.088 83.' 88.8 , 12 0.101 88.2 82.5 4 13 0.138 89.2 11'.1 , 14 0.115 87.0 t3 .5 3 15 0.219 114 .8 81.8 3 11 0.280 114 . 0 111.8 3 17 0.354 85.6 '3.8 a 18 0.441 118.8 87.5 3 19 0.561 100.0 88.8 3 20 0.707 106.7 105.7 3

Add anot.ber data nt? (y .. -l. 00-0)

Enter Dew dat •• et D •••

pate.8J. dat

Input dat ••• t-pat.e6j.dat Dutput plotflle-pate.8.plt

ch ti.e(uec) late t r .. .. olot1vtty DO . Uer.

branch elope

late t -0.02 applicable late t -0.33 late t -0.78 late t -0.87 late t -1.15 lat. t -1.26 late t -1.33 late t -1. 38 late t -1.'3 lat. t -1. 45 late t -1. '6 late t -1.41 late t -1.41 late t -1.'8 late t -1. 48 late t -1.48 late t -1. '8 late -1.48 late t -1. "

branch alope .......•.....................•.............•.......................•......•. 1 0.087 llO.l 11.2 , late t -1. 'Ii 2 0.108 108.' 15.8 , late t -1.'8 a 0.138 108.8 .1.8 , late t -1.41 , 0.174 108.' 15.8 , lat. t -1.41 5 0.218 108.1 87.3 3 late t -1.41 8 0.277 101.8 .... 3 late t -1. 48 1 0.353 11.1 11.1 3 late t -1.'8 I 0.441 111.2 87.5 3 late t -1. '8

• 0.581 15.11 11.2 3 late t -1.'8 10 0.'708 89.2 82.'7 3 late t -1.48 II 0.185 105.5 II.' '3 late t -1.50 12 1.070 ll2.0 101.1 3 late t -1.50 13 1.3'0 121.1 ll1.8 3 late t -1.50 14 1.750 131.8 135.0 3 late t -1.50 15 2.180 153.' 150.0 3 late -1. 50 18 2.120 171. 2 188.2 3 late -1.50 11 3.580 201.' 205.' 3 late t -1. SO 18 4.370 2U.8 240.0 3 late t -\.50 18 Ii .540 158.8 151.8 5 late t -1.50 20 '7.040 108.1 102.0 3 late t -1. SO

Add anotber data a.t? 1,..O-1.DO-O) 0

[a.cutton t.eraJnated 0

c: \ >

Example 7e. RAMPRES2 session creating patem6.plt

73

Page 81: New Jersey Geological Survey Open-File Report OFR 90-1

plot version 2.26 Inversion Software project line= patem6.plt 11:28:19

number of data points= 79 scale is .5882353 cycles per inch

, "'"'''' , , " " , , , " " , 1000 - .000001 .00001 .0001

" + ... 100 - . ... • -. -; + -- + -;

x x X

x X

10 , , " , " , , , , " II ! , " " ,

plot complete .000001 .00001 .0001

Example 7f. Plot of patem6.plt created in example 7e.

03-22-1990

.001

.001

• • • •

, , , ,

• •

, , , , I

Page 82: New Jersey Geological Survey Open-File Report OFR 90-1

APPENDIX II

Program Listings

75

Page 83: New Jersey Geological Survey Open-File Report OFR 90-1

10 rem 20 rem 30 rem 31 rem 36 rem 40 rem 50 rem 60 rem 70 rem 71 rem 72 rem 73 rem 80 rem

PROGRAM LISTING - T47INPUT.BAS

t47input.bas

version 1.0 February 28. 1989 supercedes teminput.bas in NJGS Open-file Report 88-1

by Stewart Sandberg. NJGS

This program is for data input and reduction for gain with output to be read by rampres.exe for apparent resistivil calculation.

Output is in NJGS Standard TEM Data Format (see NJGS OFR 88-

100 print "field data input routine" 110 print 120 input "enter the data filename to be created";a$ 130 print "output will go to ";a$ 140 open a$ for output as 1 150 print 160 print "enter code for transmitter base frequency" 161 print " 162 print " 163 print " 164 print " 165 print " 166 print " 167 print " 168 print " 169 input " 170 print"

low (3Hz or La setting on Rx) med (7.5Hz or MD setting on Rx) high (30Hz or HI on Rx) with:"

low f coil. EM57 or EM37 Tx low f coil. EM47 Tx high f coil. EM 47 Tx

very high (75Hz or VH on Rx) ultra high (315Hz or UH on Rx)

1 "

3 " 4" 5" 6" 7 ";code

178 input "enter transmitter loop side dimension (m) ";tx 179 input "enter gain from receiver switch setting ";gain 180 input "enter current (amperes) ";ai 190 input "enter ramp turn-off time (microS) "; toff 192 print#l.code.gain.ai.toff.tx 193 ar=31.4 194 if code<5.0 then ar=100.0 200 for i%=l to 20 210 print "for channel ";i%;".enter reading" 220 input a 2~~0 aa=a*19.2*(2.-(-gain))/ar 260 print#1.aa 270 next i% 280 close 1 290 input "is another data set to be entered? (yes=l.no=O) ";ans 300 if ans=l then goto 110 310 end

76

Page 84: New Jersey Geological Survey Open-File Report OFR 90-1

c c c c c c c c c c c

written by:

last updated:

PROGRAM LISTING - READ.FOR

/ I read. for I ! ____________ I

Stewart K. Sandberg Rutgers University and NJGS

2/22/90

c This program reads the data file created by the Geonics c GSPx7 Transient EM Data Handling & Modelling program c (December 1988), and writes data files in the c NJGS Standard Data Format (defined in Sandberg 1988, see c also this report, section "BASIC program T47INPUT"). c

c

c

character*1 comp,freq,red,pol,a(50),stain2,sta2 character*3 mode,sync character*4 date character*5 line,linein character*15 file1,file2 character*17 com character*25 begin(2) integer code,gain,stain1,sta1 dimension anum(25)

write(O,200) write(O,*)' Enter the filename of the data file' write(O,*)' created by the Geonics PROTEM program' read(O,100)file1 open(9,file=file1) write(O,300) read(O,*)nans write(O,350) read(O,*)nansx if(nans.ne.3)go to 10 write(O,*)' Enter current (Amp), Tx loop size (m),' write(O,*)' and T/O time (microseconds) in free format' read(O, *)ai ,aI, toff

10 n=o

C loop on data sets C

20 n=n+1 read(9,400)(begin(i) ,i=1 ,2) read(9.600)(anum(i),i=1,25) write(O.500)file1, (begin(i) ,j=1,2) write(O,*)'

77

Page 85: New Jersey Geological Survey Open-File Report OFR 90-1

c

c

write(O,*)' Enter output filename for' write(O,*)' sounding dataset number' ,n read(0,100)file2 open(10,file=file2) write(O,*)' if(nans.ne.2)go to 30 write(O.*)' Enter current (Amp), Tx loop size (m).' write(O,*)' and TID time (microseconds) in free format' read(O,*)ai,al,toff

30 continue if(nansx.eq.1.or.n.eq.1)write(0,800) if(nansx.eq.1.or.n.eq.1)read(0,900)linein,stain1,stain2 if(nansx.eq.2.and.n.gt.1)stainl=stain1+1

write(O,*)' line= ',linein,' station= ',stainl,stain2

c read header record c

c

read (9,1000) (a ( i ) , i = 1 ,50) read(9,600)(anum(i) ,i=1,25)

40 read(9,700,end=999)date,line,sta1,sta2,comp,mode,sync,freq, +gain,red,integ,pol,com

c read data record c

c

read(9,600) (anum(i) ,i=l ,25) if(line.ne.linein)go to 40 if(stal.ne.stain1)go to 40 if(sta2.ne.stain2)go to 40 if(nans.eq.1)ai=anum(24) if(nans.eq.1)al=(anum(25»**0.5 if(nans.eq.1)toff=anum(22)*1000.

c assign code c

c

if(freq.eq. 'u' )code=7 if(freq.eq. 'v' )code=6 if(freq.eq. 'm' )code=2 if(freq.eq.' l' )code=l i f ( f r e q . e q. ' h ' ) w r i t e ( 0 , * ) '. e n t ere 0 de: ' if(freq.eq.'h')write(O,*)' low f coil, EM57 or EM37 Tx if(freq.eq. 'h' )write(O,*)' low f coil, EM47 Tx if(freq.eq.'h')write(O,*)' high f coil. EM47 Tx if(freq.eq. 'h' )read(O,*)code

c write to file c

write(10,*)code,~ain,ai,toff,al

a1'=31.4 if(code.lt.5)ar=100. do 50 j=2,21,1

78

3 ' 4 ' 5 '

Page 86: New Jersey Geological Survey Open-File Report OFR 90-1

aa=anum(J)*19.2*(2.**(float(-gain»)/ar 50 write(10,*)aa

c c file has been created c

c

999 close(unit=10) rewind 9 write(O,*)' Read another sounding data set? (yes=l,no=O)' read(O,*)nnans if(nnans.eq.1)go to 20

c format statements c

c

100 format(a15) 200 format(lx,II,' read.for',I/,

300

350

400 500 600 700 800

900 1000

+'This program reads the data file created by the Geonics' ,I, +'GSPx7 Transient EM Data Handling & Modelling program' ,I, +'(version December 1988), and writes data files in the',l, +'NJGS Standard Data Format (defined in Sandberg 1988)' ,II) format(lx,/,' Enter Choice:',I,

+' 1 use all default values in the data file',/, +' 2 prompt for current, Tx loop size, and T/O time',I, +' for each data file',/, +' 3 only prompt for current, Tx loop size, and TIO time', I +' once for all data files to be created',/) format(lx,I,' Enter Choice:',I,

+' 1 prompt for line and station number for each'.I, +' data file',I, +' 2 use same 1 ine number and sequential 1 y add 1 to each', I +' station number for subsequent files to be created' ,I) format(2a25) formate' opening file ',a15,1,' first record= ',1,2a25) format(25g8.0) format(a4,a5,i5,al,al,2x,a3,lx,a3,lx.al,lx.il,al,i2.al,a17) format(' Enter line number [format(a5)] and station number [format

+(a6)]' ,I,' for record desired, separated by a carraige return') format(a5,I,i5.a1) format(50al)

end

79

Page 87: New Jersey Geological Survey Open-File Report OFR 90-1

PROGRAM LISTING - SLUMBER.BAS

slumber.bas 10 REM 20 REM 30 REM 40 REM 50 REM

Data input routine for Schlumberger resistivity alone or with IP sounding field data.

60 ~EM written by: 70 REM

Stewart K. Sandberg Rutgers University and NJGS

80 REM 90 ~EM version 2.0 October 1989 100 REM 110 PRINT "This program reads Schlumberger resistivity/IP field" 120 PRINT" data for plotting using the plot.bas program," 130 PRINT" or similar plotting routine." 140 PRINT 150 INPUT "Enter the filename of data file to be created";B$ 160 PRINT 170 INPUT "Enter filename for plot data";C$ 180 OPEN B$ FOR OUTPUT AS #1 190 OPEN C$ FOR OUTPUT AS #2 200 INPUT "use different symbols for different MN? (yes=l,no=O)":Y 210 PRINT 220 INPUT "Is the data from the ABEM? (yes=l, no=O)";ABEM% 230 INPUT "is there IP data also? (yes=l, no=O)";IP . 240 PRINT "Enter the observed data in the following form:" 250 IF IP=l THEN GOTO 320 260 IF ABEM%=l THEN GOTO 300 270 PRINT "AB/2 (m), MN (m), V (volt), current (amp)" 280 PRINT "==== ======= 290 GOTO 340 300 PRINT "AB/2 (m), MN (m), R (ohms), current (amp)" 310 GOTO 280 320 PRINT "AB/2 (m), MN (m), V (volt), current (amp), chargeability" 330 GOTO 280 340 TWO=2! 350 IF Y=1 THEN TWO=O! 360 THREE=3! 370 1%=0 380 MNOLD=O 390 1%=1%+1 400 IF IP=O THEN GOTO 440 410 INPUT AB2,MN,DV,IA,CH 420 IF AB2=0 THEN GOTO 610 430 GOTO 470 440 INPUT AB2,MN,DV,IA 450 IF AB2=0 THEN GOTO 610 460 IF Y=O THEN GOTO 500 470 IF MN<>MNOLD THEN TWO=TWO+1! 480 IF TWO=THREE THEN TWO=THREE+1! 490 IF TWO>6! THEN TWO=l!

80

Page 88: New Jersey Geological Survey Open-File Report OFR 90-1

500 IF ABEM%=1 THEN GOTO 530 510 RHOA=3.14159*MN*DV*((AB2/MN)*(AB2/MN)-.25)/IA 520 GOTO 550 530 RHOA=3.14159*MN*DV*((AR2/MN)*(AB2/MN)-.25) 540 DV=IA*DV 550 IF IP=O THEN PRINT#I.AB2.MN.DV.IA;" 1 .. 560 IF IP=1 THEN PRINT#I.AB2.MN.DV.IA.CH 570 PRINT#2.AB2.RHOA.TWO 580 IF IP=1 THEN PRINT#2.AB2.10 A (CH/5!).THREE 590 MNOLD=MN 600 GOTO 390 610 PRINT "no. of points read= "; 1%-1 620 END

81

Page 89: New Jersey Geological Survey Open-File Report OFR 90-1

c c c c c c c c c c c c c c c c c

PROGRAM LISTING - RAMPRES2.FOR

------------------/---------I

RAMPRES2.FOR , I I

\ \

\ \

------------------1---------+----+-------> 1 t1 t2 I I I

c A program to calculate the TEM apparent resistivity at the centel c of a square transmitting loop given the voltage induced in a sma] c concentric receiving loop. The transmitted waveform is a modif!e c step function where the termination is a ramp. Measurements are c assumed to be made with any of the Geonics EM37-3. EM47. or EM57 c TEM systems. c c c c c c c c c c c c c c c c c c c c c c c c c c

Written by:

/ \ I Stewart K. Sandberg I ! Supervising Geophysicist I I New Jersey Geological Survey I I eN 029 ! I Trenton. New Jersey 08625 1

I I I phone: (609) 984-6587 I

\_-----------------------------______ 1

Version 2.00 - original March 22. 1986 - revised November 12. 1986 - revised January 29. 1987 - modified for 75m loop size May 21. 1987 - arbitrary loop size June 1. 1987 - revised for release September 20. 1987 - reviewers comments incorporated May 10. 1988 and

NJGS Open-file report 88-1 issued - updated for new time windows and receiver area of

the EM47 and EM57 - March 1. 1989

82

Page 90: New Jersey Geological Survey Open-File Report OFR 90-1

c c c c

c

- corrected a late-time asymptotic apparent resistivity error - February 20, 1990

character*15 infile,outfile real*8 ff,fO,fl,afac,crud dimension t(20) ,t7p5(20) ,t47(20) ,t47h(20), bd(20) ,v(20) ,t75(20) common /blk1/ delta,tt,amu,a,pmul,tr,id,iflag

c this allows the array afac to be subscripted from 0 to 69 c

common /fctrl/afac(0:69) c c time windows for the Geonics EM37 and EM57 in milliseconds after c bottom of the ramp (30Hz base frequency) c

c

data t/0.087,O.108,O.138,O.174,O.216,O.277,O.353,O.441,O.56I, +0.706,0.865,1.070,1.380,1.750,2.190,2.820,3.560,4.370,5.540, +7.040/

c (7.5Hz base frequency) c

c

data t7p5/0.348,O.432,O.552,O.696,O.864,1.11,1.41,l.76,2.24, +2.82,3.46,4.28,5.52,7.00,8.76,11.3,14.2,17.5,22.2,28.2/

c EM47 (315Hz base frequency) c

c

data t47h/0.0069,O.009,O.0121,O.016,O.0202,O.0263,O.0338, +0.0425.0.0547,0.0693,0.086,0.107,0.138,0.175,0.219,0.280, +0.354,0.441,0.56].0.707/

c EM47 (75Hz base frequency) c

c

data t75/0.049,O.057,O.070,O.084,O.100.0.]26,O.155,O.]90, +0.240,0.300,0.365,0.450,0.580,0.730,0.900,1.14,1.44,1.79, +2.26,2.85/

c EM47 (30Hz base frequency) c

c

data t47/0.100,O.121,O.151,O.187,O.229,O.290,O.366,O.454, +0.574,0.719,0.88,1.08.1.38.1.75,2.19,2.82,3.56,4.37,5.54, +7.04/

write(O,*) I

write(O,*) I

write(O,*) I

write(O.*)' write(O.*) I

write(O.*) , write(O.*) , write(O.*) I

83

I I

rampres2 I ' I I

Page 91: New Jersey Geological Survey Open-File Report OFR 90-1

c

write(O.*) , write(O.*) , write(O.*) , write(O.*) , write(O.*) ,

written by:

last revised:

S. K. Sandberg. NJGS' version 2.00'

February 20. 1990'

c set up the factorial array c

c

c

afac(O)=1.00d+00 do 2 i=1.69

2 afac(i)=dble(i)*afac(i-1)

pi=3.14159 iflag=O amu=pi*.0000004 id=O

1 two=l.

c read data from file made by teminput.bas as device 9 c

c

c c ce

write(O.*)' Enter input FILENAME' read(0.5)infile open(9.file=infile) write(O.*)' Enter output FILENAME' read(O.5)outfile open(10.file=outfile.status='new' )

write(0.602) read(O.*)nans write(O.605) read(O.*)near write(O.606) read(O.*)nbrnch

c gain c ai cramp c al

code for transmitter base frequency (1 = 3hz. 3 = 30hz) receiver gain as a power of 2 (not used in this program) transmitter current in amperes shutoff ramp time in microseconds transmitter loop side in meters

c c Investigate if a goof was made in the field setting the c ramp turnoff time on the receiver (this is not needed most of c the time but when it is this code is very worthwhile) c

add=O.O write(O.*)' Is there a turnoff time error to account for?' write(O.*)' (yes=1.no=0)' read(O.*)yes if(yes.eq.O. )go to 4 write(O.*)' enter time (in microseconds) to add to all time

+gates'

84

Page 92: New Jersey Geological Survey Open-File Report OFR 90-1

read(O,*)add c c read data from the file c

4 read(9,*)ce,gain,ai,ramp,al c c at=area of transmitter loop, ar=effective area of receiver coil c (2 different coils are accounted for) c a=radius of circular transmitter loop c

c

three=two+l. four=two+2. at=al*al if(ce.le.4. )ar=100. if(ce.gt.4. )ar=31.4 a=al/(pi**.5)

c delta is the ramp time in seconds c

c

delta=ramp*.OOOOOI write(O,*) ,

c pmul is a constant to multiply the summation by c

pmul=amu*a*ar*.8862266/(delta*at) c c calculate V(I) which is the voltage received divided by c the current transmitted. c

c c c c c c c c c c c

do 10 i=I,20 read(9,*)bd(i) v(i)=ar*bd(i)/ai

10 continue

go

write(O,604)infile,outfile write(O,*)' ch time(msec) late t res resistivity no. iter.

+ branch slope write(O,*)' ====================================================~=

+======================' ftol=1.0e-l0 xtol=.OOOOl

through z tt ass ear

iflag

key

the 20 channels the mutual impedance in volts/ampere the measurement time in seconds the step function asymptotic early time apparent resistivity. o unless the summation in the subroutine goes greater than 69 terms in which case iflag=l. o on "late" time branch 1 on "early" time branch

85

Page 93: New Jersey Geological Survey Open-File Report OFR 90-1

c

c

do 30 i=l,20 iflag=O z=v(i)*.OOOOOl assear=abs(z)*a*a*a/(3.0*ar) if(ce.eq.1. )tt=t(i)*.Ol if(ce.eq.2. )tt=t7p5(i)*.001 if(ce.eq.3. )tt=t(i)*.OOl if(ce.eq.4 .. or.ce.eq.5.)tt=t47(i)*.001 if(ce.eq.6. )tt=t75(i)*.OOl if(ce.eq.7. )tt=t47h(i)*.001 tt=tt+0.000001*add

c Calculate the late-time resistivity altr(i) and use it as the first c point of a secant method solution to solve for the apparent c resistivity. The secant method is an iterative method c used to solve for the roots of the equation f(t.rho)-z(t)=O. c where z(t) is the impedance (received voltage divided by the c transmitted current). If channel> 1 then instead of altr c we use the previous channel's resistivity solution. c

c

if(bd(i) .eq.O. )bd(i)=-l. bb=bd(i)*O.OOOOOl ztemp=z if(z.lt.O.O)ztemp=-z if(ztemp.lt.1.0e-20)arg=0.0 if(ztemp.lt.1.0e-20)go to 1010 arg=al*al*ar/(ztemp*tt**2.5)

1010 altr=(6.3184e-12)*arg**.6667 if(z.le.O.O)go to 16 zz=alog10(z)

11 if(i.gt.1)go to 13 if(nbrnch.eq.1)xO=alog10(assear) if(nbrnch.eq.2)xO=alog10(altr) go to 14

13 if(xx.eq.0.and.nbrnch.eq.2)save=alog10(altr) if(xx.eq.0.and.nbrnch.eq.1)save=alog10(assear) if(key.eq.1.and.nbrnch.eq.2)save=alog10(altr) if(key.eq.l.and.nbrnch.eq.l)save=alog10(assear) xO=save

14 nc=l

c ff( ) brings back the value of f(t,rho). the mutual impedance fof c this value of time and halfspace resistivity c

c

crud=ff(lO.**xO) if(iflag.eq.l)go to 22 fO=dloglO(crud)

c the second value of resistivity is equal to the first minus .046 c

86

Page 94: New Jersey Geological Survey Open-File Report OFR 90-1

x1=xO-.046 c c Secant method where XO is "old value of rho", Xl is "current c value", and X1+DELTAX is the "new value of rho". c c this begins the loop which performs the secant method solution c

c

15 crud=ff(10.**xl) if(iflag.eq.l)go to 22 fl=dlogl0(crud) deltax=x1-xO

c if f(t,rho)-z is within (+/-) ftol, then we are done because c that's good enough c

c

if(abs(fl).le.ftol)go to 20 deltaf=f1-fO slope=deltaf/deltax

c if the IICW value is the same as the old then there's something wrong c

if(deltaf.eq.O.)go to 22 c c deltax is the increment c nc counts how many iterations of the secant method were done c

c

deltax=(zz-fl)/slope nc=nc+1

c if 20 iterations of the secant method have been done with no c solution. then there isn't one to be had c

c

if(nc.gt.19)go to 16 xO=xl

c Step increment in apparent resistivity is constrained to be C not more than 10% of the current resistivity value in log space. C We don't want to jump onto the other branch of the curve. c

C

C

C

C

c c c c

chek=.I*xl if(abs(deltax).gt.abs(chek))deltax=(deltax/abs(deltax) )*abs(chekJ xl=x1+deltax

If the new apparent resistivity is less than the early time asymptote, then there has been a numerical problem

if(nbrnch.eq.2.and.xl.1t.alogl0(assear))go to 16

Resistivities are in log space for the secant method inversion in order to constrain them to positive values.

87

Page 95: New Jersey Geological Survey Open-File Report OFR 90-1

c

xx=10.**xl if(abs(deltax) .le.xtol)go to 20 fO=fl go to 15

16 write(0,533)i, (tt*1000.) ,altr,nc xx=O. go to 21

c Output to unit 10 as a plot file as the apparent resistivity c versus the time in seconds. c

20 write(10,100)tt,xx,two save=xl

c c if the asymptotic step function responses are to be output c also, then write them out c

c

21 if(nans.eq.l)write(10,100)tt,altr,three if(near.eq.l.and.assear.gt .. 1)write(10,100)tt,assear,four if(xx.eq.O. )go to 30 key=O if(slope.gt.O.O)key=1 if(key.eq.l)write(0,531)i, (tt*1000. ),altr,xx,nc,slope if(key.eq.0)write(0,532)i, (tt*1000.) ,altr,xx,nc,slope go to 30

c error trap c

c

22 write(0,534)i, (tt*1000.) ,altr,nc xx=O.O go to 21

c end of loop on i c

30 continue close(unit=9)

c c Query to find other data sets to plot c

write(O,*)' Add another data set? (yes=1 ,no=O)' read(O,*)no if(no.eq.O)go to 300 two=four+l. if (two. gt. 6. ) two=two-6. write(O,*)' Enter new dataset name' read(0,5)infile open(9,file=infile) go to 4

300 continue endfile 10 close(unit=10)

88

Page 96: New Jersey Geological Survey Open-File Report OFR 90-1

c c format statements c

5 100 531 532 533 534

602

604 605

606 200

format(a15) format(lx,f13.7,f12.2,f10.0) format(lx,i5,f10.3,f13.1,f14.1,i8,' early t' ,f11.2) format(lx,i5,f10.3,f13.1,f14.1.i8,' late t' ,f11.2) format(lx,i5,f10.3,f13.1.7x, 'no soln' ,i8,' not applicable') format(lx,i5,f10.3,f13.1,7x, 'divergent sum' ,i2,

+' not applicable') format(' plot step function asymptotic LATE TIME resistivity?',

+/,' (yes=1,no=0)') format(1x,/,' input dataset=' ,a15,/,' output plotfile=' ,a15) format(' plot step function asymptotic EARLY TIME resistivity?',

+/,' (yes=l,no=O)') format(' look for solutions on which branch? (1=EARLY,2=LATE) ') continue stop end

c c********************************* c Function to evaluate F(t,rho) c********************************* c

c

real*8 function ff(x) real*8 afac,sum,terml,term2,tau,taup,part,part2,s,tol,ss common /blkl/delta,tt,amu,a,pmul,tr,id,IFLAG common /fctrl/afac(0:69) tau=dble((tt+delta)*x/(amu*a*a» taup=dble(tt*x/(amu*a*a» sum=O.

c sum from k=O to infinity c

k=-l 1 k=k+1

term1=taup**(float(k)+1.5) term2=tau**(float(k)+1.5) part= (1. /terml) - (1. /term2) part2=(4.**float(k»*afac(k)*(2.*float(k)+5.)*(2.*float(k)+3.)

c

c this is actually (-l)**k c

ss=dble(1-2*mod(k,2» s=ss*part/part2 sum=sum+s if(k.eq.0)tol=(1.Oe-05)*sum if(dabs(s) .It.tol)go to 50 if(k.gt.69)iflag=1 if(iflag.eq.l)go to 50 go to 1

89

Page 97: New Jersey Geological Survey Open-File Report OFR 90-1

c

50 continue ff=pmul*sum return end

90

Page 98: New Jersey Geological Survey Open-File Report OFR 90-1

c c c c c c c c c c c c

PROGRAM LISTING - EINVRT4.FOR

* *

* *

* *

*

* * *

* * *

EINVRT4

* * * * * *

* * * * * * * * * * *

c This is the main routine of the package einvrt.for which is an c electrical inversion program designed to invert resistivity/IP and c transient electromagnetic (TEM) data for a horizontally stratified c earth. The program will operate in each of the six modes: c c 1) Schlumberger array resistivity only c 2) TEM central loop induction configuration only c 3) Simultaneous Schlumberger resistivity and TEM c 4) Simultaneous Dipole-dipole resistivity and TEM c 5) Simultaneous Schlumberger resistivity and IP c 6) Simultaneous Schlumberger resistivity, IP, and TEM c c This program also will do the forward problem if the number of c iterations to be performed is set equal to zero. c c This program accepts field data files according to the NJGS c standard format (see users guide to this program). Output c consists of these files: c c 1) An input file containing all field data and the initial c guess parameters along with control parameters for c the inversion. This file can be edited with a text editor c and used in subsequent runs eliminating tedious repetition c of inputing inversion parameters. c c 2) A file containing results of the interpretation. c c c c c c c c c

3) A plot file in NJGS standard plotting format (see users guide) .

<oPtional> 4) A theoretical TEM data file in NJGS Standard TEM Data File

Format generated from the final model results.

Version 2.0 consists of adding screen graphics to the code. These

91

Page 99: New Jersey Geological Survey Open-File Report OFR 90-1

c subroutines are from the IBM Graphics Development Toolkit. In c addition, some bugs have been worked out of the version 1.0 code. c c Version 2.1 consists of replacing the SVD algorithm with the c HYSVD.FOR algorithm. c c Version 2.12 changes around the input files and fixes some bugs c in the depth version of the code. c c Version 3.0 consists of implementing the time gates of the c EM47 and the EM57 and making the input file more useable. c This was operational March 9, 1989. c c Version 4.0 consists of implementing options 4, 5, and 6 c and re-arranging the graphics screen to accomodate IP. c Development began May 1, 1989 and was completed Aug. 9, 1989. c c Version 4.0 (distribution) consists of adding c (1) an option to run without graphics (if driver or hardware c is not available), and c (2) an option to generate a theoretical data file (forward c model) using the final model (or initial model c These modifications were begun Sept. 20, 1989 and completed c Sept. 26, 1989. c Some bugs were worked out of the code Feb. 19, 1990 c The graphics screens were modified on March 19,1990 c A bug in the depth parameterization was fixed May 22, 1990 c in subroutine switch c c c c c c c c c c

c

version 4.00 (distribution) May 22, 1990

written by:

Stewart K. Sandberg Rutgers University and NJGS

complex fsave double precision aO,wo,afac integer*2 ihour,iminute,isecond,ihundredsecond,devhandle,

+status character*15 datafl,fileout1,fileplot dimension d(130) ,pO(44) ,p(44) ,ipf(44) ,a(130,44) ,ahold(130,44),

*vv(44,44) ,y(130) ,yo(130) ,altr(60)

c common blocks c

common /blk1/icode,mr,mt,ab2(35) ,amn(35) ,ai(35) ,rhoa(35) ,v(35)' *temv(60) ,tt(60) ,ramp(60) ,ch(35) ,mc

common /blk2/n,rcsqo,rcsq,ifwd,al1

92

Page 100: New Jersey Geological Survey Open-File Report OFR 90-1

c

c

c

common /blk4/eps(130),s4(44),tj(44) common /blk3/s(15),h(14),ara,nah,tau,taup,aak common /save/fsave(283),gsave(283),nsave common /blkcf/ao(61),wo(61) common /fctrl/afac(0:69) common /blk5/bunk,hour2 common /scrn/devhandle,iup common /100p/al,aba(60) common /xxxx/rmax,rmin,cmax,cmin,ab2max,ab2min,tmax,tmin common /xxyy/zeror,zeroip,zeroa,zerot common /blk6/iend,iout,igrf

write(0,610)

pi=3.14159

c set up filter coefficients for Schlumberger resistivity c

do 1 i=1,61 1 ao(i)=dexp(ao(i»

c c set up factorial array for TEM forward routine c

c

afac(0)=1.00d+00 do 2 i=1,69

2 afac(i)=dble(i)*afac(i-1) al=O.O

c Query for pre-existing data file e

e

write(O,*)' Is initial guess and field data already in a file?' write(O,*)' (yes=1,no=0)' read(O,*)ians if(ians.eq.1)go to 10

e get field data and initial guess parameters e e e e e e e c e c c c c c

iend=O

m = total no. of data points (=mr+mt) d(i) = data vector d(1),d(2), ... ,d(mr) = log10(rhoa(i»

for the Schlumberger array, and d(mr+1),d(mr+2), ... ,d(m) = log10(temv(i» for TEM.

n = total no. of parameters pO(i) = initial guess parameter vector ipf(i) = key for fixing of parameters

ie

=1 for hold at value =0 for free to vary

code for using thicknesses or depths =1 for thicknesses =2 for depths

93

Page 101: New Jersey Geological Survey Open-File Report OFR 90-1

call data(m,d,pO,ic) call guess(pO,ipf,ic,icode,metric)

c c set up data file for data and initial guess c

c

write(O,*)' Enter filename for field data and initial guess' read(O,5)datafl open(4,file=datafl)

c set up output file and plot file c

c

write(O,*)' enter filename for output' read(O,5)fileoutl write(O,*)' enter filename for plot' read(O,5)fileplot

c plot symbol defaults c

c

one=2. two=3. three=1. four=4. five=5. six=6.

c khow c

1 means use RCSQ to monitor iterations 2 means use all to monitor iterations

c c c c c metric c c c c igrf c c c iout c c c c

3 means iterate anyway no matter what and hold ammu constant

4 means if new RCSQ > old RCSQ quit immediately

1 means thicknesses or depths will be in meters o means thicknesses or depths on screen and in the input file are in feet

1 uses screen graphics (requires graphics drivers) o echos output file on screen (no graphics)

1-7 creates output data file from final model with corresponding time gates and name "einvrt4x.dat" o doesn't create output data file

c initial default values of khow, ammu, deriv, igrf, and iout c

c

khow=1 ammu=O.IO deriv=O.004 igrf=l iout=O

94

Page 102: New Jersey Geological Survey Open-File Report OFR 90-1

c c c c c c c c c c c

c c c c c c c c c c c c c c

write(4,153)fileoutl,fileplot write(4,100)n,ic,icode,mr,mc,mt,ifwd,metric,igrf,iout write(4,151)al,deriv,ammu,khow write(4,152)one,two,three,four,five,six ncrap=(n+l)/2 if(icode.ge.5)ncrap=(n+1)/3 ncrapl=ncrap+l ncrap2=2*ncrap+1 if(icode.lt.5)ncrap2=ncrap2-1 write(4,120)(pO(i),i=1,ncrap) write(4,120)(pO(i),i=ncrapl, (ncrap2-1» if(icode.ge.5)write(4,120)(pO(i) ,i=ncrap2,n) write(4,110)(ipf(i) ,i=l,n) if(icode.eq.1)go to 6

ab2(i)

amn(i)

ai ( i) v ( i ) rhoa(i)=

ch(i)

Schlumberger resistivity AB/2 (meters) or dipole-dipole n-value Schlumberger resistivity MN (meters) or dipole-dipole a-spacing (meters) resistivity data current (amperes) resistivity data voltage (volts) resistivity apparent resistivity

(ohm-meters) apparent chargeability (milliseconds)

write(4,130) (ab2(i) ,amn(i) ,ai(i) ,v(i) ,rhoa(i) ,ch(i) .i=1 ,mr) if(icode.eq.2.or.icode.eq.5)go to 7

t t ( i ) temv(i)

altr(i) ramp(i) jramp

abaCi)

TEM sample time (milliseconds) TEM voltage in receiver coil divided by

current at transmitter divided by coil effective area (microvolts)

TEM late time apparent resistivity (ohm-meters) TEM current shutoff ramp time (microseconds) no. of TEM datasets corresponding to different base frequencies or different currents and/or ramp times key for what transmitter base frequency and receiver coil area is to be used (see subroutine data or program t47input.bas)

C this part sorts the TEM data C

6 do 888 i=1,mt do 777 j=i+l,mt if(tt(j).ge.tt(i»go to 777 ttemp=t t (i) tt(i)=tt(j) tt(j)=ttemp ttemp=temv(i) temv(i)=temv(j)

95

Page 103: New Jersey Geological Survey Open-File Report OFR 90-1

c

temv(j) =ttemp ttemp=ramp(i) ramp (i) =ramp (j) ramp(j)=ttemp ttemp=aba(i) aba(i)=aba(j) aba(j)=ttemp

777 continue 888 continue

c sorted c

write(4,140)(tt(i),temv(i),aba(i),ramp(i),i=l,mt) 7 go to 30

c c Format statements for file c

c

5 format(a15) 100 format(10i5) 110 format(29i2) 120 format(8f10.2) 130 format(2f10.2,2f10.4,f10.1,f10.2) 140 format(f15.4,e15.6,f5.0,e15.3) 151 format(flO.1,f10.4,f10.3,i10) 152 format(6f10.0) 153 format(2a15)

c Data is already in a file c

c

10 write(O,*)' Enter filename' read(O,5)datafl open(4,file=datafl)

c Input data from pre-existing file c c c c c c c c c c c c c c c c c

icode

mr mc mt ifwd

itno nc =

code for determining which forward routines to use: l=TEM only, 2=Schlumberger resistivity onlY, 3=both TEM and Schlumberger resistivity, 4=TEM and dipole-dipole resistivity, 5=Schlumberger resistivity and IP, 6=TEM, Schlumberger resistivity, and IP.

no. of resistivity data points no. of chargeability data points no. of TEM data points

max. no. of iterations o for forward calculation only

< 0 to only generate theoretical data file (iout > 0) current iteration no.

no. of columns in system matrix, or no. of parameterS which are free to move.

96

Page 104: New Jersey Geological Survey Open-File Report OFR 90-1

c

read(4,153)fileout1,fileplot read(4,100)n,ic,icode,mr,mc,mt,ifwd,metric,igrf,iout m=mr+mt+mc read(4,151)al,deriv,ammu,khow read(4,152)one,two,three,four,five,six ncrap=(n+1)/2 if(icode.ge.5)ncrap=(n+1)/3 ncrap1=ncrap+l ncrap2=2*ncrap+1 if(icode.lt.5)ncrap2=ncrap2-1 read(4,120)(pO(i),i=1,ncrap) read(4, 120) (pO(i), i=ncrapl, (ncrap2-1» if(icode.ge.5)read(4,120)(pO(i),i=ncrap2,n) read(4,110)(ipf(i),i=l,n) if(icode.eq.1)go to 16 read (4,130) (ab2 (i) , amn (i) , ai (i) , v (i) , rho a (i) , ch (i) , i =1, mr) if(icode.eq.2.or.icode.eq.5)go to 20

16 read(4,140)(tt(i),temv(i),aba(i),ramp(i),i=l,mt) 20 if(icode.eq.1)go to 24

do 22 ii=l,mr 22 d(ii)=alog10(rhoa(ii»

if(icode.lt.5)go to 23 do 2222 ii=1,mc

2222 d(ii+mr)=ch(ii)/6.0 23 if(icode.eq.2.or.icode.eq.5)go to 30

c TEM late time resistivity calculation c

c

24 do 25 ii=l,mt arg=al*al/«(tt(ii)*.001)**2.5)*temv(ii)*.000001) altr(ii)=(6.3184e-12)*arg**.6667 d(ii+mr+mc)=alog10(altr(ii»

25 continue 30 continue

c get nc = no. of parameters to be used c

nc=O do 33 i=1,n

33 if(ipf(i).eq.O)nc=nc+l c ******************************************************************** * c c This is a point where you can bailout if you want. c For example: c - the input file has just been created and can now be edited. c

* * * * *

c ******************************************************************** * write(O,*)' go on? (yes=1,no=0)' read(O,*)noyes if(noyes.eq.O)go to 71

c

97

Page 105: New Jersey Geological Survey Open-File Report OFR 90-1

c

open(lO,file=fileoutl) open(ll,file=fileplot) open(13,status='scratch' ) if(icode.eq.2.or.icode.eq.5)iout=0 if(igrf.eq.O)go to 370

c find max and min of chargeability for plot c

if(icode.lt.5)go to 934 cmin=ch(l) cmax=ch(l) do 34 i=2,mc if(ch(i) .gt.cmax)cmax=ch(i) if(ch(i).lt.cmin)cmin=ch(i)

34 continue c ab2

934 if(icode.eq.l)go to 935 ab2max=ab2(1) ab2min=ab2(1) do 35 i=2,mr if(ab2(i).gt.ab2max)ab2max=ab2(i) if(ab2(i).lt.ab2min)ab2min=ab2(i)

35 continue c time

c

935 if(icode.eq.2.or.icode.eq.5)go to 936 tmax=tt(1) tmin=tt(l) do 36 i=2,mt if(tt(i) .gt.tmax)tmax=tt(i) if(tt(i).lt.tmin)tmin=tt(i)

36 continue

c find max and min of resistivity to establish axes on plot c

c

936 rmax=lO.**d(l) rmin=lO.**d(l) do 37 i=2,m if(i.gt.mr.and.i.le.(mr+mc»go to 37 if«lO.**d(i».gt.rmax)rmax=lO.**d(i) if«lO.**d(i».lt.rmin)rmin=lO.**d(i)

37 continue 370 continue

iup=O if (rm in. 1 t . ( 1 .0) . and. rmax .1 t . (3.0) ) i up= 1

c parameters will be in log space c and thicknesses (or depths) will be in meters c

lay=(n+l)/2 if(icode.ge.5)lay=(n+l)/3 do 38 ii=l,n

98

Page 106: New Jersey Geological Survey Open-File Report OFR 90-1

c

if(ii.gt.lay.and.icode.lt.5.and.metric.eq.O) +pO(ii)=0.3048*pO(ii) if ( i i . gt . (2 * lay) . an d . i code. ge . 5 . and. met ric. e q . 0 )

+pO(ii)=0.3048*pO(ii) 38 pO(ii)=aloglO(pO(ii»

if(igrf.eq.O)go to 400

c open screen c

c

call screen(datafl,icode,ifwd,pO,n,ipf,ic,metric) call samu(ammu)

c plot field data on screen c

c

do 40 i=l,m if(i.le.mr)call ssplt(1,2,ab2(i),1,rhoa(i),1,2) if(i.gt. (mr+mc»

+call ssplt(1,6,tt(i-mr-mc),1,(10.**d(i»,1,1) if(i.gt.mr.and.i.le.(mr+mc»

+call ssplt(1,4,ab2(i-mr) ,1, (6.*d(i» ,1,3) 40 continue 400 continue

ipass=O itno=O itnop=O ifirst=l elapse=O.O hour2=0.0 rcsq=O.O

c put a header at the top of the output with the date and time c and the input datafile c

c c c c c

write(10,610) call getdat(ihour,iminute,isecond) write(10,620)iminute,isecond,ihour call gettim(ihour,iminute,isecond,ihundredsecond) write(10,600)ihour,iminute,isecond write(10,615)datafl

get: yo(i) = theoretical data from current version of parameters rcsq = reduced chi-squared from pO parameters

write(10,*)' if(igrf.eq.O)write(O,*) , if(ifwd.lt.O)go to 70 write(lO,*)' initial guess results' if(igrf.eq.O)write(O,*)' initial guess results' hoursl=float(ihour)+(float(iminute)+float(isecond)/60. )/60. call error(pO,ic,yo,d,m,nc,elapse,ammu,ipf)

99

Page 107: New Jersey Geological Survey Open-File Report OFR 90-1

c

al10=al1 call gettim(ihour,iminute,isecond,ihundredsecond) hours2=float(ihour)+(float(iminute)+float(isecond)/60. )/60. elapse=hours2-hoursl if(elapse.lt.0.)elapse=elapse+12. write(10,*)' time to do complete forward= ',elapse,' hours' if(igrf.eq.O)

+write(O,*)' time to do complete forward= ',elapse,' hours' bunk=elapse*nc if(icode.lt.5)go to 820 ibunk=O do 800 i=l,n if(ipf(i).eq.1)go to 800 if(i.le.lay.or.i.gt.(2*lay»go to 800 ibunk=ibunk+1

800 continue if(icode.eq.5)bunk=bunk*(1.-float(ibunk*mr)/float(nc*m» if(icode.eq.6)bunk=bunk*(1.-float(ibunk)/float(nc»

820 if(igrf.eq.1)call bkupck(l) 42 continue

c Get: c

a(i,j) = system matrix nc no. of columns (less than or equal to n depending upon

how many parameters are fixed) c c

c

if(igrf.eq.l)call sline(2) call zjacob(pO,ipf,ic,m,a,nc,yo,d,ifirst,itno,deriv,ammu) if(ifwd.eq.O)rcsqo=rcsq if(ifwd.eq.O)go to 60 itno=itno+l write(10,*) , write(lO,*)' Iteration #',itno if(igrf.eq.O)write(O,*)' if(igrf.eq.O)write(O,*)' Iteration #' ,itno if(igrf.eq.1)call siter(itno)

44 ifirst=O

c protect the a-matrix c

c

do 45 ii=l,m do 45 jj=l,nc

45 ahold(ii,jj)=a(ii,jj)

c Get: c

p(i) = new parameters

c

write(10,730)ammu if(igrf.eq.0)write(0,730)ammu call pnew(d,pO,ipf,n,m,a,p,yo,nc,ammu,ipass,ic,deriv,

+metric,icode)

c the a-matrix has been written over by the u-matrix so things

100

Page 108: New Jersey Geological Survey Open-File Report OFR 90-1

c have to be set straight. c

c

do 48 ii=l,m do 48 jj=l,nc

48 a(ii,jj)=ahold(ii,jj)

c Get: c

rcsq = reduced chi-squared for new parameters rcsqo= reduced chi-squared for old parameters

c

c

if(rcsqo.lt.rcsq.and.itno.gt.l)rcsq=rcsqo call error(p,ic,y,d,m,nc,elapse,ammu,ipf)

c Decide what to do next c

c

if(rcsqo.gt.rcsq.and.khow.eq.l)go to 50 if(all0.gt.all.and.khow.eq.2)go to 50 if(khow.eq.3)go to 50

c At this point, the new squared error is greater than the old so c the mu factor is increased by a factor of two and new parameters care re-calculated. c

if(khow.eq.4)go to 55 ammu=ammu*2. if(igrf.eq.l)call samu(ammu) if(icode.ne.2.and.ammu.gt.0.l0)write(10,*) I divergence has occurre

xd!! ammu=' ,ammu if(icode.ne.2.and.ammu.gt.0.l0.and.igrf.eq.0)

+write(O,*)' divergence has occurred!! ammu=' ,ammu if(icode.ne.2.and.ammu.gt.0.l0)go to 55 if(icode.eq.2.and.ammu.gt.2.00.and.igrf.eq.0)

+write(O,*)' diverged! ammu=',ammu if(icode.eq.2.and.ammu.gt.2.00)

+write(lO,*)' diverged! ammu=' ,ammu if(icode.eq.2.and.ammu.gt.2.00)go to 55 rcsq=rcsqo all=allo ipass=l write(10,*)' changing ammu and recalculating parameters' if(igrf.eq.O)

+write(O,*)' changing ammu and recalculating parameters' go to 44

c c At this point, the square error has decreased during this iteration c The pO parameter vector is updated with the new parameters and the c mu factor is decreased for the new iteration. c

50 do 51 ii=l,n 51 pO(ii)=p(ii)

rcsqo=rcsq a110=a11

101

Page 109: New Jersey Geological Survey Open-File Report OFR 90-1

c

do 52 ii=l,m 52 yo(ii)=y(ii)

itnop=itno if(itno.ge.ifwd)go to 55 if(khow.ne.3)ammu=ammu/2. if(ammu.lt .. 01)ammu=.01 if(khow.ne.3.and.igrf.eq.1)call samu(ammu) go to 42

c Calculate parameter resolution information c

c

55 if(igrf.eq.O)write(O,*)' calculating parameter statistics' call stat(a,pO,m,yo,ipf,nc)

c Output results c

c

60 if(igrf.eq.O)write(O,*)' outputting inversion results to file' call outptt(pO,m,yo,d,itnop,ic,allo) if(icode.eq.2)go to 62 if(yorn.eq.O.)go to 62

c Put field data and model data into a plot file for a plot comparisol c

c

62 if(icode.eq.l)go to 67 do 63 i=l,mr write(11,300)ab2(i),rhoa(i),three

63 write(11,300)ab2(i) ,yo(i) ,five if(icode.lt.5)go to 66

c IP data is plotted as apparent chargeability/5.0 c versus log ab/2. c

64 66

c c c c c c c c c c c

67

do 64 i=l,mc bugga=10.0**(ch(i)/5.0) write(11,300)ab2(i),bugga,one bugga=10.0**(6.0*yo(mr+i)/5.0) write(11,300)ab2(i),bugga,two if(icode.eq.2.or.icode.eq.5)go to 70

TEM data will be plotted as log voltage vs log time. In order to plot TEM data along with the resistivity data, the time axis will have the following key: (This won't be done if there is only TEM data)

1 10 100 1000

.10 msec 1.00 msec

10.00 msec 100.00 msec

factor=1.0 if(icode.ne.1)factor=10.0

]02

Page 110: New Jersey Geological Survey Open-File Report OFR 90-1

do 68 i=l,mt value=tt(i)*factor write(11,310)value,d(mr+mc+i),four

68 write(11,310)value,yo(mr+mc+i),six 70 continue

call gettim(ihour,iminute,isecond,ihundredsecond) write(10,720)ihour,iminute,isecond

c c enter cursor mode and close the workstation c

c

if(igrf.eq.1)status=vencur(devhandle) if(igrf.eq.1)status=vclswk(devhandle)

c output theoretical data to file if iout=1 c

iend=1 call data(m,d,pO,ic)

71 continue c c format statements c

300 format(1x,f10.2,f10.1,f10.0) 310 format(lx,f10.4,f15.6,f10.0) 600 format(1x,' time at beginning= ',3i3) 610 format(lx,//,'

+' +' +'

+' +'

* *

* *', / , *, , / , * , , / ,

* * , , / , * EINVRT4 *, ,/,

+' * *, ,/, +' ***************, , / /, +' written by:' ,/, +' Stewart Sandberg' ,//,

* f J / ,

+' ver. 4.00 5/22/90' ,/1) 615 format(1x,' input filename= ',a15) 620 format(1x,' todays date is ',2i3,i5) 720 format (1x, 'time at end= " 3i3) 730 format(1x, 'ammu=' ,f10.3)

end c c ****************************

subroutine data(m,d,pO,ic) c **************************** c c This routine is part of the electrical inversion program einvrt.for c which was developed to simultaneously invert resistivity and tran­c sient electromagnetic data for a horizontally stratified earth. c eversion 2.0 February 19, 1990 c

103

Page 111: New Jersey Geological Survey Open-File Report OFR 90-1

c written by: c c Stewart Sandberg c NJGS and Rutgers University c c This subroutine reads field data and sets up data vector d(i). c

c

character*15 resfile,temfile dimension d(130), t(20) ,altr(60), t47(20), t473(20), t7p5(20),

+t75(20) ,pO(44) ,p(44) ,pp(44) common /blk1/icode,mr,mt,ab2(35) ,amn(35) ,ai(35) ,rhoa(35) ,v(35),

xtemv(60) ,tt(60) ,ramp(60) ,ch(35) ,mc common /blk2/n,rcsqo,rcsq,ifwd,a11 common /blk6/iend,iout,igrf common /loop/al,aba(60)

c Time windows for the Geonics EM37 and EM57 (updated 2/26/89) c

c

data t/0.087,0.108,0.138,0.174,0.216,0.277,0.353,0.441,0.561, *0.706,0.870,1.080,1.380,1.740,2.160,2.770,3.530,4.410,5.610, *7.060/

c In order to speed up calculation, some of the set of times from c ch 11 to 20 were altered to be a factor of 10 times the first 10 c channels. The true times are: c *0.865,1.07,1.38,1.75,2.19,2.82,3.56,4.37,5.54,7.04 c c EM37 and EM57 7.5 Hz c

c

data t7p5/0.348,0.432,0.552,0.696,0.864,1.11,1.41,1.76,2.24, +2.82,3.46,4.28,5.52,7.00,8.76,11.3,14.2,17.5,22.2,28.2/

c Time windows for the Geonics EM47 (315 Hz base frequency) c

c

data t47/0.0069,0.009,0.0121,0.016,0.0202,0.0263,0.0338, +0.0425,0.0547,0.0693,0.086,0.107,0.138,0.175,0.219,0.280, +0.354,0.441,0.561,0.707/

c EM47 75 Hz c

c

data t75/0.049,0.057,0.070,0.084,0.100,0.126,0.155,0.190, +0.240,0.300,0.365,0.450,0.580,0.730,0.900,1.14,1.44,1.79, +2.26,2.85/

c Time windows for the Geonics EM47-30 (30 Hz base frequency) c

c

data t473/0.100,0.121,0.151,0.187,0.229,0.290,0.366,0.454, +0.574,0.719,0.880,1.08,1.38,1.75,2.19,2.82,3.56,4.37,5.54, +7.04/

pi=3.14159

104

Page 112: New Jersey Geological Survey Open-File Report OFR 90-1

c

if(iend.eq.1)go to 200

Enter code for type of data to be jj=O write(O,*) , write(O,*) , write(O,*) , write(O,*)' write(O,*) , write(O,*)' write(O,*) , read(O,*)icode

inverted'

i=O

1 TEM only' 2 Schlumberger 3 Simultaneous 4 5 6

Simultaneous Simultaneous Simultaneous

if(icode.eq.l)go to 49 if(icode.ne.4)go to 39

resistivity only' TEM & Schlumberger resistivity' TEM and dipole-dipole resist.' Schlumberger resist. and IP' TEM, Schlum. resist., and IP'

c dipole-dipole c c amn(i) is the a-spacing c ab2(i) is the n value c

c

write(O,*)' Enter a-spacing for dipole-dipole diagonal' read(O,*)amn(l) write(O,*)' Enter maximum n value' read(O,*)maxn do 35 i=l,maxn write(O,300)i read(O,*)ai(i),v(i) ab2 (i) =float (i) amn(i)=amn(l) nnn=i*(i+1)*(i+2)

35 rhoa(i)=pi*amn(i)*v(i)*float(nnn)/ai(i) i=maxn go to 49

c Schlumberger c

c

39 write(O,*)' Enter name of file containing resistivity field data' read(O,l10)resfile open(lO,file=resfile) i=l

c Read Schlumberger resistivity data and calculate apparent c resistivity, rhoa(i). c

40 read(10,*,end=48)ab2(i) ,amn(i) ,v(i) ,ai(1) ,ch(1) xx=ab2(i)/amn(i) rhoa(i)=(xx*xx-2.50e-Ol)*pi*amn(i)*v(i)/ai(i) i=i+1 go to 40

48 i=i-1 close(unit=lO) if(icode.eq.2.or.icode.eq.5)go to 70

105

Page 113: New Jersey Geological Survey Open-File Report OFR 90-1

c c c

49 50

TEM

number=l write(O,*)' Enter name read(O,llO)temfile open(12,file=temfile) jl=O add=O.O

of file containing TEM data'

write(O,*)' is there a turnoff time error to account for?' write(O,*)' (yes=l, no=O)' read(O,*)yes if(yes.eq.O.)go to 54 write(O,*)' enter time (in microsec) to add to all time gates' read(O,*)add

54 read(l2,*)aa1,aa2,temi,ramps,al c c Set up TEM variables c bd = time derivative of magnetic field (microV/m2) c temv(j) = time derivative of magnetic field (which is c derived from the field observations) divided by c the transmitted current (microV/[amp-m2]) c tt(j) time of voltage sample in milliseconds. c

c

55 jj=jj+1 read(12,*,end=65)bd if(bd.le.O.O)go to 65 temv(jj)=bd/temi j1~jl+1

ramp(jj)=ramps aba(jj)=aa1

c EM37 or EM57 with 30 Hz base freq. c

if(aa1.eq.3.0)tt(jj)=t(j1) c c 7.5 Hz c

if(aal.eq.2.0)tt(jj)=t7p5(j1) c c 3 Hz base freq. c

if(aa1.eq.l.0)tt(jj)=t(jl)*10. c c EM47 with 315 Hz base freq. c

if(aa1.eq.7.0)tt(jj)=t47(j1) c c 75 Hz c

if(aal.eq.6.0)tt(jj)=t75(j1)

106

Page 114: New Jersey Geological Survey Open-File Report OFR 90-1

c c 30 Hz base freq. EM47 transmitter c

c

if(aal.eq.5.0.or.aal.eq.4.0)tt(jj)=t473(jl) tt(jj)=tt(jj)+O.OOI*add go to 55

65 close(unit=12) jj=jj-l

c Query for more TEM data c

c

if(number.gt.2)go to 70 write(O,*)' Is there another file of TEM data? (y=l,n=O)' read(O,*)nny if(nny.eq.O)go to 70 number=number+l go to 50

70 continue

c data points c mr no. of resistivity data points c mt no. of TEM data points c mc no. of chargeability data points c m = total no of data points c

c

mr=i mc=O if(icode.eq.5.or.icode.eq.6)mc=i mt=jj m=mr+mt+mc if(icode.eq.l)go to 90

c d(i) = data vector c

c

do 80 ii=l,mr 80 d(ii)=alogl0(rhoa(ii))

if(icode.lt.5)go to 85 do 81 ii=l,mc

81 d(ii+mr)=ch(ii)/6.0 85 if(icode.eq.2.or.icode.eq.5)go to 95

c TEM late time resistivity calculation c

c

90 do 94 ii=l,mt arg=al*al/«(tt(ii)*.001)**2.5)*temv(ii)*.000001) altr(ii)=(6.3184e-12)*(arg**.6667) d(ii+mr+mc)=alogl0(altr(ii))

94 continue 95 return

200 if(iout.eq.O)return

107

Page 115: New Jersey Geological Survey Open-File Report OFR 90-1

c c calculate theoretical data file c

write(O,*) , write(O,*)' Generating theoretical results for' write(O,*)' output to datafile => einvrt4x.dat' write(O,*)' ============' open(9,file='einvrt4x.dat') aa1=float(iout) n1=n 1f(1code.ge.5)n1=2*«n+1)/3)-1 do 202 i=1,n

202 p(i)=10.**pO(i) if(ic.eq.1)go to 205 1f(icode.lt.5)np12=(n+1)/2+2 if(icode.ge.5)np12=n1+3 do 203 i=np12,n

203 pp(i)=p(i)-p(i-1) do 204 i=np12,n

204 p(1)=pp(i) 205 tol=O.Ol

ramps=ramp(1) write(9,*)iout,' 1 l' ,ramps,al write(O,*)' write(O,330)' channel',' time(msec)',' dB/dt' do 220 i=1,20 if(iout.eq.1)time=t(i)*10.0 if(iout.eq.2)time=t7p5(i) 1f(1out.eq.3)time=t(i) if(iout.eq.4)time=t473(i) if(iout.eq.5)time=t473(i) if(iout.eq.6)time=t75(i) if(iout.eq.7)time=t47(i)

210 call forward(p,time,result,ramps,n1,tol,aa1,icode) if(result.gt.O.O)go to 215 tol=tol*0.1 if(tol.le.0.00001)go to 215 go to 210

215 write(9,*)result write(O,340)i,time,result if(i.ge.14.and.tol.ge.0.001)tol=tol*0.1

220 continue return

c 110 300 330 340

format(a15) format(lx,' enter current and voltage for n=' ,11) format(lx,3a15) format(lx,i12,f16.4,3x,f17.9) end

c ************************************ subroutine guess(pO,ipf,ic,icode,metric)

108

Page 116: New Jersey Geological Survey Open-File Report OFR 90-1

c ************************************ c c This routine is part of the electrical inversion program einvrt.for c which was developed to simultaneously invert resistivity and tran­c sient electromagnetic data for a horizontally stratified earth. c c version 2.0 June 9, 1989 c c written by: c c Stewart Sandberg c NJGS and Rutgers University c c This subroutine reads the initial guess parameters and assigns c them to the vector PO(i). Also, parameters are labeled as fixed c or free to vary in the inversion process. c

dimension pO(44) ,ipf(44) ,r(15) ,t(14) ,c(15) common /blk2/n,rcsqo,rcsq,ifwd,all write(O,*)' Enter the no. of layers in model above halfspace' read(O,*)nl

c c n = no. of parameters c r(i) resistivity of layer i c c(i) = chargeability of layer i c t(i) = thickness or depth-to-bottom of layer i c pO(i) = parameter i c

c

n=2*nl+1 if(icode.ge.5)n=3*nl+2 nr=nl+1 nt=nl nc=O if(icode.ge.5.0)nc=nr

c ic = code for using thicknesses or depths c

Use thicknesses or depths?' Enter code: l=thicknesses'

2=depths'

write(O,*)' write(O,*) , write(O,*)' read(O,*)ic write(O,*)' Meters or read(O,*)metric if(ic.eq.2)go to 20

feet? (l=meters,O=feet)'

c c Input initial guess parameters c

do 10 i=l,nl if(icode.lt.5.0)

+write(O,*)' Enter if(icode.ge.5.0)

resistivity, thickness

109

for layer , i

Page 117: New Jersey Geological Survey Open-File Report OFR 90-1

c

+write(O,*)' Enter resistivity, chargeability, and thickness for +layer ',i if(icode.ge.5.0)read(0,*)r(i),c(i),t(i)

10 if(icode.lt.5.0)read(0,*)r(i),t(i) go to 40

20 do 30 i=1,nl if(icode.lt.5.0)

+write(O,*)' Enter resistivity, depth-to-bottom of layer ',i if(icode.ge.5.0)write(0,*)

+' Enter resistivity, chargeability, depth-to-bottom of layer',i if(icode.ge.5.0)read(0,*)r(i),c(i) ,t(i)

30 if(icode.lt.5.0)read(0,*)r(i),t(i) 40 continue

if(icode.lt.5.0)write(0,*)' Enter resistivity of basal halfspace' if(icode.ge.5.0)write(0,*)

+' Enter resistivity, chargeability of basal halfspace' if(icode.lt.5.0)read(0,*)r(nr) if(icode.ge.5.0)read(0,*)r(nr),c(nr) do 50 i=1,nr

50 pO(1)=r(1) if(icode.lt.5.0)go to 58 do 55 i=l,nc

55 pO(nr+i)=c(i) 58 do 60 i=l,nt 60 pO(nr+nc+i)=t(i)

write(O,*)' Enter no. of iterations' write(O,*)' (enter 0 for forward calculation only)' read(O,*)ifwd do 65 i=1,n

65 ipf(1)=O if(ifwd.eq.O)return

c code for fixing of parameters throughout inversion process c

write(O,*)' Enter code for fixing of parameters:' write(O,*)' 1 hold parameter at its current value' write(O,*)' throughout inversion' write(O,*)' 0 allow parameter to vary' do 70 i=l,nr write(O,*)' parameter' ,i,' resistivity= ',pO(i),' enter code'

70 read(O,*)ipf(i) if(icode.lt.5.0)go to 75 do 72 i=l,nc write(O,*)' parameter' ,i+nr,' chargeability= ',pO(i+nr),

+' enter code' 72 read(O,*)ipf(nr+i) 75 nn=nr+nc

if(ic.eq.2)go to 90 do 80 i=1,nt write(O,*)' parameter', (nn+i),' thickness= ',pO(nn+i),

x' enter code'

110

Page 118: New Jersey Geological Survey Open-File Report OFR 90-1

80 read(O,*)ipf(nn+i) go to 95

90 do 93 i=1,nt write(O,*)' parameter', (nn+i),' depth= ',pO(nn+i),' enter code'

93 read(O,*)ipf(nn+i) 95 continue

return end

c ********************************************************** subroutine zjacob(pO,ipf,ic,m,a,nc,y,d,ifirst,itno,deriv,ammu)

c ********************************************************** c c This routine is part of the electrical inversion program einvrt.for c which was developed to simultaneously invert resistivity and tran­c sient electromagnetic data for a horizontally stratified earth. c c version 2.0 September 22, 1989 c c written by: c c Stewart Sandberg c NJGS and Rutgers University c c This subroutine generates the system matrix a(i,j). c c c c c c

ipf(i) parameter fix vector 1 fixed o not fixed

m = total no. data pts. n = total no. of parameters

c * pO(i) current version of parameter vector c * y(i) theoretical data vector c ic code for thicknesses or depths c 1 for thicknesses c 2 for depths c * d(i) field data vector c c

nc no. of columns of a(i,j) matrix

c note * denotes log10 of value c

integer gludge integer*2 ihour,iminute,isecond,ihundredsecond common /blk1/icode,mr,mt,ab2(35) ,amn(35) ,ai(35) ,rhoa(35) ,v(35),

*temv(60) ,tt(60) ,ramp(60) ,ch(35) ,mc common /blk2/n,rcsqo,rcsq,ifwd,a11 common /blk5/bunk,hour2 common /blk6/iend,iout,igrf dimension a(130,44) ,y(130) ,d(130) ,pO(44) ,ipf(44) if(ifwd.eq.O)go to 41 nlayer=(n+l)/2 if(icode.ge.5)nlayer=(n+1)/3

111

Page 119: New Jersey Geological Survey Open-File Report OFR 90-1

c c row count c

c

do 40 i=I,m ikk=i-l

c Check if a TEM row with same time and ramp has already been c calculated. If so, use it instead of spending the time to c do it again. c

c

if(ikk.lt.(mr+mc+l»go to 20 iiyes=O do 15 kk=ikk, (mr+mc+l),-1 if(iiyes.eq.l)go to 11 kl=kk-mr-mc if(tt(i-mr-mc) .eq.tt(kl) .and.ramp(i-mr-mc) .eq.ramp(kl»go to 8 go to 11

8 do 9 kkk=I,nc 9 a(i,kkk)=a(kk,kkk)

write(10,201) (itno+l), (i-mr-mc) ,mt, (a(i ,j) ,j=I,nc) if(igrf.eq.O)

+write(O,201)(itno+l),(i-mr-mc),mt,(a(i,j),j=I,nc) iiyes=1

11 continue 15 continue

if(iiyes.eq.O)go to 20 go to 39

c initial time is obtained in order to calculate elapsed time c per row of matrix calculation. c

c

20 call gettim(ihour,iminute,isecond,ihundredsecond) hoursl=float(ihour)+(float(iminute)+float(isecond)/60. )/60. secndl=float(isecond)+float(ihundredsecond)/100. ncc=O if(i.eq.l)hour2=hoursl

c check for nonconvergence in convolution c old is the closest thing to what the new one should be c

old=y(i) c c ncc is the column count of the actual matrix (where there c are no columns for fixed parameters c gludge = 0 normally. If it is sensed that the tolerance c on the inverse Hankel transform is too high, gludge = 1 and c the tolerance is decremented until convergence is obtained. c c column count c

do 38 j=I,n

112

Page 120: New Jersey Geological Survey Open-File Report OFR 90-1

c c if parameter is fixed, bypass it c

if(ipf(j) .ne.O)go to 38 c c derivative of resistivity or TEM data point with respect to c a change of chargeability is zero so we don't need to spend the c time doing it c

c

c

if(icode.lt.5)go to 33 if(i.gt.mr)go to 30 if(j.le.nlayer.or.j.gt. (2*nlayer»go to 33 ncc=ncc+1 a(i,ncc)=O.O go to 38

30 if(icode.ne.6)go to 33 if(i.le.(mr+mc»go to 33 if(j.le.nlayer.or.j.gt. (2*nlayer»go to 33 ncc=ncc+1 a(i,ncc)=O.O go to 38

33 if(igrf.eq.l)call howlng(timrem) if(igrf.eq.1)call hms(timrem,ih,im,is) if(igrf.eq.1)call timeup(ih,im,is) ncc=ncc+1 gludge=O

35 hold=pO(j)

c parameter is incremented by deriv (remember this is the 10glO c of the parameter). c

c

pO(j)=pO(j)+deriv call switch(pO,yalter,i,ic,n,old,ammu,gludge) pO(j)=hold

c the derivative is approximated by the first forward difference c using deriv as the parameter increment c

a(i,ncc)=(yalter-y(i»/deriv if(abs(a(i,ncc» .It.9.9)go to 38 if(gludge.eq.l)go to 38 gludge=l go to 35

38 continue call gettim(ihour,iminute,isecond,ihundredsecond) hours2=float(ihour)+(float(iminute)+float(isecond)/60. )/60. secnd2=float(isecond)+float(ihundredsecond)/lOO. elaps=secnd2-secnd1 if(elaps.lt.O. )elaps=elaps+60. elap=hours2-hours1

113

Page 121: New Jersey Geological Survey Open-File Report OFR 90-1

c c c c c

c

if(elap.lt.O. )elap=elap+12.

write out the iteration no., row/total rows, elapsed time for this row (if RES or CHG this is in seconds, if TEM this is in hours),1 if TEM the time is printed out, and then the row of the matrix.

if(i.gt.(mr+mc»write(10,199)(itno+1),(i-mr-mc),mt,elap,ihour, ximinute,isecond, (a(i,j) ,j=l,nc) if(1.gt. (mr+mc) .and.igrf.eq.O)

+write(O, 199) (itno+l), (i-mr-mc) ,mt,elap, ihour, ximinute,isecond, (a(i,j) ,j=l,nc)

if(i.le.mr)write(10,200)(itno+1),i,mr,elaps,(a(i,j),j=1,nc) if(i.le.mr.and.igrf.eq.O)

+write(0,200)(itno+1),i,mr,elaps,(a(i,j),j=1,nc) if(i.gt.mr.and.i.le.(mr+mc»write(10,202)(itno+1),(i-mr),mc,

+elaps, (a(i,j) ,j=l,nc) if(i.gt.mr.and.i.le. (mr+mc).and.igrf.eq.O)

+write(0,202)(itno+1), (i-mr) ,mc, +elaps, (a(i,j) ,j=1,nc)

39 continue call smat(i,m)

40 continue 41 continue 199 format(1x, 'TEM' ,i2,i3, '/' ,i2,f7.3,3i3,6f7.4,/,lx,10f7.4,/,

x1x,10f7.4,/,lx,3f7.4) 200 format(lx, 'RES' ,i2,i3, '/' ,i2,2x,f7.2,7f7.4,/,lx,10f7.4,/,

x1x,10f7.4,/,lx,2f7.4) 201 format(lx, 'TEM' ,i2,i3, '/' ,i2,5x, 'repeat' ,5x,6f7.4,/,1x,10f7.4,

x/,lx,10f7.4,/,lx,3f7.4) 202 format(lx, 'CHG' ,i2,i3, '/' ,i2,2x,f7.2,7f7.4,/,lx,10f7.4,/,

x1x,10f7.4,/,lx,2f7.4) return end

c ******************************************* subroutine switch(pO,datum,iii,ic,n,old,ammu,gludge)

c ******************************************* c c version 2.2 May 22, 1990 c c written by: c c Stewart Sandberg c Rutgers University and NJGS c c This subroutine does forward model calculations by switching betweeP c resistivity (resist), and TEM (forward) routines. c

integer gludge double precision volt(3) dimension p(44) ,pp(44) ,pO(44) ,resis(15) ,thick(15) ,r(3)

114

Page 122: New Jersey Geological Survey Open-File Report OFR 90-1

c

common /blk1/icode,mr,mt,ab2(35),amn(35),ai(35),rhoa(35),v(35), *temv(60),tt(60),ramp(60),ch(35),mc

common /loop/al,aba(60)

c get linear parameters. p is a local vector variable which is the c inverse log10 of pO, nl is the no. of resistivities + thicknesses c

c

do 10 j=1,n 10 p(j)=10.00**pO(j)

n1=n if(icode.ge.5)n1=2*«n+1)/3)-1

c convert depths to thicknesses for forward calculation c

if(ic.eq.1)go to 15 c c np12 is the depth-to-the-bottom of layer 2 c

c

ihall=n if(icode.lt.5)np12=(ihall+1)/2+2 if(icode.ge.5)npI2=2*«n+l)/3)+2 do 12 j=np12,n

12 pp(j)=p(j)-p(j-1) do 13 j=np12,n

13 p(j)=pp(j)

c if a TEM point is required go to 50 c

c

15 if(iii.gt.(mr+mc))go to 50 if(icode.ne.4)go to 19

c Dipole-dipole resistivity forward routine c

nr=3 g=3.14159*amn(iii)*ab2(iii)*(ab2(iii)+1.0)*(ab2(iii)+2.0) r(I)=ab2(iii)*amn(iii) r(2)=(ab2(iii)+1.0)*amn(iii) r(3)=(ab2(iii)+2.0)*amn(iii) modeI1=«n1+1)/2)-1 model=modell+1 do 17 i=1,model1 if(icode.lt.5)j=model+i if(icode.ge.5)j=2*model+i resis(i)=p(i)

17 thick(i)=p(j) resis(model)=p(model) call resist(model,nr,resis,thick,r,volt,O) dv=sngl(volt(I)-2.0*volt(2)+volt(3)) yc=g*dv go to 25

19 continue

115

Page 123: New Jersey Geological Survey Open-File Report OFR 90-1

c c Schlumberger resistivity and IP forward routines c

c

iiv=iii if(iiv.gt.mr)iiv=iiv-mr xmn2=amn(iiv)/2.0 nr=2 r(1)=ab2(iiv)-xmn2 r(2)=ab2(iiv)+xmn2 g=(1.0/r(1)-1.0/r(2»

c Modell is no. of thicknesses in model c model is no. of resistivities c

c

modell=«nl+l)/2)-1 model=modell+l do 20 i=l.modell j=model+i if(icode.ge.5)j=j+model resis(i)=p(i)

20 thick(i)=p(j) resis(model)=p(model)

c call Koefoed's subroutine to get voltages c

c

call resist(model.nr.resis.thick.r.volt.O) dv=sngl(6.283185307d+00*(volt(1)-volt(2») yc=dv/g if(iii.le.mr)go to 25

c IP only c

c

c

c

chnorm=O.Ol

do 21 i=1.model1 j=2*model+i resis(i)=p(i)

21 thick(i)=p(j) resis(model)=p(model) do 22 i=l.model

22 resis(i)=resis(i)*(l.O+chnorm*p(model+i»

call resist(model,nr,resis,thick,r,volt,O) dv=sngl(6.283185307d+00*(volt(1)-volt(2») ych=dv/g datum=(ych-yc)/(yc*chnorm*6.0) return

c yc is the apparent resistivity c datum is back in log space c

116

Page 124: New Jersey Geological Survey Open-File Report OFR 90-1

25 datum=aloglO(yc) return

50 continue c c transient electromagnetic forward routine c

c

imrimr=iii-mr-mc aal=aba(imrimr) rampo=ramp(imrimr) if(gludge.eq.l)go to 56 tol=.01

52 call forward(p,tt(imrimr),result,rampo,n1,tol,aal,icode) if(result.lt.l.Oe-14)go to 56

c TEM late time resistivity calculation c

c

arg=al*al/«(tt(imrimr)*.001)**2.5)*result*.000001) altr=(6.3184e-12)*(arg**.6667) datum=aloglO(altr)

c check if the forward routine didn't converge c if not, decrement tol and calculate it again c

c

if(ammu.le .. 04.or.imrimr.gt.l)go to 54 if(abs(datum-old).lt.l.5)go to 58 go to 56

54 if(abs(datum-old) .It.0.5)go to 58 56 tol=tol*.l

if(tol.le .. 00001)go to 58 if(tol.lt .. 001.and.imrimr.eq.1)go to 58 go to 52

58 return end

c ************************************************ subroutine forward(pO,t,result,rampo,nn,tol,aal,icode)

c ************************************************ c c Forward solution for layered earth transient EM calculation using c ramp function turnoff. Parameters are for the Geonics EM37 c equipment. c c written by: c

Stewart Sandberg c c c

Rutgers University and NJGS

c version 2.1 May 2, 1989 c

complex z1,zhanks,fsave common Isave/fsave(283) ,gsave(283) ,nsave

117

Page 125: New Jersey Geological Survey Open-File Report OFR 90-1

c

common /blk3/s(15) ,h(14) ,ara,nah,tau,taup,aak common /loop/al,aba(60) external zf1 dimension rho(15),pO(44)

c layered-earth parameters -c rho(i)=resistivity of ith layer c h(i)=thickness of ith layer c nah=no. of layers above halfspace c

c

np12=(nn+l)/2-1 do 50 i=1,np12 rho(i)=pO(i) if(icode.lt.5)h(i)=pO(np12+1+i)

50 if(icode.ge.5)h(i)=pO(2*np12+2+i) rho(np12+1)=pO(np12+1) nah=np12

c define constants - al=square loop side length c at=area of Tx loop c ar=area of Rx coil c ara=radius of equivalent Tx circular loop c aak=(dist. bet. Tx & Rx centers)/a c aa1=code from data file identifying Rx loop c ramp=ramp time in microseconds c delta=ramp time in seconds c

c

r=O.O pi=3.14159 amu=4.*pi*1.Oe-07 at=al*al ar=lOO. if(aa1.ge.5.0)ar=31.4 ara=al/(pi**.5) aak=r/ara ramp=rampo delta=ramp*.OOOOOl pmul=pi*amu*ara*ar/(2.*delta*at)

c s(i) is the conductivity of the ith layer c

c

do 2 i=1,(nah+1) 2 s(i)=l./rho(i)

tt=t*.OOl tau=(tt+delta)/(amu*ara*ara*s(l» taup=tt/(amu*ara*ara*s(l» z 1 = z hank s ( 1 , 1 . , z f 1 , to I , n f , 1 )

c x is the mutual impedance divided by area of receiver coil c times 1000000. c

118

Page 126: New Jersey Geological Survey Open-File Report OFR 90-1

c

x=real(z1)*pmul*1000000./ar result=x return end

c function returns the inverse laplace transform of FF(p) c

c

function gaver(squig) real*8 sum,aaa,ff,dd,t,term1,term2 common /blk3/s(15),h(14),ara,nah,tau,taup,aak t=squig*squig*tau jj=16 m=jj/2 k=l

10 sum=O. aaa=.69314718/t do 20 j=1,jj lm=(float(j)+1.0)/2.0 minjm=minO(j ,m) term1=dd(j,m,lm,minjm) term2=ff(float(j)*aaa,squig) sum=sum+term1*term2

20 continue if(k.eq.O)go to 30 k=O t=squig*squig*taup ftau=aaa*sum go to 10

30 ftaup=aaa*sum gaver=ftaup-ftau return end

c function returns the d-term eq. (13) Knight and Raiche (1982) p.48 c

c

real*8 function dd(j,m,lm,minjm) real*8 afac,term1,term2,sum common /fctrl/afac(0:69) sum=O. do 30 k=lm,minjm term1=«float(k»**(float(m»)*afac(2*k)/afac(k) term2=afac(m-k)*afac(k-1)*afac(j-k)*afac(2*k-j) sum=sum+term1/term2

30 . continue dd=sum*(1.-2.*mod(j+m,2» return end

c function called by zhanks - kernal function evaluation c

complex function zf1(g)

119

Page 127: New Jersey Geological Survey Open-File Report OFR 90-1

c

common /blk3/s(15),h(14),ara,nah,tau,taup,aak term1=1. term2=gaver(g) term3=g*term1*term2 zf1=cmplx(term3,0.0) return end

c layered earth function -AO(q)/q where q is the laplace transform c variable corresponding to q=-iwu/«rho)(lambda**2» c

c

real*B function ff(q,squig) real*B anum,adem,q,aO common /blk3/s(15),h(14),ara,nah,tau,taup,aak if(nah.eq.O)go to 50 ff=-aO(q,squig)/q return

50 anum=1.-(1.+q)**.5 aden=1.+(1.+q)**.5 ff=-(anum/aden)/q return end

c layered earth impedance calculation c

real*B function aO(q,squig) real*B rO,q,arg,arg2,ej,rj,fjp1 common /blk3/s(15),h(14),ara,nah,tau,taup,aak rO=(1.-(1.+q)**.5)/(1.+(1.+q)**.5) fjp1=0. do 10 j=nah,1,-1 arg=-2.*squig*«1.+q*s(j)/s(1»**.5)*h(j)/ara if(arg.gt.-BO.)go to B ej=O.O go to 9

B ej=dexp(arg) 9 arg=(1.+q*s(j)/s(1»**.5

arg2=(1.+q*s(j+1)/s(1»**.5 rj=(arg-arg2)/(arg+arg2) fjp1=ej*(rj+fjp1)/(1.+rj*fjp1)

10 continue aO=(rO+fjp1)/(1.+rO*fjp1) return end

c c *******************************************************************" c

complex function zhanks(n,b,fun,tol,nf,new) c c this routine is from: c

120

Page 128: New Jersey Geological Survey Open-File Report OFR 90-1

c Anderson, W., 1979, Numerical integration of related Hankel trans-c forms of orders 0 and 1 by adaptive digital filtering, Geophysics c vol. 44, no. 7, p. 1287-1305. ' c c modified on December 5, 1986 for increased speed of calculation c by: Stewart Sandberg c NJGS c

complex fun,c,cmax,fsave common/save/fsave(283) ,gsave(283),nsave common/zblcf/waO(76) ,wbO(76) ,wcO(76) ,wdO(55) ,wa1 (76) ,wb1 (76),

+wc1(76) ,wd1(55) double precision e,er,Y1,y dimension t(2) ,tmax(2) ,wtO(283) ,wt1(283) e qui va len c e (wt 0 ( 1 ) , wa 0 ( 1 ) ) , (wt 0 ( 77) , wb 0 ( 1 ) ) , (w t 0 ( 153 ) , w c 0 ( 1 ) ) ,

* (wtO(229),wdO(1», (wt1(1),wa1(l»,(wt1(77),wb1(1», * (wtl(153) ,wcl(l», (wtl(229) ,wdl(1»

equivalence (c,t(l», (cmax,tmax(l» c-----e=dexp ( . 2dO), er=l. OdO/e

data e/1.22140275816017/,er/.818730753077982/ c

none=O if(new.eq.O) go to 100 nsave=O

c-----initialize kernel abscissa generation for given b y1=0.735885266147979/dble(b)

100 zhanks=(O.O,O.O) cmax=(O.O,O.O) nf=O y=y1

c-----begin right-side convolution at weight 131 (either new=l or 0) assign 110 to m i=131 y=y*e go to 200

110 tmax(l)=amax1(abs(t(1»,tmax(1» tmax(2)=amax1(abs(t(2»,tmax(2» i=i+1 y=y*e if(i.le.149) go to 200 if(tmax(1) .eq.0.0.and.tmax(2) .eq.O.O) none=l

c-----establish truncation criterion (cmax=cmplx(tmax(1),tmax(2» cmax=tol*cmax assign 120 to m go to 200

c-----check for filter truncation at right end 120 if(abs(t(l» .le.tmax(1).and.abs(t(2».le.tmax(2» go to 130

i=i+l y=y*e if(i.le.283) go to 200

130 y=y1

121

Page 129: New Jersey Geological Survey Open-File Report OFR 90-1

c-----continue with left-side convolution at weight 130 assign 140 to m i=130 go to 200

c-----check for filter truncation at left end 140 if(abs(t(1)).le.tmax(1).and.abs(t(2)).le.tmax(2).and.

* none.eq.O) go to 190 i=i-1 y=y*er if(i.gt.O) go to 200

c-----return with isave=l preset for possible new=O use. 190 isave=1

c-----normalize by b to account for integration range change zhanks=zhanks/b return

c-----save/retrieve pseudo-subroutine (call fun only when necessary) 200 g=sngl(y)

if(new) 300,210,300 210 if(isave.gt.nsave) go to 300

isaveO=isave 220 if(g.eq.gsave(isave)) go to 240

isave=isave+1 if(isave.le.nsave) go to 220 isave=isaveO

c-----g not in common/save/----- evaluate fun. go to 300

c-----g found in common/save/----- use fsave as given. 240 c=fsave(isave)

isave=isave+1 c-----switch on order nc-----switch on order n

250 if(n) 270,260,270 260 c=c*wtO(i)

go to 280 270 c=c*wtl (i) 280 zhanks=zhanks+c

go to m,(110,120,140) c-----direct fun evaluation (and add to end of common/savel)

300 nsave=nsave+1 c=fun(g) nf=nf+1 fsave(nsave)=c gsave(nsave)=g go to 250 end

c ************************************************** subroutine error(p,ic,y,d,m,nc,elapse,ammu,ipf)

c ************************************************** c c this subroutine gets rcsq (square error) for current c version of parameters c

122

Page 130: New Jersey Geological Survey Open-File Report OFR 90-1

c written by: c c Stewart Sandberg c Rutgers University and NJGS c c version 2.1 September 22, 1989 c

c

integer*2 ihour,iminute,isecond,ihundredsecond common /blk1/icode,mr,mt,ab2(35) ,amn(35) ,ai(35) ,rhoa(35) ,v(35),

*temv(60) ,tt(60) ,ramp(60) ,ch(35) ,mc common /blk2/n,rcsqo,rcsq,ifwd,aI1 common /blk5/bunk,hour2 common /xxyy/zeror,zeroip,zeroa,zerot common /blk6/iend,iout,igrf dimension y(130),d(130),p(44),ipf(44) write(10,*) , if(igrf.eq.O)write(O,*) , rcsqo=rcsq rcsq=O.O al1=0.0 gludge=O

c get theoretical data from new parameters p(j) c

write(10,*)' field data theoretical pct diff' write(1O,*) , if(igrf.eq.O)

+write(O,*)' field data theoretical pct diff' if(igrf.eq.O)write(O,*) , if(igrf.eq.1)call sline(l)

c c data point count c

c

bunk=elapse call gettim(ihour,iminute,isecond,ihundredsecond) hour2=float(ihour)+(float(iminute)+float(isecond)/60. )/60. do 10 i=l,m if(igrf.eq.1)call howlng(timrem) if(igrf.eq.1)call hms(timrem,ih,im,is) if(igrf.eq.1)call timeup(ih,im,is)

c check if the TEM data point has already been calculated ... if c the same time window and ramp has been previously calculated, c use it instead of spending the time to do it again. c

if(i.lt.(mr+mc+2»go to 8 ik=i-mr-mc-1 idone=O do 5 ij=ik,1,-1 if(idone.eq.1)go to 4 if(ramp(ij).eq.ramp(i-mr-mc).and.tt(ij).eq.tt(i-mr-mc))go to 6

123

Page 131: New Jersey Geological Survey Open-File Report OFR 90-1

c

go to 4 6 y(i)=y(ij+mr+mc)

idone=l 4 continue 5 continue

if(idone.eq.O)go to 8 go to 9

c forward calculation c

8 old=d(i) if(i.gt.1)old=y(i-1) call switch(p,y(i),i,ic,n,old,ammu,gludge)

9 if(i.le.mr.or.i.gt.(mr+mc» +pct=100.*(10.**d(i)-10.**y(i»/10.**d(i)

if(i.gt.mr.and.i.le.(mr+mc» +pct=100.*(d(i)-y(i»/d(i) if(i.le.mr.and.i.gt.1.and.igrf.eq.1)

+call ssplt(2,3,ab2(i-l),ab2(i), +(lO.**y(i-l», (10.**y(i»,2) if ( i . gt . (mr +mc + 1 ) . and. i gr f . eq . 1 ) call ssp 1 t ( 2 , 1 , t t ( i -mr -m c -1 ) ,

+tt(i-mr-mc), (10.**y(i-1»,(10.**y(i»,1) if ( i . gt . (mr + 1) . and. i . 1 e . (mr +mc ) . and. i gr f . e q . 1 )

+call ssplt(2,2,ab2(i-mr-1),ab2(i-mr),(6.*y(i-1», (6.*y(i»,3) if ( i . gt . (m r +m c) ) wr i t e ( 10 , 120) ( i -m r -m c) , (10 . * * d ( i ) ) , ( 10 . * * y ( i ) ) , pet if( i .gt. (mr+mc) .and. igrf .eq.O)

+write(0,120)(i-mr-mc), (10.**d(i», (10.**y(i»,pct if(i.le.mr)write(lO,lOO)i,(lO.**d(i», (lO.**y(i»,pct if ( i . 1 e . m r . and. i g r f . e q . 0 ) w r i t e ( 0 , 100 ) i , ( 10 . * * d ( i ) ) , ( 10 . * * y ( i ) ) , pet if(i.gt.mr.and.i.le.(mr+mc»write(10,130)(i-mr),

+(6.*d(i»,(6.*y(i»,pct if(i.gt.mr.and.i.le. (mr+mc).and.igrf.eq.0)write(0,130)(i-mr),

+(6.*d(i»,(6.*y(i»,pct if(igrf.eq.l)call fno(i,m) al1=al1+abs(d(i)-y(i»

10 rcsq=rcsq+(d(i)-y(i»*(d(i)-y(i» rcsq=(l.O/float(m-nc»*rcsq all=all/float(m) write(lO,llO)rcsq write(10,111)all if(igrf.eq.O)write(O,llO)rcsq if(igrf.eq.0)write(0,111)a11 if(igrf.eq.1)call srcsq(rcsq,al1) bunk=elapse*nc if(icode.lt.5)go to 820 lay=(n+1)/2 if(icode.ge.5)lay=(n+1)/3 ibunk=O do 800 i=l,n if(ipf(i).eq.1)go to 800 if(i.le.lay.or.i.gt.(2*lay»go to 800

124

Page 132: New Jersey Geological Survey Open-File Report OFR 90-1

c

ibunk=ibunk+1 800 continue

if(icode.eq.5)bunk=bunk*(I.-float(ibunk*mr)/float(nc*m» if(icode.eq.6)bunk=bunk*(1.-float(ibunk)/float(nc»

820 continue 100 format(lx, 'RES' ,i3,2f12.2,f10.1) 110 format(lx,' rcsq=' ,fl0.5) 111 format(lx,' 11 norm=' ,fl0.5) 120 format(lx, 'TEM' ,i3,2fI2.2,fl0.l) 130 forntat(lx, 'CHG' ,i3,2f12.2,f10.1)

return end

c *************************************** subroutine stat(a,p,m,y,ipf,nc)

c *************************************** c c this subroutine calculates parameter statistics c c written by: c c Stewart Sandberg c NJGS c c version 2.0 August 9, 1989 c

real nsr logical withu,withv common/blk2/n,rcsqo,rcsq,ifwd,all common/blk4/eps(130) ,s4(44) ,tj(44)

c

dimension vv(44 ,44) ,p(44) ,y(130), b(44), ipf(44) ,sss(44), xa(130,44)

c calculate NSR c

c

write(10,*) , write(10,*)' ****************** statistics *****************' denom=O. ymean=O. do 10 i=I,m

10 ymean=ymean+y(i) ymean=ymean/float(m) do 20 i=l,m

20 denom=(y(i)-ymean)*(y(i)-ymean)+denom denom=denom/float(m-l) if(denom.lt.l.0e-10)go to 21 nsr=(rcsqo/denom)**.5 write(10,*) , write(10,*)' NSR=' ,nsr

21 write(10,*)'

125

Page 133: New Jersey Geological Survey Open-File Report OFR 90-1

c get undamped v-matrix and eigenvalues c

c

withu=.true. withv=.true. call hysvd(a,sss,vv,m,nc,m,nc,O,withu,withv)

c calculate Cramer-Rao multipliers Bj c

c

do 30 j=I,nc b(j)=O. do 30 k=I,nc if(sss(k).lt.l.0e-S)go to 30 b(j)=b(j)+(vv(j,k)/sss(k»*(vv(j,k)/sss(k»

30 continue sigma=rcsqo**.5

c calculate upper and lower bounds of a 95 percent confidence c interval for parameter p c

c

icount=O write(10,*)' undamped 95% confidence intervals' write(10,*) , write(10,*)' parameter, high p, low p' do 40 i=I,n if(ipf(i).eq.l)go to 39 icount=icount+l arg=I.96*b(icount)*sigma ppl=10.**(p(i)+arg) pmi=10.**(p(i)-arg) write(10,*)(10.**(p(i»),ppl,pmi go to 40

39 write(10,*)(10.**(p(i»),' fixed parameter' 40 continue

c v matrix and damping factors c

c

write(10,*)' write(10,*)' v-matrix' do 50 i=I,nc

50 write(10,150)(vv(i,j),j=I,nc) write(10,*) , write(10,150) (tj(j) ,j=I,nc)

150 format(lx,10f7.4) return end

c ***************************************** subroutine outptt(p,m,y,d,itno,ic,allo)

c ***************************************** c c this subroutine writes the results out to file 10 after all

126

Page 134: New Jersey Geological Survey Open-File Report OFR 90-1

c iterations are completed or the problem has diverged. c c written by: c c Stewart Sandberg c Rutgers University and NJGS c c version 1.1 July 7, 1989 c

c

dimension d(130),y(130),p(44) common/blkl/icode,mr,mt,ab2(35),amn(35),ai(35),rhoa(35),v(35),

Itemv(60),tt(60),ramp(60),ch(35),mc common/blk2/n,rcsqo,rcsq,ifwd,all write(10,*)' write(10,*)' final result:' write(10,*) , icount=O

c get linear data c

do 10 i=l,m if(i.le.mr.or.i.gt.(mr+mc»d(i)=10.**d(i) if(i.le.mr.or.i.gt. (mr+mc»y(i)=10.**y(i) pct=«d(i)-y(i»/d(i»*100. if(icode.lt.2)go to 5 if(i.gt.(mr+mc»go to 4 if(i.eq.l.and.icode.ne.4)write(10,1010) if(i.eq.1.and.icode.eq.4)write(10,1012) if(i.le.mr)write(10,1000)d(i),y(i),pct,ab2(i),amn(i),ai(i),v(i) if(i.gt.mr.and.icode.ge.5)write(10,1000)(6.*d(i», (6.*y(i»,

+pct,ab2(i-mr) ,amn(i-mr),ai(i-mr),v(i-mr) go to 10

4 if(icode.eq.2.or.icode.eq.5)go to 10 5 icount=icount+l

if(icount.eq.l)write(10,*)' if(icount.eq.l)write(10,1020) write(10,110)d(i),y(i),pct,tt(icount)

10 continue if(icode.lt.5)nth=(n+3)/2 if(icode.ge.5)nth=I+2*(n+l)/3 write(10,*)' write(10,*)' final parameters' write(10,*)' nthr=(nth-l)/2 do 20 i=l,n ione=i-nth+l if(i.ge.nth.and.ic.eq.l)write(10,*)' layer' ,ione,

*' thickness= ',(10.**p(i»,«10.**p(i»/.3048) if(i.lt.nth.and.icode.lt.5)write(10,*) I layer' ,i,

+' resistivity= " (10.**p(i» if(i.ge.nth.and.ic.eq.2)write(10,*)' layer I,ione,

127

Page 135: New Jersey Geological Survey Open-File Report OFR 90-1

c

*, depth-to-bottom='. (10.**p(i».«10.**p(i»/.3048) if(icode.lt.5)go to 20 if(i.le.nthr)write(10.*)' layer' .i.

+' resistivity= " (10.**p(i» if(i.gt.nthr.and.i.lt.nth)write(10.*)' layer'. (i-nthr),

+' chargeability= " (10.**p(i» 20 continue

write(10,1030)rcsqo,al10,itno 110 format(lx,2f10.1,f11.1,f11.4) 1000 format(lx,3f10.1.f11.2.f11.1,2f11.4) 1010 format(lx,' field model' .5x, 'pct diff

x6x. 'current' ,4x, 'voltage' ./) ab/2 mn' ,

1012 format(lx,' field model' .5x, 'pct diff n-value a-spacing', x6x. 'current' .4x. 'voltage' ./)

1020 format(1x.' field model pct diff time window' ./) 1030 format(lx,//,' rcsq= '.f10.5.' 11= '.f10.5.

+' iterations completed=',i3) return end

128

Page 136: New Jersey Geological Survey Open-File Report OFR 90-1

c ********************************************************* subroutine pnew(d,pO,ipf,n,m,a,p,y,nc,ammu,ipass,ic,deriv,

+metric,icode) c ********************************************************* c c This routine is part of the electrical inversion program einvrt.for c which was developed to simultaneously invert resistivity and TEM c (transient electromagnetic) data for a horizontally stratified earth. c eversion 4.00 December 28, 1989 c c written by: c c Stewart Sandberg c Rutgers University and NJGS c c This subroutine calculates new parameters, p(i). c c c c c c c

d ( i ) y ( i ) pO P ipf

data vector theoretical data vector old parameter vector new parameter vector parameter fixing =0 not fixed

c n =1 fixed

total no. of parameters total no. data pts. jacobian m x nc matrix

c m c a(i,j) c nc no. of columns in aij matrix c ammu relative singular value threshold. Brought in from

calling routine. 0.1 > ammu > 0.01 c c

c

logical withu,withv dimension d(130) ,ipf(44) ,a(130,44) ,y(130) ,dp(44) ,pO(44) ,p(44),

*dq(44) ,v(44,44) ,1'(130) common/blk4/eps(130) ,s4(44) ,tj(44) common/blk6/iend,iout,igrf

c The matrix equation to solve is Ax=b, c c c c c

c

where: A(i,j) x ( i ) b ( i )

is a(i,j) is pO(i)-p(i) is eps(i)=d(i)-y(i)

if(ipass.eq.1)go to 20 do 10 i=l,m

10 eps(i)=d(i)-y(i)

C compute the singular value decomposition C

withu=.true. withv=.true.

129

Page 137: New Jersey Geological Survey Open-File Report OFR 90-1

nzero=O call hysvd(a,s4,v,m,nc,m,nc,nzcro,withu,withv)

c c a(i,j) now contains u(i,j) c v(i,j) is itself c s4(i) contains ordered singular values with s4(1»s4(2» ... c

c

c

write(10,*) , write(10,120) if(igrf.eq.O)write(O,*) , if(igrf.eq.O)write(0,120) do 15 i=l.nc r(i)=O.O do 14 j=l,m

14 r(i)=r(i)+a(j,i)*eps(j) if(igrf.eq.O)write(0.130)i,s4(i)

15 write(10,130)i,s4(i)

20 ammu4~ammu*ammu*ammu*ammu

c the tj(i) 's are calculated here for printing out with the c v-matrix in subroutine stat c

c

do 30 i=l.nc bk=s4(i)/s4(1) bk44=bk*bk*bk*bk tj(i)=bk44/(bk44+ammu4) dq(i)=bk*bk*bk*r(i)/(s4(1)*(bk44+ammu4»

30 continue

c calculate parameter increments c c*

write(lO.*)' parameter increments' if(igrf.eq.O)write(O.*)' parameter increments' do 45 ii=l,nc dp(ii)=O.O do 40 jj=l,nc

40 dp(ii)=dp(ii)+v(ii.jj)*dq(jj) c*

write(10.130)ii.dp(ii) 45 continue

c c get new parameters c

icount=O write(lO.*)' write(10,100) if(igrf.eq.O)write(O.*) , if(igrf.eq.0)write(0,100) nre=(n+l)/2

130

Page 138: New Jersey Geological Survey Open-File Report OFR 90-1

c

if(icode.ge.5)nre=«(n+l)/3)*2 do60i=1,n

c if parameter is fixed bypass it c

c

if(ipf(i).eq.l)go to 58 icount=icount+l p(i)=pO(i)+dp(icount)

c don't let depths migrate past next layer boundary causing c negative thicknesses c c loop around if this parameter is a resistivity c

if(i.le.nre)go to 56 c c loop around if thicknesses are being used c

c

if(ic.eq.l)go to 56 if(i.eq.n)go to 50 if(p(i).lt. (pO(i+l)-(deriv+O.OOl»)go to 50

c depth is trying to migrate deeper than depth-to-bottom of c next layer c c The number deriv+.OOl is used to prevent a negative thickness when c calculating the first forward difference in subroutine zjacob c since deriv is used as the parameter increment. c

c

p(i)=pO(i+l)-(deriv+O.OOl) go to 56

50 if(i.eq.(nre+l»go to 56 if(p(i).gt. (p(i-l)+(deriv+O.OOl»)go to 56

c depth is trying to migrate shallower than depth-to-bottom of c previous layer c

c

c

p(i)=p(i-l)+deriv+O.OOl

56 write(lO,llO)(lO.**pO(i»,pO(i), (lO.**p(i» ,p(i) if(igrf.eq.O)write(O,llO)(lO.**pO(i» ,pO(i), (lO.**p(i» ,p(i) go to 60

58 p(i)=pO(i) 60 continue

if(igrf.eq.l)call sparm(p,n,ipf,metric,icode) ipass=O

C format statements C

100 for-mat(lx, 'old parameter' ,t25, 'log' ,t35, 'new parameter' ,t60, x'log',/)

131

Page 139: New Jersey Geological Survey Open-File Report OFR 90-1

110 format(lx,f13.2,t20,f10.4,t35,f13.2,t55,f10.4) 120 format(1x, 'no. I ,t20, 'eigenvalue' ,I)

c

130 format(lx,i2,t20,f10.4) return end

c ************************ start of SVD **************************** c

subroutine hysvd(a,s,v,mmax,nmax,m,n,p,withu,withv) c

c

integer mmax,nmax,m,n,p real r,w,cs,sn,tol,f,x,eps,g,t,y real eta,h,q,z integer i,j,k,l,ll,n1,np logical withu,withv dimension a(130,44) ,s(44) ,v(44,44)

c -------------------------------------------------------------------c c This is a translation of a cdc 6600 fortran program to ibm 360 c fortran iv. This subroutine uses short precision arithmetic. c A long precision version is available under the name "dsvd". c c The subroutine replaces earlier subroutines with the same name, c which were translations of a complex arithmetic program, published c as algorithm 358. This current program is faster, more accurate c and less obscure in describing its capabilities. c c original programmer= R. C. Singleton c 360 version by= J. G. Lewis c Last revision of this subroutine~ 4 December 1973 c c c c c c c c

additional subroutine needed= rotate

c This subroutine computes the singular value decomposition c of a real m*n matrix a, i.e. it computes matrices u,s,and v c such that c c c where c c c c c c

and

u is

v is

s is

a = u * s * vt

an m*n matrix and ut*u i , (ut=transpose of u) ,

an n*n matrix and vt*v i , (vt=transpose of v) ,

an n*n diagonal matrix.

132

Page 140: New Jersey Geological Survey Open-File Report OFR 90-1

c description of parameters c c a= real array. a contains the matrix to be decomposed. c the original data are lost. If withv=.true., then c the matrix u is computed and stored in the array a. c c c

mmax = integer variable. The number of rows in the

c c c c

nmax

c m,n c c c c c c c c c c c c c

p

array a.

integer variable. array v.

The number of rows in the

integer variables. The number of rows and columns in the matrix stored in a. (ng=mg=100. If it is necessary to solve a larger problem, then the amount of storage allocated to the array t must be increased accordingly.) If mIt n, then either transpose the matrix a or add rows of zeros to increase m to n.

integer variable. If p>O, then columns n+1, n+p of a are assumed to contain the columns of an m*p matrix b. This matrix is multiplied by ut, and upon exit, a contains in these same columns the n*p matrix ut*b. (p>=O)

c withu, withy = logical variables. If withu=.true., then c the matrix u is computed and stored in the array a. c If withv=.true., then the matrix v is computed and c stored in the array v. c c c c c

s

c v c c c

real array. s(l), sIn) contain the diagonal elements of the matrix s ordered so that s(i»=s(i+1), i=l, n-1.

real array. v contains the matrix v. If withu and withy are not both = .true., then the actual parameter corresponding to a and v may be the same.

c This subroutine is a real version of a fortran subroutine c by Businger and Golub. algorithm 358= singular value c decomposition of a complex matrix, comm. acm. v. 12. c no. 10, pp. 564-565 (Oct. 1969). c with revisions by He Singleton. May 1972. c -----------------------------------------------------------------c

dimension t(250) c C eclipse constants

data eta.tol/l.ge-7.1.1e-30/ C

133

Page 141: New Jersey Geological Survey Open-File Report OFR 90-1

c data eta.tol /1.5e-15.1.e-250/ c c c eta (16**-6) and tol (16**-59) are machine dependent constants c for ibm 360/370 computers (short form arithmetic). c eta is the machine epsilon (relative accuracy)_ c tal is the smallest representable real divided by cta. c

c

np=n+p nl=n+l

c householder reduction to bidiagonal form g=O.O

c

eps=O.O 1 = 1

10 t(l)=g k=l 1=1+1

c elimination of a(i .k). i=k+1 • .... m s(k)=O.O

c

z=O.O do 20 i=k.m

20 z=z+a(i.k)*a(i.k) if(z.lt.tol) go to 50 g=sqrt(z) f=a(k.k) if(f.ge.O.O)g=-g s(k)=g h=g*(f-g) a(k.k)=f-g if(k.eq.np)go to 50 do 40 j=l.np f=O do 30 i=k.m

30 f=f+a(i.k)*a(i.j) f=f/h do 40 i=k.m

40 a(i.j)=a(i.j)+f*a(i.k)

c elimination of a(k.j). j=k+2 ..... n 50 eps=amaxl(eps.abs(s(k»+abs(t(k»)

if(k.eq.n)go to 100 g=O.O z=O.O do 60 j=l.n

60 z=z+a(k.j)*a(k.j) if(z.lt.tol)go to 10 g=sqrt(z) f=a(k.l) if(f.ge.O.O)g=-g

134

Page 142: New Jersey Geological Survey Open-File Report OFR 90-1

c

c

h=g*(f-g) a(k,l)=f-g do 70 j=l,n

70 t(j)~a(k,j)/h

do 90 i=l,m f=O do 80 j=l,n

80 f=f+a(k,j)*a(i,j) do 90 j=l,n

90 a(i,j)=a(i,j)+f*t(j)

go to 10

c tolerance for negligible elements 100 eps=eps*eta

c c accumulation of transformations

if( .not.withv)go to 160

c

k=n go to 140

110 if(t(l).eq.O.O)go to 140 h=a(k,l)*t(l) do 130 j=l,n q=O do 120 i=l,n

120 q=q+a(k,i)*v(i,j) q=q/h do 130 i=l,n

130 v(i,j)=v(i,j)+q*a(k,i) 140 do 150 j=l,n 150 v(k,j)=O

v{k,k)=1.0 l=k k=k-1 if(k.ne.O)go to 110

160 k=n if(.not.withu)go to 230 g=s(n) if(g.ne.0.0)g=1.0/g go to 210

170 do 180 j=l,n 180 a(k,j)=O

g=s(k) if(g.eq.O.O)go to 210 h=a(k,k)*g do 200 j=l,n q=O do 190 i=l,m

190 q=q+a(i,k)*a(i,j) q=q/h

135

Page 143: New Jersey Geological Survey Open-File Report OFR 90-1

c

do 200 i=k.m 200 a(i.j)=a(i.j)+q*a(i.k)

g=1.0/g 210 do 220 j=k.m 220 a(j.k)=a(j.k)*g

a(k.k)=a(k.k)+1.0 l=k k=k-l if(k.ne.O)go to 170

c qr diagonalization k=n

c c test for split

230 l=k 240 if(abs(t(l».Je.eps)go to 290

1=1-1 if(abs(s(l».gt.eps)go to 240

c c cancellation

cs=O.O sn=1.0 11=1 1=1+1 do 280 i=l.k f=sn*t(i) t(i)=cs*t(i) if(abs(f).le.eps)go to 290 h=s(i) w=sqrt(f*f+h*h) s(i)=w cs=h/w sn=-f/w if(withu)call hyrot(a(1.11) .a(l.i) .cs.sn.m) if(np.eq.n)go to 280

c

do 270 j=n1.np q=a(ll.j) r=a(i.j) a(ll.j)=q*cs+r*sn

270 a(i.j)=r*cs-q*sn 280 continue

c test for convergence 290 w=s(k)

if(l.eq.k)go to 360 c c origin shift

x=s ( I ) y=s(k-1) g=t(k-1) h=t(k)

136

Page 144: New Jersey Geological Survey Open-File Report OFR 90-1

c

f=«y-w)*(y+w)+(g-h)*(g+h»/(2.0*h*y) g=sqrt(f*f+1.0) if(f.1t.0.0)g=-g f=«x-w)*(x+w)+(y/(f+g)-h)*h)/x

c qr step cs=1.0 sn=1.0 11=1+1

c

c

do 350 i=ll,k g= t (i ) y=s(i) h=sn*g g=cs*g w=sqrt(h*h+f*f) t(i-1)=w cs=f/w sn=h/w f=x*cs+g*sn g=g*cs-x*sn h=y*sn y=y*cs if(withv)call hyrot(v(1,i-1),v(1,i),cs,sn,n) w=sqrt(h*h+f*f) s(i-1)=w cs=f/w sn=h/w f=cs*g+sn*y x=cs*y-sn*g if(withu)call hyrot(a(1,i-1),a(1,i),cs,sn,m) if(n.eq.np)go to 350 do 340 j=n1,np q=a(i-1,j) r=a(i,j) a(i-1,j)=q*cs+r*sn

340 a(i,j)=r*cs-q*sn 350 continue

t(l)=O.O t(k)=f s(k)=x go to 230

c c'onvergence 360 if(w.ge.O.O)go to 380

s(k)=-w if(.not.withv)go to 380 do 370 j=1,n

370 v(j,k)=-v(j,k) 380 k=k-1

if(k.ne.O)go to 230

137

Page 145: New Jersey Geological Survey Open-File Report OFR 90-1

c c sort singular values

do 450 k=l,n g=-l.O

c

c

do 390 i=k,n if(s(i).lt.g)go to 390 g=s(i) j=i

390 continue if(j.eq.k)go to 450 s(j)=s(k) s(k)=g if( .not.withv)go to 410 do 400 i=l,n q=v(i,j) v ( i , j ) =V ( i , k )

400 v(i,k)=q 410 if( .not.withu)go to 430

do 420 i=l,m q=a(i,j) a(i,j)=a(i,k)

420 a(i,k)=q 430 if(n.eq.np)go to 450

do 440 i=nl,np q=a(j,i) a(j,i)=a(k,i)

440 a(k,i)=q 450 continue

return end

subroutine hyrot(x,y,cs,sn,n) real x(n),y(n),cs,sn

c c

do 10 j=l,n xx=x(j) x(j)=xx*cs+y(j)*sn y(j)=y(j)*cs-xx*sn

10 continue return end

c ******************************************************** subroutine resist(n,nr,resis,thick,r,v,icoefs)

c ******************************************************** c c RESIST calculates voltages on c uses a convolution method (eg c coefficients from W. Anderson

a layered earth about a point electrode . 1 te r

Koefoed Geophys Prosp. v20 p406). Fl (U.S.G.S De~ver), n=no of layers.

c nr= distances at which voltages are required. resis contains

138

Page 146: New Jersey Geological Survey Open-File Report OFR 90-1

c resistivities of layered structure. thick contains layer thicknesses. c r contains distances at which voltages are required. v contains c voltages. program takes arbitrary structures and no of observation c points. ****** NOTE RESISTIVITIES IN RESIS ARE DESTROYED. ****** c c Modified on December 5, 1986 c by: Stewart Sandberg c NJGS c c Modifications are to speed-up the routine since the application is c microcomputer based. The original subroutine can be found in: c c Sandberg, S. K., 1979, Documentation and analysis of the c Schlumberger interactive 1-0 inversion program SLUMB: c Univ. of Utah Dept. Geol. and Geophys. Report c DOE/ET/27002-2, 84 p. c

c

double precision v(3),paa,ao,wo,g,robs,tk,tr,p1,e,tex,tmu dimension resis(15) ,thick(15) ,r(3)

c The ao coefficients have already been modified in the first few c lines of the main routine. They are dexp(ao). c

common/blkcf lao (61) ,wo (61) p1=dble(resis(1)) nn=n-1 do 30 1=I,nn

30 resis(i)=resis(i)/resis(i+1) do 100 kr=I,nr paa=O.OOd+OO robs=dble(r(kr)) do 2 j =, 1,61 g=2.00d+00*ao(j)/robs tk=1.00d+OO do 1 I=nn,1.-1 tr=dble(resis(i)) tmu=(tr-tk)/(tr+tk) e=g*dble(thick(i))

if(e.le.80.00d+00.and.e.ge.-80.00d+00)then tex=dexp(-e) else tex=O.Od+OO

end if tmu=tmu*tex

tk=(1.00d+00-tmu)/(1.00d+00+tmu) 1 continue 2 paa=paa+tk*wo(j)

paa=paa*pl 100 v(kr)=paa/(6.283185307d+00*robs)

return end

139

Page 147: New Jersey Geological Survey Open-File Report OFR 90-1

c c ****************************************************************

block data c ****************************************************************

double precision ao,wo common/blkcr lao (61) ,wo (61) common/zblcf/waO(76) ,wbO(76) ,wcO(76) ,wdO(55) ,wa1(76) ,wb1(76),

+wcl(76),wd](55) data aol

*-6.8348046d+00, *-5.9137706d+00, *-4.9927366d+00, *-4.0717026d+00, *-3.1506686d+00, *-2.2296346d+00, *-1.3086006d+00, *-3.8756658d-01, * 5. 3346742d--01, * 1.4545014d+00, * 2.3755354d+00, * 3.2965694d+00, * 4.2176034d+00, * 5.1386374d+00, * 6.05967]4d+00, * 6.9807054d+001 data wol

* 7.3260937d-04, * 3.5918326d-04, * 1.2841617d-03, * 3.6321245d-03, * 9.5527062d-03, * 2.4396626d-02, * 6.0824806d-02, * 1.3868663d-01, * 1.555674] d-Ol , *-3.5565260d-01, *-2.6102989d-Ol, *-5.1097828d-04, * 5.8044372d-03, * 3.2266260d-03, * 2.1115187d-03, * 1.3468317d-031

DATA WAOI

-6.6045461d+OO, -5.6835121d+00, -4.7624781d+OO, -3.8414441d+00, -2.9204101d+OO, -1.9993761d+00, -1. 078~~421d+00, -1.5730808d-01, 7.6372592d-Ol, 1.6847599d+00, 2.6057939d+00, 3.5268279d+OO, 4.4478619d+00, 5.3688959d+OO, 6.2899299d+OO,

5.6326423d-04, 1.0500608d-03, 2.2497985d-03. 5.2376028d-03, 1.2708615d-02, 3.1333652d-02, 7.6314344d-02. 1.6248847d-Ol, 6.8592481d-02.

-5.6288677d-02. 2.1416490d-Ol.

-6.6032948d-03, -4.9354894d-03. -2.8649137d-03, -1.9334662d-03,

-6.3742876d+OO, -6.1440291d+OO, -5.4532536d+00, -5.2229951d+OO, -4. 5~i22196d+OO, -4.3019611d+00, -3.6111856d+00, -3.3809271d+00, -2.6901516d+00, -2.4598931d+00, -1.7691176d+00, -1.5388591d+00, -8.4808358d-Ol, -6.1782508d-01,

7.2950416d-02, 3.0320892d-01, 9.9398442d-Ol, 1.2242429d+OO, 1.9150184d+00, 2.1452769d+00, 2.8360524d+OO, 3.0663109d+OO, 3.7570864d+OO, 3.9873449d+00, 4.6781204d+OO, 4.9083789d+OO, 5.5991544d+00, 5.8294129d+OO, 6.5201884d+OO, 6.7504469d+00,

1.3727237d-04, 7.5331222d-04, 7.1530982d-04, 1.5160070d-03, 2.1906186d-03, 3.4076782d-03, 5.9212519d-03, 8.1315877d-03, 1 . 5305589d-02. 1.9941086d-02. 3.8683065d-02. 4.9127993d-02, 9.3928346d-02, 1.1545027d-Ol. 1.8114332d-Ol, 1.8424433d-Ol,

-8.8339029d-02, -2.88]9226d-Ol. 4.8186942d-Ol, -5.1516453d-02,

-9.4490687d-02, 2.6196370d-02, 7.5193619d-03, -6.7854344d-03, 4.2323106d-03, -3.6733648d-03. 2.5677680d-03, -2.3202655d-03, 1.7800248d-03, -1.6465436d-03,

* 2.1969101E-11, 4.1201161E-09,-6.1322980E-09, 7.2479291E-09, *-7.9821627E-09, 8.5778983E-09,-9.1157294E-09, 9.6615250E-09, *-1.0207546E-08, 1.0796633E-08,-1.1393033E-08, 1.2049873E-08, *-1.2708789E-08, 1.3446466E-08,-1.4174300£-08, 1.5005577E-08, *-1.5807160E-08, 1.6747136E-08,-1.7625961E-08, 1.8693427E-08, *-1.9650840E-08, 2.0869789E-08,-2.1903555£-08, 2.3305308£-08, *-2.4407377E-08, 2.6033678£-08,-2.7186773E-08, 2.9094334E-08, *-3.0266804E-08, 3.2534013£-08,-3.3672072£-08, 3.6408936E-08,

]40

Page 148: New Jersey Geological Survey Open-File Report OFR 90-1

*-3.7425022E-08, *-4.6035233E-08, *-5.6086570E-08, *-6.7117043E-08, *-7.7553611E-08, *-8.3217217E-08, *-7.3963141E-08, *-2.6163525E-08, * 1.1407365E-07, * 4.6831433E-07, * 1.3091334E-06,

DATA WBO/

4.0787921E-08,-4.1543242E-08. 5.1425075E-08.-5.0893896E-08. 6.5475248E-08.-6.1539913E-08. 8.4767837E-08.-7.2583120E-08. 1.1279873E-07,-8.1416723E-08. 1.5663185E-07.-8.1482581E-08. 2.3109673E-07.-5.7243707E-08, 3.6808773E-07. 2.7049871E-08. 6.3720626E-07. 2.5241961E-07, 1.1916346E-06. 8.0099716E-07. 2.3701475E-06, 2.0803829E-06.

4.5756842E-08. 5.7934897E-08. 7.4301996E-08, 9.7366568E-08. 1.3206914E-07, 1.8860593E-07. 2.8867452E-07, 4.7932617E-07. 8.6373487E-07. 1.6696015E-06, 3.4012978E-06/

* 3.2456774E-06, 4.9240402E-06, 5.0005198E-06, 7.1783540E-06, * 7.6367633E-06, 1.0522038E-05, 1.1590021E-05, 1.5488635E-05, * 1.7510398E-05, 2.2873836E-05, 2.6368006E-05, 3.3864387E-05. * 3.9610390E-05. 5.0230379E-05. 5.9397373E-05. 7.4612122E-05. * 8.8951409E-05. 1.1094809E-04. 1.3308026E-04. 1.6511335E-04. * 1.9895671E-04, 2.4587195E-04, 2.9728181E-04. 3.6629770E-04. * 4.4402013E-04. 5.4589361E-04. 6.6298832E-04. 8.1375348E-04. * 9.8971624E-04. 1.2132772E-03. 1.4772052E-03. 1.8092022E-03. * 2.2045122E-03. 2.6980811E-03. 3.2895354E-03. 4.0238764E-03. * 4.9080203E-03. 6.0010999E-03. 7.3216878E-03. 8.9489225E-03. * 1.0919448E-02. 1.3340696E-02. 1.6276399E-02. 1.9873311E-02. * 2.4233627E-02. 2.9555699E-02. 3.5990069E-02. 4.3791529E-02. * 5.3150319E-02. 6.4341372E-02. 7.7506720E-02. 9.2749987E-02. * 1.0980561E-01. 1.2791555E-01. 1.4525830E-01. 1.5820085E-01. * 1.6058576E-01. 1.4196085E-01. 8.9781222E-02.-1.0238278E-02. *-1.5083434E-01,-2.9059573E-01.-2.9105437E-01.-3.7973244E-02, * 3.8273717£-01. 2.2014118E-01.-4.7342635E-01. 1.9331133E-01. * 5.3839527E-02,-1.1909845E-01. 9.9317051E-02.-6.6152628E-02, * 4.0703241E-02.-2.4358316E-02. 1.4476533E-02.-8.6198067E-03/

DATA weo/ * 5.1597053E-03.-3.1074602£-03. * 7.0004347E-04.-4.2904226E-04. * 9.9891279E-05,-6.1589037E-05. * 1.4479572E-05,-8.9417427E-06, * 2.1074101E-06.-1.3019229E-06, * 3.0702417E-07.-1.8969219E-07, * 4.4740283£-08.-2.7643004E-08. * 6.5200311E-09,-4.0284597E-09. * 9.5019040£-10.-5.8708696E-10, * 1.3847792E-10,-8.5560821E-11. * 2.0182948E-11,-1.2470979E-11. * 2.9415274E-12.-1.8170081E-12, * 4.2739744E-13,-2.6344388E-13. * 6.0487998E-14,-3.6973097E-14. * 9.1574735E-15.-5.9567236E-15. * 1.6406939E-15.-8.8248590E-16. *-8.0942556E-17.-3.7172363E-17. * 4.6174116E-16.-5.8627358E-16, * 1.0211793E-15,-1.0940039E-15.

141

1.8822342E-03.-1.1456545E-03. 2.6354444E-04.-1.6215439E-04, 3.7996921E-05.-2.3452250E-05. 5.5227518E-06,-3.4114252E-06, 8.0433617E-07.-4.9693681E-07. 1.1720069E-07.-7.2412496E-08. 1.7079403E-08.-1.0552634E-08. 2.4890232E-09.-1.5378695E-09. 3.6273937E-10.-2.2412348E-10, 5.2865474E-11.-3.2664392E-11, 7.7057678E-12.-4.7611713E-12. 1.1221034E-12,-6.9271067E-13, 1.6197105E-13.-9.9147443E-14. 2.2817964E-14,-1.4315547E-14, 3.9209969£-15.-2.5911739E-15. 3.0195409E-16. 2.2622634E-17, 1.9299542E-16.-3.3388160E-16. 7.2227767£-16,-8.7972941E-16, 1.0789555E-15.-9.7089714E-16/

Page 149: New Jersey Geological Survey Open-File Report OFR 90-1

DATA WDO/ * 7.4110927E-16,-4.1700094E-16, 8.5977184E-17, 1.3396469E-16, *-1.7838410E-16, 4.8975421E-17, 1.9398153E-16,-5.0046989E-16, * 8.3280985E-16,-1.1544640E-15, 1.4401527E-15,-1.6637066£-15, * 1.7777129E-15,-1.7322187E-15, 1.5247247E-15,-1.1771155E-15, * 6. 9 74 7 9 1 0 E - 1 6 , - 1 . 2 0 8 8 9 5 6 E- 1 6 , -- 4 . 8 3 8 2 9 5 7 E - 1 6, 1. 0 4 0 8 2 9 2 E - 1 5 , *-1.5220450E-15, 1.9541597E-15,-2.4107448E-15, 2.9241438E-15, *-3.5176475E-15, 4.2276125E-15,-5.0977851E-15, 6.1428456E-15, *-7.3949962E-15, 8.8597601E-15,-1.0515959E-14, 1.2264584E-14, *-1.3949870E-14, 1.5332490E-14,-1.6146782E-14, 1.6084121E-14, *-1.4962523E-14, 1.2794804E-14,-9.9286701E-15, 6.8825809E-15, *-4.0056107E-15, 1.5965079E-15,-7.2732961E-18,-4.0433218£-16, *-6.5679655E-16, 3.3011866E-15,-7.3545910E-15, 1.2394851E-14, *-1.7947697E-14, 2.3774303E-14,-3.0279168E-14, 3.9252831E-14, *-5.5510504E-14, 9.0505371E-14,-1.7064873E-13/

DATA WAI/ *-4.2129715E-16, 5.3667031E-15,-7.1183962E-15, 8.9478500E-15, *-1.0767891E-14, 1.2362265E-14,-1.3371129E-14, 1.3284178E-14, *-1.1714302E-14, 8.4134738£-15,-3.7726725E-15,-1.4263879E-15, * 6.1279163E-15,-9.1102765E-15, 9.9696405E-15,-9.3649955E-15, * 8.6009018£-15,-8.9749846£-15, 1.1153987E-14,-1.4914821E-14, * 1.9314024E-14,-2.3172388E-14, 2.5605477E-14,-2.6217555E-14, * 2.5057768£-14,-2.2485539E-14, 1.9022752E-14,-1.5198084E-14, * 1.1422464E-14,-7.9323958E-15, 4.8421406E-15,-2.1875032E-15, *-3.2177842E-17, 1.8637565£-15,-3.3683643E-15, 4.6132219£-15, *-5.6209538E-15, 6.4192841E-15,-6.8959928E-15, 6.9895792E-15, *-6.5355935E-15, 5.6125163E-15,-4.1453931E-15, 2.6358827E-15, *-9.5104370E-16, 1.4600474E-16, 5.6166519E-16, 8.2899246E-17, * 5.0032100E-16, 4.3752205E-16, 2.1052293£-15,-9.5451973E-16, * 6.4004437E-15,-2.1926177E-15, 1.1651003E-14, 5.8415433E-16, * 1.8044664E-14, 1.0755745E-14, 3.0159022E-14, 3.3506138E-14, * 5.8709354E-14, 8.1475200E-14, 1.2530006E-13, 1.8519112E-13, * 2.7641786E-13, 4.1330823E-13, 6.1506209£-13, 9.1921659£-13, * 1.3698462E-12, 2.0447427E-12, 3.0494477E-12, 4.5501001E-12, * 6.7870250£-12, 1.0126237E-11, 1.5104976E-11, 2.2536053E-11/

DATA WBl/ * 3.3617368E-11, 5.0153839E-11, 7.4818173E-11, 1.1161804E-10,

* 1.6651222E-10, 2.4840923E-10, 3.7058109E-10, 5.5284353E-10, * 8.2474468E-10, 1.2303750E-09, 1.8355034E-09, 2.7382502E-09, * 4.0849867E-09, 6.0940898E-09, 9.0913020E-09, 1.3562651E-08, * 2.0233058E-08, 3.0184244E-08, 4.5029477E-08, 6.717G304£-08, * 1.0021488E-07, 1.4950371E-07, 2.2303208E-07, 3.3272689E-07, * 4.963G623E-07, 7.4049804E-07, 1.1046805£-06, 1.6480103£-06,

-* 2.4585014E-06, 3.6677163E-06, 5.4714550E-06, 8.1626422E-06, * 1. 2176782E-05, 1.8166179E-05, 2.7099223E-05, 4.0428804E-05, * 6.0307294E-05, 8.9971508E-05, 1.3420195E-04, 2.0021123E-04, * 2.9860417E-04, 4.4545291£-04, 6.6423156E-04, 9.9073275£-04, * 1.4767050E-03, 2.2016806E-03, 3.2788147E-03, 4.8837292E-03, * 7.2596811E-03, 1 . 0788355E-02, 1.5973323£-02, 2.3612041E-02, * 3.4655327E-02, 5.0608141£-02, 7.2827752E-02, 1.0337889E-01, * 1.4207357E-01, 1.8821315£-01, 2.2996815E-Ol, 2.5088500E-01,

142

Page 150: New Jersey Geological Survey Open-File Report OFR 90-1

* 2.0334626E-01, 6.0665451E-02,-2.0275683E-01,-3.5772336E-01. *-1.8280529E-01, 4.7014634E-01, 7.2991233E-03,-3.0614594£-01, * 2.4781735E-01,-1.1149185E-Ol, 2.5985386£-02, 1.0850279E-02, *-2.2830217E-02, 2.4644647E-02,-2.2895284E-02, 2.0197032£-02/

DATA wel/ *-1.7488968£-02, 1.5057670£-02,-1.2953923E-02, 1.1153254E-02, *-9.6138436E-03, 8.2952090E-03,-7.1628361E-03, 6.1882910E-03, *-5.3482055E-03, 4.6232056£-03,-3.9970542E-03, 3.4560118E-03, *-2.9883670E-03, 2.5840861E-03,-2.2345428E-03, 1.9323046E-03, *-1.6709583E-03, 1.4449655£-03,-1.2495408£-03, 1.080b480E-03, *-9.3441130E-04, 8.0803899E-04,-6.9875784E-04, 6.0425624E-04, *-5.2253532£-04, 4.5186652E-04,-3.9075515E-04, 3.3790861E-04, *-2.9220916£-04, 2.5269019E-04,-2.1851585E-04, 1.8896332E-04, *-1.6340753£-04, 1.4130796E-04,-1.2219719E-04, 1.0567099E-04, *-9.1379828E-05, 7.9021432E-05,-6.8334412E-05, 5.9092726E-05, *-5.1100905E-05, 4.4189914E-05,-3.8213580E-05, 3.3045496E-05, *-2.8576356E-05, 2.4711631E-05,-2.1369580E-05, 1.8479514E-05, *-1.5980307E-05, 1.3819097E-05,-1.1950174E-05, 1.0334008E-05, *-8.9364160E-06, 7.7278366E-06,-6.6827083E-06, 5.7789251E-06, *-4.9973715E-06, 4.3215167E-06,-3.7370660E-06, 3.2316575E-06, *-2.7946015E-06, 2.4166539E-06,-2.0898207E-06, 1.8071890E-06, *-1.5627811£-06, 1.3514274E-06,-1.1686576£-06, 1.0106059E-06, *-8.7392952E-07. 7.5573750E-07,-6.5353002E-07, 5.6514528E-07, *-4.8871388E-07, 4.2261921£-07,-3.6546333£-07, 3.1603732£-071

DATA WDI/ *-2.7329579E-07, 2.3633470E-07,-2.0437231E-07, 1.7673258E-07, *-1.5283091E-07, 1.3216174E-07,-1.1428792E-07, 9.8831386E-08, *-8.5465227E-08, 7.3906734E-08,-6.3911437E-08, 5.5267923E-08, *-4.7793376E-08, 4.1329702E-08,-3.5740189E-08, 3.0906612E-08, *-2.6726739E-08, 2.3112160E-08,-1.9986424E-08, 1.7283419E-08, *-1.4945974E-08, 1.2924650E-08,-1.1176694E-08, 9.6651347E-09, *-8.3580023E-09, 7.2276490E-09,-6.2501673£-09, 5.4048822E-09, *-4.6739154E-09, 4.0418061E-09,-3.4951847E-09, 3.0224895E-09, *-2.6137226E-09, 2.2602382E-09,-1.9545596E-09, 1.6902214E-09, *-1.4616324E-09, 1.2639577E-09,-1.0930164E-09, 9.4519327E-10, *-8.1736202E-10, 7.0681930E-10,-6.1122713E-10, 5.2856342E-10, *-4.5707937E-10, 3.9526267E-10,-3.4180569E-10, 2.9557785E-10, *-2.5560176E-10, 2.2103233E-10,-1.9113891£-10, 1.6528994E-10, *-1.4294012E-10, 1.2361991£-10,-8.2740936£-11/

end

143

Page 151: New Jersey Geological Survey Open-File Report OFR 90-1

c c********************************************************

subroutine screen(datafl,icode,ifwd,pO,n,ipf,ic,metric) c******************************************************** c c This routine was added to a modified EINVRT,FOR program c for displaying program functions and output on a graphics c screen, c c This subroutine sets up the graphics screen at the beginning of c the program. All function calls relate to the IBM Graphics c Development Toolkit, with specific subroutines from the IBM c Professional Fortran set. c c version 3,00 - March 19, 1990 c c written by: c

Stewart Sandberg Rutgers University and NJGS

c

c

integer*2 savary,nominate,devhandle,coordl,coord2,status,crud, +crap,crum character*15 datafl,dummyl character*7 dummy character*29 pline character*3 dum dimension savary(66) ,nominate(19) ,coordl (8) ,coord2(4) ,pO(44),

+ipf(44) common /scrn/devhandle,iup common /xxxx/rmax,rmin,cmax,cmin,ab2max,ab2min,tmax,tmin common /xxyy/zeror,zeroip,zeroa,zerot data nominate/l,l,l,2,l,l,l,l,l,l,O,68,73,83,80,76,65,89,32 I

c open workstation c

status=vopnwk(nominate,devhandle,savary) c c draw plot axes c

c

coordl(1)=3922 coord1(2)=4268 coordl(3)=19233 coord1(4)=19579 status=vsfint(devhandle,O) status=vbar(devhandle,coord1) status=vsthgt(devhandle,586,crud,crap,crum)

c draw tick marks and tick labels c aa3 = length of 1 log cycle or 5 msec in Noe c

coordl(2)=3968 coord1(4)=4268

144

Page 152: New Jersey Geological Survey Open-File Report OFR 90-1

c

coord2(2)=19579 coord2(4)=19879 aa3=15311./(4.-alogl0(7.0»

c span = total length in NDC of the span of the data c spanr = apparent resistivity c spanip= IP c c

spana = ab/2 spant = sample time

c zero c

y-value in NDC of: zeror = 1 ohm-m zeroip= 0 msec c

c c c

c

zeroa ab/2 = 1 m zerot = 1 msec

spanr=(alogl0(rmax)-alogl0(rmin»*aa3 zeror=11923.-spanr/2.0-alogl0(rmin)*aa3 if(icode.lt.5)go to 2 spanip=((cmax-cmin)/5.0)*aa3 zeroip=11923.-spanip/2.0-(cmin/5.0)*aa3

2 if(icode.eq.l)go to 3 spana=(alogl0(ab2max)-alogl0(ab2min»*aa3 zeroa=11577.-spana/2.0-alogl0(ab2min)*aa3

3 if(icode.eq.2.or.icode.eq.5)go to 4 spant=(aloglO(tmax)-alogl0(tmin) )*aa3 zerot=11577.-spant/2.0-alogl0(tmin)*aa3

4 continue

c ab/2 axis c if TEM only skip this c c set text alignment to right bottom c

status=vstaln(devhandle,2,O,crud,crap) if(icode.eq.l)go to 17 i=O ii=O bunk=zeroa

9 if(bunk.lt.3922.)go to 11 bunk=bunk-aa3 i=i-l go to 9

11 continue do 15 j=2,10 coordl(I)=bunk+(float(i)+alogl0(float(j»)*aa3 if(coordl(I).1t.3922.)go to 15 if(coordl(I).gt.19233.)go to 13 coordl(3)=coordl(1) status=vpline(devhandle,2,coordl) go to 15

1 3 i i = 1

145

Page 153: New Jersey Geological Survey Open-File Report OFR 90-1

15 continue c - tick label

c

c

crap=3168 crud=zeroa+float(i)*aa3 if«crud.lt.3922.).or.crud.gt.19233.)go to 16 rewind 13 ice=10.**float(i)+.OOl if(ice.eq.O)go to 203 write(13.200)ice

200 format(lx.i7) 201 rewind 13

read(13.202)dummy 202 format(lx.a7)

crud=crud+300 status~vgtext(devhandle.crud.crap,dummy)

16 if(ii.eq.l)go to 17 i=i+1 go to 11

203 rice=lO.**float(i) if(rice.ge.0.Ol)write(13.206)rice go to 201

17 continue

c time axis c if resistivity or resis/IP only skip this c

if(icode.eq.2.or.icode.eq.5)go to 27 i=O ii=O bunk=zerot

19 if(bunk.lt.3922. )go to 21 bunk=bunk-aa3 i=i-1 go to 19

21 continue do 25 j=2.10 coord2(1)=bunk+(float(i)+alog10(float(j»)*aa3 if(coord2(1) .It.3922. )go to 25 if(coord2(1).gt.19233.)go to 23 coord2(3)=coord2(1) status=vpline(devhandle,2.coord2) go to 25

23 ii=1 25 continue 255 continue

c - tick label crap=20179 crud=zerot+float(i)*aa3 if«crud.lt.3922.).or.crud.gt.19233.)go to 26 rewind 13

146

Page 154: New Jersey Geological Survey Open-File Report OFR 90-1

c

c

rice=10.**float(i) if(rice.ge.1.0)ice=rice if(rice.ge.1.0)write(13,200)ice if(rice.ge.1.0)go to 212

204 format(1x,f7.0) if(rice.ge.0.1)write(13,206)rice if(rice.ge.0.1)go to 212

206 format(1x.f7.1) if(rice.ge.0.01)write(13,208)rice if(rice.ge.0.01)go to 212

208 format(lx,f7.2) if(rice.ge.0.001)write(13,210)rice if(rice.ge.0.001)go to 212

210 format(1x,f7.3) 212 rewind 13

read(13.202)dummy crud=crud+300 status=vgtext(devhandle.crud.crap.dummy)

26 if(ii.eq.1)go to 27 i=i+1 go to 21

27 continue

c apparent resistivity axis c

i=O ii=O bunk=zeror

c set alignment to right center status=vstaln(devhandle.2.1.crud.crap) coordl(I)=3622 coord1(3)=3922

29 if(bunk.lt.4268.)go to 31 bunk=bunk--aa3 i=i-l go to 29

31 continue do 35 j=2,10 coordl(2)=bunk+(float(i)+alog10(float(j»)*aa3 if(coord1(2).1t.4268.)go to 35 if(coordl(2).gt.1957H.)go to 33 coordl(4)=coordl(2) status=vpline(devhandle.2.coord1) go to 35

33 ii=1 35 continue

c - tick label crap=3522 crud=zeror+float(i)*aa3 if((crud.lt.4268.).or.crud.gt.19579.)go to 360

147

Page 155: New Jersey Geological Survey Open-File Report OFR 90-1

c

c

rewind 13 icc=10.**float(i)+.OOI if(ice.ge.l)write(13,200)ice if(ice.ge.l)go to 36 rice=10.**float(i) if(ricc.ge.0.09)write(13,206)rice if(rice.ge.0.09)go to 36 if(rice.ge.0.009)write(13,208)rice if(rice.ge.0.009)go to 36 if(rice.ge.0.0009)write(13,210)rice if(rice.ge.0.0009)go to 36

36 rewind 13 read(13,202)dummy status~vgtext(devhandle,crap,crud,dummy)

360 if(ii.eq.1)go to 37 i=i+l go to 31

37 continue

c apparent chargeability axis c if no chargeability skip this c

if(icode.lt.5)go to 43 c set alignment to left center

status=vstaln(devhandle,0,1,crap,crud) ii=O i=O bunk=zeroip coord1(1)=19233 coordl(3)=19533

39 if(bunk.lt.4268. )go to 41 bunk=bunk-aa3/5.0 i=i-1 go to 39

41 continue coord1(2)=bunk+float(ii)*aa3/5.0 ii=ii+l i=i+1 if(coord1(2).lt.4268.)go to 41 if(coordl(2).gt.19579.)go to 43 coord1(4)=coord1(2) status=vpline(devhandle,2,coordl) ieven=float(ii)/2.0 ieven=2*ieven if(ieven.ne.ii)go to 41 rewind 13 ice=float(j-1) write(13,190)ice

190 format(1x,i3) rewind 13

148

Page 156: New Jersey Geological Survey Open-File Report OFR 90-1

c

read(13,191)dum 191 format(lx,a3)

crud=19633 crap=coord1(2) status=vgtext(devhandle,crud,crap,dum) go to 41

43 continue

c axis labels c ab/2 axis c c set text alignment to left bottom

status=vstaln(devhandle,O,O,crap,crud) if(icode.eq.1)go to 45 crap=2168 crud=3922+aa3 if(icode.ne.4)

+status=vgtext(devhandle,crud,crap, , ab/2 (m)') if{icode.eq.4)

+status=vgtext(devhandle,crud,crap,' n-spacing' 45 if{icode.eq.2.or.icode.eq.5)go to 47

c TEM axis crap=21079 crud=3922+aa3 status=vgtext(devhandle,crud.crap, ' time (ms)')

c - apparent resistivity axis 47 crap=1472

status=vstrot(devhandle,900) crud=4300 status=vgtext(devhandle.crap.crud, 'apparent resistivity (ohm-m)')

c - apparent chargeability axis if(icode.lt.5)go to 48

c - set text alignment to left top status=vstaln(devhandle.O,2,crud,crap) crud=21263 crap=4300 status=vgtext(devhandle.crud,crap,' apparent chargcahility (ms)')

48 status=vstrot(devhandle.O) c c the important stuff c

status=vstaln(devhandle.O.O.crap.crud) crap=412 crud=20880 status=vgtext(devhandle,crap,crud, 'EINVRT4') coord1 (1) =1847 coord1(2)=22000 coordl(3)=2622 coord1(4)=20658 coordl(5)=1072 coord1(6)=20658

149

Page 157: New Jersey Geological Survey Open-File Report OFR 90-1

c

coordl(7)=1847 coord1(8)=22000 status=vslcol(devhandle,2) status=vpline(devhandle,4,coordl) status=vslcol(devhandle,l)

c legend c c - set alignment to left center

status=vstaln(devhandle,O,I,crud,crap) coord1(1)=22790 coordl(2)=16153 coord1(3)=32766 coordl(4)=22159 status=vbar(devhandle,coord1) coordl(I)=23831 coord1(2)=21475 status=vsmhgt(devhandle,456) status=vsmtyp(devhandle,6) if(icode.ne.2.and.icode.ne.5)

+status=vpmark(devhandle,l,coordl) coordl(I)=25483 if(icode.ne.2.and.icode.nc.5)

+status=vgtext(devhandle,coordl(l) ,coordl(2), 'TEM data') coord1(2)=20563 if ( i code. ne . 1 )

+status=vgtext(devhandle,coord1(1),coord1(2), 'resistivity data') coordl(I)=23831 status=vsmtyp(devhandle,2) if(icode.ne.l)

+status=vpmark(devhandle,l,coord1) coordl(I)=25483 coord1(2)=18739 if(icode.ne.2.and.icode.ne.5)

+status=vgtext(devhandle,coordl (1) ,coord1(2), 'TEM calculated') coo1'dl(I)=23200 coord1(4)=coord1(2) coord1(3)=24783 if(icode.ne.2.and.icode.ne.5)status=vslcol(dcvhandle,3) if(icode.ne.2.and.icode.ne.5)

+status=vpline(devhandle,2,coord1) status=vslcol(devhandle,l) coordl(2)=-17827 coordl(4)=coordl(2) if(icode.ne.1)

+status=vpline(devhandle,2,coordl) coord1(1)=25483 if(icode.ne.l)

+status=vgtext(devhandle,coord1(1) ,coord1(2), 'resist calculated') coordl(I)=23831 coo l' d 1 ( 2 ) = 1 9 (j 5 1

150

Page 158: New Jersey Geological Survey Open-File Report OFR 90-1

c

status=vsmtyp(devhandle,4) if(icode.ge.5)

+status=vpmark(devhandle,l,coordl) coordl(1)=25483 if(icode.ge.5)

+status=vgtext(devhandle,coordl(1),coordl(2),'IP data') coordl(1)=23200 coordl(2)=16915 coordl(3)=24783 coordl(4)=16915 if(icode.ge.5)status=vslcol(devhandle,2) if(icode.ge.5)

+status=vpline(devhandle,2,coordl) status=vslcol(devhandle,l) coordl(1)=25483 if(icode.ge.5)

+status=vgtext(devhandle,coordl(1),coordl(2), 'IP calculated')

c status line c

crap=2 crud=967 status=vgtext (devhandle, crap, crud, 'status**>' ) crap=12710 status=vgtext(devhandle,crap,crud,' forward elapsed time:') crap=22550 crud=1879 status=vgtext(devhandle,crap,crud, , h m s') crap=2 status=vgtext(devhandle,crap,crud,datafl) crap=23200 crud=13723

c - branch off for IP if(icode.ge.5)go to 500 crap=22380 if(ic.eq.2)go to 49 if(metric.eq.l)

+status=vgtext(devhandle,crap,crud, +'layer rho thk(m)') if(metric.eq.O)

+status=vgtext(devhandle,crap,crud, +'layer rho thk(ft)')

go to 50 49 if(metric.eq.1)

+status=vgtext(devhandle,crap,crud, +'layer rho dpth(m)')

if(metric.eq.O) +status=vgtext(devhandJe,crap,crud, +'layer rho dpth(ft)')

go to 50 c IP headings

151

Page 159: New Jersey Geological Survey Open-File Report OFR 90-1

c

500 if(ic.eq.2)go to 550 if(metric.eq.l)

+status=vgtext(devhandle,crap,crud, +' rho chg thk(m)')

if(metric.eq.O) +status~vgtext(devhandle,crap,crud,

+' rho chg thk(ft)') go to 50

550 if(metric.eq.1) +status=vgtext(devhandle,crap,crud, +' rho chg dpth(m)') if(metric.eq.O)

+status=vgtext(devhandle,crap,crud, +' rho chg dpth(ft)')

c other stuff requiring the use of file 11 c

c

50 crap=23200 crud=15547 rewind 13 write(13,800)ifwd

800 format(1x,' iteration= 0/' ,i2) rewind 13 read(13,810)dummy1

810 format(1x,a15) status=vgtext(devhandle,crap,crud,dummy1) crud=14635 status=-vgtext (devhandle, crap, crud, 'RCSQ=

c put parameters on screen c

call sparm(pO,n,ipf,metric,icode) return end

c c********************************

subroutine bkupck(i) c******************************** c c routine to change text on screen to backup clock c

integer*2 crap,crud,devhandle common /scrn/devhandle,iup crud=967

11 = ' )

crap=12710 status=vgtext(devhandle.crap,crud, ' return

estim. completion:')

end c********************************

subroutine sline(icode) c********************************

152

Page 160: New Jersey Geological Survey Open-File Report OFR 90-1

c c routine to update the status line on the screen c

integer*2 status,x,y,devhandle character*20 phrase(3) common /scrn/devhandle,iup data phrase/ I calc. forward

+, '/ x=3692

','sys matrix

y=9"67 status=vgtext(devhandle,x,y,phrase(icode» return end

c************************************** subroutine smat(irow,itotal)

c************************************** c c routine to update row no. on screen of current matrix calculation c

integer*2 status,x,y,devhandle character*8 stuff common /scrn/devhandle,iup rewind 13 write(13,400)irow,itotal

400 format(l r l,i3,1/',i3) rewind 13 read(13,410)stuff

410 format(a8) x=9432 y=967 status=vgtext(devhandle,x,y,stuff) return end

c******************************** subroutine siter(itno)

c******************************** c c routine to update iteration no. on screen c

integer*2 status,x,y,devhandle character*12 stuff common /scrn/devhandle,iup rewind 13 write(13,400)itno

400 format ( 'i teration= I, i2) rewind 13 read(13,410)stuff

410 format(a12) x=23200 y=15547 status=vgtext(devhandle,x,y,stuff)

153

Page 161: New Jersey Geological Survey Open-File Report OFR 90-1

return end

c********************************* subroutine srcsq(rcsq,all)

c********************************* c c routine to update RCSQ on screen c

integer*2 status,x,Y,devhandle character*22 stuff common /scrn/devhandIe,iup rewind 13 write(13,400)rcsq,al1

400 format( 'RCSQ=' ,f7.5,' Il=' ,f6.4) rewind 13 read(13,410)stuff

410 format(a22) x=23200 y=14635 status=vgtext(devhandIe,x,y,stuff) return end

c********************************** subroutine sparm(pO,n,ipf,metric,icode)

c********************************** character*24 pline integcr*2 status,crap,crud,devhandle dimension pO(44),ipf(44) common /scrn/devhandIe,iup

c c put parameters on screen c

c

if(icodc.lt.5)nl=(n+1)/2 if(icode.ge.5)nI=(n+l)/3 crap=22380 crud=12811 if(icode.ge.5)go to 50

c without IP c

do 40 i=l, (nl-1) rewind 13 phoId=10.**pO(nl+i)/0.3048

c - 0 0 if(ipf(i).eq.O.and.ipf(nI+i).eq.O.and.metric.eq.O)

+write(13,820)i, (10.**pO(i»,phold if(ipf(i).eq.O.and.ipf(nI+i) .eq.0.and.metric.eq.1)

+write(13,820)i, (10.**pO(i», (10.**pO(nl+i» c - 1 0

if(ipf(i).eq.1.and.ipf(nl+i).eq.O.and.metric.eq.0) +write(13,821)i, (10.**pO(i»,phold

154

Page 162: New Jersey Geological Survey Open-File Report OFR 90-1

if(ipf(i).eq.l.and.ipf(nl+i).eq.O.and.metric.eq.l) +write(l3,82l)i, (lO.**pO(i», (lO.**pO(nl+i»

c - 0 1 if(ipf(i).eq.0.and.ipf(nl+i).eq.1.and.metric.eq.O)

+write(l3,822)i, (10.**pO(i»,phold if (i pf (i) . eq. O. and. i pf (nl + i) . eq. 1 . and. mctr i c. eq. 1 )

+write(l3,822)i, (10.**pO(i», (10.**pO(nl+i» c - 1 1

c

c

if (i pf (i) . eq. 1 . and. i pf (nl + i) . eq. 1 . and. metr i c. eq. 0) +write(13,823)i, (10.**pO(i» ,phold if(ipf(i).eq.1.and.ipf(nl+i).eq.1.and.metric.eq.1)

+write(13,823)i, (10.**pO(i», (10.**pO(nl+i»

rewind 13 read(13,830)pline status=vgtext(devhandle,crap,crud,pline) crud=crud-912

40 continue

c last line without thickness c

c

c

rewind 13 if(ipf(nl) .eq.1)

+write(13,823)nl, (10.**pO(nl» if(ipf(nl) .eq.O)

+write(13,822)nl, (10.**pO(nl»

rewind 13 read(13,830)pline status=vgtext(devhandle,crap,crud,pline) return

c with IP c

50 continue do 60 i=l, (nl-l) rewind 13 phold=10.**pO(2*nl+i)/0.3048

c - 0 0 0 if(ipf(i).eq.0.and.ipf(nl+i).eq.0.and.ipf(2*nl+i).eq.0.and.

+metric.eq.O) +write(13,920)(10.**pO(i», (10.**pO(nl+i» ,phold if(ipf(i) .eq.O.and.ipf(nl+i) .eq.0.and.ipf(2*nl+i) .eq.O.and.

+metric.eq.1) +write(13,920)(10.**pO(i», (10.**pO(nl+i»), (10.**pO(2*nl+i))

c - 1 0 0 if (i pf (i) . eq. 1 . and. i pf (nl + i) . eq. O. and. i pf (2 *nl + i) . eq. O. and.

+metric.eq.O) +write(13,921)(10.**pO(i), (10.**pO(nl+i) ,phold if(ipf(i).eq.l.and.ipf(nl+i).eq.0.and.ipf(2*nl+i).eq.0.and.

+metric.eq.l )

155

Page 163: New Jersey Geological Survey Open-File Report OFR 90-1

+write(13,921)(lO.**pO(i)), (lO.**pO(nl+i)), (lO.**pO(2*nl+i)) c - 0 1 0

if(ipf(i).eq.O.and.ipf(n1+i).eq.l.and.ipf(2*nl+i).eq.O.and. +metric.eq.O) +write(13,922)(10.**pO(i)), (10.**pO(nl+i)) ,phold

if(ipf(i).eq.O.and.ipf(nl+i).eq.1.and.ipf(2*nl+i).eq.O.and. +metric.eq.1) +write(13,922)(10.**pO(i)). (10.**pO(nl~i)), (10.**pO(2*nl+i))

c - 001 if(ipf(i).eq.O.and.ipf(nl+i).eq.O.and.ipf(2*nl+i).eq.l.and.

+metric.eq.O) +write(13,923)(10.**pO(i)), (10.**pO(nl+i)),phold if(ipf(i).eq.O.and.ipf(nl+i).eq.O.and.ipf(2*nl+i).eq.l.and.

+metric.eq.l) +write(13,923)(10.**pO(i)), (10.**pO(nl+i)), (10.**pO(2*n1+i))

c - 0 1 1 if(ipf(i).eq.O.and.ipf(nl+i).eq.l.and.ipf(2*nl+i).eq.l.and.

+metric.eq.O) +write(13,924)(10.**pO(i)), (10.**pO(nl+i)),phold if(ipf(i).eq.O.and.ipf(nl+i).eq.1.and.ipf(2*n1+i).eq.l.and.

+metric.eq.l) +write(13,924)(10.**pO(i)), (10.**pO(nl+i)), (10.**pO(2*nl+i))

c - 101 if (i pf (i) . eq. 1. and. i pf (nl + i) . eq. O. and. i pf (2*n1 + i) . eq. 1. and.

+metric.eq.O) +write(13,925)(10.**pO(i)), (10.**pO(nl+i)) ,phold if(ipf(i).eq.l.and.ipf(nl+i).eq.O.and.ipf(2*nl+i).eq.l.and.

+metric.eq.l) +write(13,925)(10.**pO(i)), (10.**pO(nl+i)), (10.**pO(2*nl+i))

c - 1 1 0 if(ipf(i).eq.l.and.ipf(nl+i).eq.l.and.ipf(2*nl+i).eq.O.and.

+metric.eq.O) +write(13,926)(10.**pO(i)), (10.**pO(nl+i)) ,pho1d if(ipf(i).eq.l.and.ipf(nl+i).eq.l.and.ipf(2*nl+i).eq.O.and.

+metric.eq.l) +write(13,926) (10.**pO(i)), (10.**pO(nl+i)), (10.**pO(2*nl+i))

c - 1 1 1 if(ipf(i).eq.l.and.ipf(nl+i).eq.l.and.ipf(2*nl+i).eq.l.and.

+metric.eq.O)

c

c

+write(13,927) (10.**pO(i)), (10.**pO(nJ+i)) ,phold if(ipf(i).eq.l.and.ipf(nl+i).eq.l.and.ipf(2*nl+i).eq.l.and.

+rnetric.eq.l) +write(13,927)(10.**pO(i)), (10.**pO(nl+i)), (10.**pO(2*nl+i))

rewind 13 read(13,830)pline status=vgtext(devhandle,crap,crud,plinc) crud=crud-912

60 continue

c last line without thickness

156

Page 164: New Jersey Geological Survey Open-File Report OFR 90-1

c rewind 13

c - 1 0 if(ipf(nl).eq.l.and.ipf(2*nl).eq.O)

+write(13,925)(lO.**pO(nl)), (10.**pO(2*nl)) c - 0 1

if(ipf(nJ).eq.O.and.ipf(2*nl).eq.l) +write(13,924)(lO.**pO(nl)), (lO.**pO(2*nl))

c - 1 1 if ( i p f ( n I ) . e q . 1 . an d . i p f ( 2 * n 1 ) . e q . 1 )

+write(13,927)(10.**pO(nl)), (10.**pO(2*nl)) c - 0 0

c

c

if(ipf(nl).eq.O.and.ipf(2*nl) .eq.O) +write(13,923)(10.**pO(nl)), (lO.**pO(2*nl))

rewind 13 read(13,830)pline status=vgtext(devhandle,crap,crud,pline) return

c format statements c

820 821 822 823 830 920 921 922 923 924 925 926 927

format(lx,i2,2x, ,*, ,f8.2,lx, ,*, ,f6.1) format(1x,i2,3x,f8.2,lx, ,*, ,f6.1) format(1x.i2.2x, '*' .f8.2,2x.f6.1) format(lx,i2,3x,f8.2,2x,f6.1) format(a24) formate ,*, ,fB.2.1x, ,*, ,f5.1,lx, '*' ,f6.1) fOl'mat(1x,f8.2,lx, ,*, ,f5.1.1x. ,*, .f6.1) format( ,*, ,fB.2,2x.f5.1,lx. ,*, ,fB.1) format ( I * I, f8. 2. 1x, I * I. f5.1, 2x, f6.1) format ( I * I, fB. 2. 2x. f5. 1, 2x. f6. 1) format(1x.f8.2.1x. ,*, .f5.1.2x.f6.1) format(lx.fB.2.2x.f5.l.lx. ,*, .fB.l) format(lx.f8.2.2x,f5.1.2x,fB.l) end

c**************************************************** subroutine ssplt(iway.ityp.xl,x2.yl.y2,iii)

c**************************************************** c c routine to plot data on the screen c

c

integer*2 devhalldle.status.aa3.xstart.ystart.x(4) common /scrn/devhandle,iup common /xxyy/zeror.zeroip.zeroa.zcrot

c aa3 = length of 1 log cycle in NDC c iway is the way that data will be plotted c 1 means point-by-point using symbol ityp c 2 means line segments c iii 1 for TEM

157

Page 165: New Jersey Geological Survey Open-File Report OFR 90-1

c c c

c

2 for resistivity 3 fol' IP

aa3=15311./(4.-alog10(7.0» if(iii.eq.l)xstart=zerot if(iii.eq.2.or.iii.eq.3)xstart:zeroa if(iii.lt.3)ystart=zeror if(iii.eq.3)ystart=zeroip xxl=alogl0(xl) if(iii.eq.3)go to 10 xx2=alogl0(yl) go to 20

10 continue xx2=y1/5.0

20 continue x(I)=xstart+aa3*xx1 x(2)=ystart+aa3*xx2 if(iway.eq.2)go to 50 status=vsmtyp(devhandle,ityp) status=vpmark(devhandle,1,x) return

50 continue xx3=alogl0(x2) if(iii.eq.3)go to 60 xx4=aloglO(y2) go to 70

60 continue xx4=y2/5.0

70 continue

c colors - TEM green, IP red, resistivity white c

if(iii.eq.1)status=vslcol(devhandle,3) if(iii.eq.3)status=vslcol(devhandle,2) x(3)=xstart+aa3*xx3 x(4)=ystart+aa3*xx4 status=vpline(devhandle,2,x) status=vslcol(devhandle,l) return end

c************************************ subroutine hms(x,ih,im.is)

c************************************ c c this routine converts time in hours into hours, minutes, and seconds c

ih=x im=(x-float(ih»*60. is=(x-float(ih)-(float(im)/60. »*3600. return end

158

Page 166: New Jersey Geological Survey Open-File Report OFR 90-1

c************************************ subroutine howlng(timrem)

c************************************ c c this routine calculates how much time remains (in hours) to complete c something which started at hour2 and takes bunk to do. c

integer*2 ih,im,is,ihs common /blk5/bunk,hour2

c - get the current time call gettim(ih,im,is,ihs) hour3=float(ih)+(float(im)+float(is)/60. )/60. hh=hour2 if(hour2.gt.hour3)hh=hh-12. timrem=hh+bunk-hour3 if(timrem.lt.O. )timrem=(-l. )*timrem return end

c******************************** subroutine fno(ia,itot)

c******************************** c c routine updates forward data point no. on screen c

integer*2 status,x,y,devhandle character*8 stuff common /scrn/devhandle,iup rewind 13 write(13,400)ia,itot

400 format(lx,i3,'/',i3) rewind 13 read(13,410)stuff

410 format(a8) x=9432 y=967 status=vgtext(devhandle,x,y,stuff) return end

c************************************ subroutine timeup(ih,im,is)

c************************************ c c routine updates time remaining on screen c

integer*2 status,x,y,devhandle character*9 stuff common /scrn/devhandle,iup rewind 13 write(13,400)ih,im,is

400 format(3i3) rewind 13

159

Page 167: New Jersey Geological Survey Open-File Report OFR 90-1

read(13,410)stuff 410 format(a9)

x=22140 y=967 status=vgtext(devhandle,x,y,stuff) return end

c c************************************

subroutine samu(ammu) c************************************ c c routine updates mu on the screen c

integer*2 status,x,y,devhandle character*14 stuff common Iscrh/devhandle,iup rewind 13 write(13,400)ammu

400 format(' mu:' ,f5.2) rewind 13 read(13,410)stuff

410 format(aI4)

c-

x=26650 y=967 status=vgtext(devhandle,x,y,stuff) return end

160

Page 168: New Jersey Geological Survey Open-File Report OFR 90-1

I~IIIIlii li~li~~lli Ilfllllilililli lil!li Illili~~[ I

33007007293471 .1

Because of problems with storage and loss, the computer disks referred to in the table of contents were not included with this copy. Disks will be sent at no charge on request to:

Editor New Jersey Geological Survey CN-029 Trenton, NJ 08625

Page 169: New Jersey Geological Survey Open-File Report OFR 90-1

MICROCOMPUTER SOFTWARE FOR INDIVIDUAL OR SIMULTANEOUS INVERSE MODELING OF TRANSIENT ELECTROMAGNETIC, RESISTIVITY, AND INDUCED POLARIZATION SOUNDINGS (NEW JERSEY GEOLOGICAL SURVEY OPEN-FILE REPORT 90-1)