The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.

Download Latest Version geomlib.tar.gz (58.3 kB)
Email in envelope

Get an email when there's a new version of CFD Utilities

Home / ZEROMIN2
Name Modified Size InfoDownloads / Week
Parent folder
README 2023-10-26 5.1 kB
zeromin2.f90 2023-10-19 14.0 kB
Totals: 2 Items   19.1 kB 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
   program zeromin2
!
!     This is a Fortran 90 update of the FORTRAN 77 original, from which
!     most of the following description is retained.
!
!  Description and usage:
!
!     ZEROMIN2 is an adaptation of ZEROMIN for driving the reverse-
!     communication versions of FMIN and ZEROIN.
!
!     Like ZEROMIN, it finds (within a user specified interval) either a root
!     of a function of one variable or a minimum of a function of one variable.
!     It also provides for displaying the function via Tecplot if requested.
!
!     The underlying algorithms are both due to Richard Brent (Stanford Uni-
!     versity, c. 1970) and described in Forsythe, Malcolm, and Moler (1977).
!     FMINRC is actually a revision of FMIN77, itself a subroutine version by
!     Robert Kennelly of the original FMIN.
!
!     Note that compilation is expected to use -r8 or equivalent in order to
!     perform 64-bit arithmetic.
!
!     To utilize the program without changes, the user must supply the one-
!     dimensional function of interest in the form of a real function FUNC1D
!     with a single input argument that is the independent variable.
!
!     A sample FUNC1D routine might be:
!
!        real function func1d (x)
!        real, intent (in) :: x
!        func1d = tan (x) - 1./x    ! The search interval is assumed to
!        end function func1d        ! exclude x = 0.
!
!     For more elaborate functions, ZEROMIN2 could be modified to evaluate the
!     function in any way necessary.  The function form of FUNC1D has been
!     retained in the initial version to enable simple testing of FMINRC against
!     the original FMIN77.
!
!     A second routine may be provided by the user.  Appropriately enough,
!     this subroutine must be titled USER.  It allows the user to perform
!     operations that ZEROMIN2 and FUNC1D do not already perform.  It should
!     have the form
!
!         subroutine user (luncrt, lunkbd, lunout, lunplt, first)
!
!     For example, if more than one variable is used to compute the
!     quantity returned by FUNC1D, then the user must supply a USER
!     routine to prompt for or set up values for the other variables.
!     USER and FUNC1D must communicate through COMMON variables unless
!     ZEROMIN2 is modified to change FUNC1D's argument list.
!
!     Note that USER is called within the retry loop over different
!     search intervals.  This may require distinguishing (within USER)
!     its first call from subsequent calls.
!
!     Even if no extra computation outside FUNC1D is required, a dummy USER is
!     still needed, and one such is supplied as part of the ZEROMIN2 package.
!     FUNC1D must be relinked with ZEROMIN2 for each new application.
!
!     At the start of a run, the user is prompted for the operation to be
!     performed and the number of coordinate points wanted in the plot, which
!     may also be suppressed.  The search interval and length of the interval
!     of uncertainty for the search convergence are also prompted for.  If it
!     appears that the interval does not contain a zero or a minimum, retries
!     are permitted.
!
!     Two files may be produced by ZEROMIN2.  The first file will have either
!     the abscissa value for the root or the abscissa value for the minimum
!     and the minimum ordinate value.  Also output in the same file are the
!     interval boundaries.  This file is named zeromin2.out.  The second file
!     is Tecplotable and is optional.  It will include the title and the
!     specified number of coordinate points that are calculated by the program
!     to display the function.  The root or minimum will also be plotted as a
!     single symbol.  This file name is zeromin2.dat.
!
!
!  External references:
!
!     Name      Description
!
!     FUNC1D    One-dimensional function for which a minimum or root is sought.
!     FMINRC    Seeks a local minimum of a 1-D function in a specified interval.
!!!!! QPLDAT    ENTRY points QPLFRM, QPLCRV write plot data in QPLOT format.
!!!!!           No longer used because QPLOT is history now.
!     READER    Prompting utility, with ENTRY points READD, READI, etc.
!     SELECT    Menu utility.
!     USER      Subroutine provided by the user to do any operations
!               not already provided by ZEROMIN2 and FUNC1D.  May be 
!               defaulted if no other input or computations are needed.
!     ZERORC    Finds a root of a 1-D function within a specified interval.
!
!
!  History:
!
!     23 Oct. 1987   PTS   Initial implementation of ZEROMIN (along the
!                          lines of NLSQ).
!     10 Apr. 1992   DAS   ZEROMIN2 adapted from ZEROMIN in order to
!                          test FMINRC and ZERORC.
!     19 Oct. 2023   DAS   F90 translation during a slow patch.
!
!  Authors:  Phillip T. Snyder, Sterling Software/NASA Ames Research Center, CA
!            David A. Saunders, AMA, Inc. at NASA ARC.
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Source: README, updated 2023-10-26