source: Sophya/trunk/SophyaExt/CodeMinuit/code/mninit.F@ 4049

Last change on this file since 4049 was 2403, checked in by cmv, 22 years ago

Creation du module de code source de MINUIT (CERNLIB) extrait par CMV

cmv 11/06/2003

File size: 3.7 KB
Line 
1*
2* $Id: mninit.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
3*
4* $Log: not supported by cvs2svn $
5* Revision 1.4 1997/09/02 15:16:08 mclareni
6* WINNT corrections
7*
8* Revision 1.3 1997/03/14 17:18:00 mclareni
9* WNT mods
10*
11* Revision 1.2.2.1 1997/01/21 11:33:28 mclareni
12* All mods for Winnt 96a on winnt branch
13*
14* Revision 1.2 1996/03/15 18:02:47 james
15* Modified Files:
16* mnderi.F eliminate possible division by zero
17* mnexcm.F suppress print on STOP when print flag=-1
18* set FVAL3 to flag if FCN already called with IFLAG=3
19* mninit.F set version 96.03
20* mnlims.F remove arguments, not needed
21* mnmigr.F VLEN -> LENV in debug print statement
22* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
23* mnpsdf.F eliminate possible division by zero
24* mnscan.F suppress printout when print flag =-1
25* mnset.F remove arguments in call to MNLIMS
26* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
27* mnvert.F eliminate possible division by zero
28*
29* Revision 1.1.1.1 1996/03/07 14:31:30 mclareni
30* Minuit
31*
32*
33#include "minuit/pilot.h"
34 SUBROUTINE MNINIT (I1,I2,I3)
35#include "minuit/d506dp.inc"
36CC This is the main initialization subroutine for MINUIT
37CC It initializes some constants in common
38CC (including the logical I/O unit nos.),
39CC
40#include "minuit/d506cm.inc"
41C
42CCC_CMV EXTERNAL INTRAC
43CCC_CMV LOGICAL INTRAC
44C I/O unit numbers
45 ISYSRD = I1
46 ISYSWR = I2
47 ISTKWR(1) = ISYSWR
48 NSTKWR = 1
49 ISYSSA = I3
50 NSTKRD = 0
51C version identifier
52 CVRSN = '96.03 '
53C some CONSTANT constants in COMMON
54 MAXINT=MNI
55 MAXEXT=MNE
56 UNDEFI = -54321.
57 BIGEDM = 123456.
58 CUNDEF = ')UNDEFINED'
59 COVMES(0) = 'NO ERROR MATRIX '
60 COVMES(1) = 'ERR MATRIX APPROXIMATE'
61 COVMES(2) = 'ERR MATRIX NOT POS-DEF'
62 COVMES(3) = 'ERROR MATRIX ACCURATE '
63C some starting values in COMMON
64 NBLOCK = 0
65 ICOMND = 0
66 CTITL = CUNDEF
67 CFROM = 'INPUT '
68 NFCNFR = NFCN
69 CSTATU= 'INITIALIZE'
70 ISW(3) = 0
71 ISW(4) = 0
72 ISW(5) = 1
73C ISW(6)=0 for batch jobs, =1 for interactive jobs
74C =-1 for originally interactive temporarily batch
75 ISW(6) = 0
76#ifndef CERNLIB_MSSTDCALL
77CCC_CMV IF (INTRAC(DUMMY)) ISW(6) = 1
78#else
79CCC_CMV IF (INTRAC()) ISW(6) = 1
80#endif
81C DEBUG options set to default values
82 DO 10 IDB= 0, MAXDBG
83 10 IDBG(IDB) = 0
84 LREPOR = .FALSE.
85 LWARN = .TRUE.
86 LIMSET = .FALSE.
87 LNEWMN = .FALSE.
88 ISTRAT = 1
89 ITAUR = 0
90C default page dimensions and 'new page' carriage control integer
91 NPAGWD = 120
92 NPAGLN = 56
93 NEWPAG = 1
94 IF (ISW(6) .GT. 0) THEN
95 NPAGWD = 80
96 NPAGLN = 30
97 NEWPAG = 0
98 ENDIF
99 UP = 1.0
100 UPDFLT = UP
101C determine machine accuracy epsmac
102 EPSTRY = 0.5
103 DO 33 I= 1, 100
104 EPSTRY = EPSTRY * 0.5
105 EPSP1 = ONE + EPSTRY
106 CALL MNTINY(EPSP1, EPSBAK)
107 IF (EPSBAK .LT. EPSTRY) GO TO 35
108 33 CONTINUE
109 EPSTRY = 1.0E-7
110 EPSMAC = 4.0*EPSTRY
111 WRITE (ISYSWR,'(A,A,E10.2)') ' MNINIT UNABLE TO DETERMINE',
112 + ' ARITHMETIC PRECISION. WILL ASSUME:',EPSMAC
113 35 EPSMAC = 8.0 * EPSTRY
114 EPSMA2 = 2.0 * SQRT(EPSMAC)
115C the vlims are a non-negligible distance from pi/2
116C used by MNPINT to set variables "near" the physical limits
117 PIBY2 = 2.0*ATAN(1.0)
118 DISTNN = 8.0*SQRT(EPSMA2)
119 VLIMHI = PIBY2 - DISTNN
120 VLIMLO = -PIBY2 + DISTNN
121 CALL MNCLER
122 WRITE (ISYSWR,'(3A,I3,A,I3,A,E10.2)') ' MINUIT RELEASE ',CVRSN,
123 +' INITIALIZED. DIMENSIONS ',MNE,'/',MNI,' EPSMAC=',EPSMAC
124 RETURN
125 END
Note: See TracBrowser for help on using the repository browser.