comparison libcruft/npsol/mcmin.f @ 2329:30c606bec7a8

[project @ 1996-07-19 01:29:05 by jwe] Initial revision
author jwe
date Fri, 19 Jul 1996 01:29:55 +0000
parents
children
comparison
equal deleted inserted replaced
2328:b44c3b2a5fce 2329:30c606bec7a8
1 *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
3 SUBROUTINE MCMIN ( EMIN, START, XBASE, RBASE, BASE )
4 INTEGER EMIN, BASE
5 DOUBLE PRECISION START, XBASE, RBASE
6
7 * Service routine for MCENV2.
8 *
9 *
10 * Nag Fortran 77 O( 1 ) basic linear algebra routine (GETMIN).
11 *
12 * -- Written on 6-January-1986.
13 * Sven Hammarling and Mick Pont, Nag Central Office.
14
15 EXTERNAL MCSTOR
16 INTEGER I
17 DOUBLE PRECISION A , B1 , B2 , C1 , C2 , D1
18 DOUBLE PRECISION D2 , MCSTOR, ZERO
19
20 A = START
21 ZERO = 0
22 EMIN = 1
23 B1 = MCSTOR( A/XBASE, ZERO )
24 C1 = A
25 C2 = A
26 D1 = A
27 D2 = A
28 *+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND.
29 *+ $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP
30 10 IF ( ( C1.EQ.A ).AND.( C2.EQ.A ).AND.
31 $ ( D1.EQ.A ).AND.( D2.EQ.A ) )THEN
32 EMIN = EMIN - 1
33 A = B1
34 B1 = MCSTOR( A /XBASE, ZERO )
35 C1 = MCSTOR( B1*XBASE, ZERO )
36 D1 = ZERO
37 DO 20, I = 1, BASE
38 D1 = D1 + B1
39 20 CONTINUE
40 B2 = MCSTOR( A *RBASE, ZERO )
41 C2 = MCSTOR( B2/RBASE, ZERO )
42 D2 = ZERO
43 DO 30, I = 1, BASE
44 D2 = D2 + B2
45 30 CONTINUE
46 GO TO 10
47 END IF
48 *+ END WHILE
49 RETURN
50
51 * End of MCMIN (GETMIN).
52
53 END