source: Sophya/trunk/SophyaExt/CodeMinuit/code/mnfree.F@ 3188

Last change on this file since 3188 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.3 KB
Line 
1*
2* $Id: mnfree.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
3*
4* $Log: not supported by cvs2svn $
5* Revision 1.1.1.1 1996/03/07 14:31:29 mclareni
6* Minuit
7*
8*
9#include "minuit/pilot.h"
10 SUBROUTINE MNFREE(K)
11#include "minuit/d506dp.inc"
12CC Restores one or more fixed parameter(s) to variable status
13CC by inserting it into the internal parameter list at the
14CC appropriate place.
15CC
16#include "minuit/d506cm.inc"
17C-- K = 0 means restore all parameters
18C-- K = 1 means restore the last parameter fixed
19C-- K = -I means restore external parameter I (if possible)
20C-- IQ = fix-location where internal parameters were stored
21C-- IR = external number of parameter being restored
22C-- IS = internal number of parameter being restored
23 IF (K .GT. 1) WRITE (ISYSWR,510)
24 IF (NPFIX .LT. 1) WRITE (ISYSWR,500)
25 IF (K.EQ.1 .OR. K.EQ.0) GO TO 40
26C release parameter with specified external number
27 KA = IABS(K)
28 IF (NIOFEX(KA) .EQ. 0) GO TO 15
29 WRITE (ISYSWR,540)
30 540 FORMAT (' IGNORED. PARAMETER SPECIFIED IS ALREADY VARIABLE.')
31 RETURN
32 15 IF (NPFIX .LT. 1) GO TO 21
33 DO 20 IK= 1, NPFIX
34 IF (IPFIX(IK) .EQ. KA) GO TO 24
35 20 CONTINUE
36 21 WRITE (ISYSWR,530) KA
37 530 FORMAT (' PARAMETER',I4,' NOT FIXED. CANNOT BE RELEASED.')
38 RETURN
39 24 IF (IK .EQ. NPFIX) GO TO 40
40C move specified parameter to end of list
41 IPSAV = KA
42 XV = XS(IK)
43 XTV = XTS(IK)
44 DIRINV = DIRINS(IK)
45 GRDV = GRDS(IK)
46 G2V = G2S(IK)
47 GSTEPV = GSTEPS(IK)
48 DO 30 I= IK+1,NPFIX
49 IPFIX(I-1) = IPFIX(I)
50 XS(I-1) = XS(I)
51 XTS(I-1) = XTS(I)
52 DIRINS(I-1) = DIRINS(I)
53 GRDS(I-1) = GRDS(I)
54 G2S(I-1) = G2S(I)
55 GSTEPS(I-1) = GSTEPS(I)
56 30 CONTINUE
57 IPFIX(NPFIX) = IPSAV
58 XS(NPFIX) = XV
59 XTS(NPFIX) = XTV
60 DIRINS(NPFIX) = DIRINV
61 GRDS(NPFIX) = GRDV
62 G2S(NPFIX) = G2V
63 GSTEPS(NPFIX) = GSTEPV
64C restore last parameter in fixed list -- IPFIX(NPFIX)
65 40 CONTINUE
66 IF (NPFIX .LT. 1) GO TO 300
67 IR = IPFIX(NPFIX)
68 IS = 0
69 DO 100 IK= NU, IR, -1
70 IF (NIOFEX(IK) .GT. 0) THEN
71 LC = NIOFEX(IK) + 1
72 IS = LC - 1
73 NIOFEX(IK) = LC
74 NEXOFI(LC) = IK
75 X(LC) = X(LC-1)
76 XT(LC) = XT(LC-1)
77 DIRIN(LC) = DIRIN(LC-1)
78 WERR(LC) = WERR(LC-1)
79 GRD(LC) = GRD(LC-1)
80 G2(LC) = G2(LC-1)
81 GSTEP(LC) = GSTEP(LC-1)
82 ENDIF
83 100 CONTINUE
84 NPAR = NPAR + 1
85 IF (IS .EQ. 0) IS = NPAR
86 NIOFEX(IR) = IS
87 NEXOFI(IS) = IR
88 IQ = NPFIX
89 X(IS) = XS(IQ)
90 XT(IS) = XTS(IQ)
91 DIRIN(IS) = DIRINS(IQ)
92 WERR(IS) = DIRINS(IQ)
93 GRD(IS) = GRDS(IQ)
94 G2(IS) = G2S(IQ)
95 GSTEP(IS) = GSTEPS(IQ)
96 NPFIX = NPFIX - 1
97 ISW(2) = 0
98 DCOVAR = 1.
99 IF (ISW(5)-ITAUR .GE. 1) WRITE(ISYSWR,520) IR,CPNAM(IR)
100 IF (K.EQ.0) GO TO 40
101 300 CONTINUE
102C if different from internal, external values are taken
103 CALL MNEXIN(X)
104 400 RETURN
105 500 FORMAT (' CALL TO MNFREE IGNORED. THERE ARE NO FIXED PA',
106 + 'RAMETERS'/)
107 510 FORMAT (' CALL TO MNFREE IGNORED. ARGUMENT GREATER THAN ONE'/)
108 520 FORMAT (20X, 9HPARAMETER,I4,2H, ,A10,' RESTORED TO VARIABLE.')
109 END
Note: See TracBrowser for help on using the repository browser.