Crain’s Petro/Fusion Scripts comprise a set of log analysis algorithms

based on Chapters 10 through 17 of Crain’s Petrophysical Handbook. The code covers conventional and organic-rich oil and gas reservoirs, bitumen bearing oil sands, and mechanical rock properties for stimulation design and seismic attribute analysis.

PF-00: 9 code script modules in text format, plus Overview and List of Abbreviations
Bonus Feature: RF-01 Crain’s Petrophysical Pocket Pal with algorithm usage rules, numerical examples, 10 real-world examples.,

Crain’s Petro/Fusion Scripts are written with the syntax used in GeoGraphix Prizm User Defined Equation language. With some careful find-and-replace commands, this code can be converted to Python or Java, or added to commercial software like PowerLog or any other package that supports user defined equations.

To use
Crain’s Petro/Fusion Scripts as user defined equations in commercial software, load the scripts, fix any syntax issues, declare variables as required, and test carefully.

To write your own program, you will need to do some or all of the following:
1. Declare data types as log curve or as single-valued parameter.
2. Create an equivalent to the “isNull(XXX[])” function used in these scripts.
3. Create parameter-value and logic-switch interface with defaults and definitions.
Go to   to see an example executed in Excel. This spreadsheet is a working model with all the analysis models in Crain’s Petro/Fusion Scripts.
4. Parameters and logic switches apply to a single depth interval, eg. IntervalTop to IntervalBase. If you need different parameters or logic for another interval, you will need to create  a code overlay for interval zoning and an interface for that purpose.

Crain’s Petro/Fusion Scripts span the most common petrophysical analysis models but do not include LAS file input, output, or management, depth plot or crossplot support, or a run-time environment.

; Shale volume from gamma ray - linear model
IF (IsNull(GRcor[]==1) OR runVshg = 0)
   Vshg[] = 1
   Vshg[] = min(1, max(0, (GRcor[] - GRcln) / (GRshl - GRcln))

Page Views ---- Since 15 Jul 2020
Copyright 1978 - 2020 E. R. Crain, P.Eng. All Rights Reserved