[2403] | 1 | *
|
---|
| 2 | * $Id: mnpars.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
|
---|
| 3 | *
|
---|
| 4 | * $Log: not supported by cvs2svn $
|
---|
| 5 | * Revision 1.1.1.1 1996/03/07 14:31:31 mclareni
|
---|
| 6 | * Minuit
|
---|
| 7 | *
|
---|
| 8 | *
|
---|
| 9 | #include "minuit/pilot.h"
|
---|
| 10 | SUBROUTINE MNPARS(CRDBUF,ICONDN)
|
---|
| 11 | #include "minuit/d506dp.inc"
|
---|
| 12 | CC Called from MNREAD and user-callable
|
---|
| 13 | CC Implements one parameter definition, that is:
|
---|
| 14 | CC parses the string CRDBUF and calls MNPARM
|
---|
| 15 | C
|
---|
| 16 | C output conditions:
|
---|
| 17 | C ICONDN = 0 all OK
|
---|
| 18 | C ICONDN = 1 error, attempt to define parameter is ignored
|
---|
| 19 | C ICONDN = 2 end of parameter definitions
|
---|
| 20 | C
|
---|
| 21 | #include "minuit/d506cm.inc"
|
---|
| 22 | C
|
---|
| 23 | DIMENSION PLIST(MAXP)
|
---|
| 24 | CHARACTER CNAMK*10, CRDBUF*(*) , CELMNT*20 , COMAND*(MAXCWD)
|
---|
| 25 | C
|
---|
| 26 | LENBUF = LEN(CRDBUF)
|
---|
| 27 | C find out whether fixed or free-field format
|
---|
| 28 | KAPO1 = INDEX(CRDBUF,'''')
|
---|
| 29 | IF (KAPO1 .EQ. 0) GO TO 150
|
---|
| 30 | KAPO2 = INDEX(CRDBUF(KAPO1+1:),'''')
|
---|
| 31 | IF (KAPO2 .EQ. 0) GO TO 150
|
---|
| 32 | C new (free-field) format
|
---|
| 33 | KAPO2 = KAPO2 + KAPO1
|
---|
| 34 | C skip leading blanks if any
|
---|
| 35 | DO 115 ISTART=1, KAPO1-1
|
---|
| 36 | IF (CRDBUF(ISTART:ISTART) .NE. ' ') GO TO 120
|
---|
| 37 | 115 CONTINUE
|
---|
| 38 | GO TO 210
|
---|
| 39 | 120 CONTINUE
|
---|
| 40 | C parameter number integer
|
---|
| 41 | CELMNT = CRDBUF(ISTART:KAPO1-1)
|
---|
| 42 | READ (CELMNT,'(BN,F20.0)',ERR=180) FK
|
---|
| 43 | K = FK
|
---|
| 44 | IF (K .LE. 0) GO TO 210
|
---|
| 45 | CNAMK = 'PARAM '//CELMNT
|
---|
| 46 | IF (KAPO2-KAPO1 .GT. 1) CNAMK = CRDBUF(KAPO1+1:KAPO2-1)
|
---|
| 47 | C special handling if comma or blanks and a comma follow 'name'
|
---|
| 48 | DO 135 ICY= KAPO2+1,LENBUF
|
---|
| 49 | IF (CRDBUF(ICY:ICY) .EQ. ',') GO TO 139
|
---|
| 50 | IF (CRDBUF(ICY:ICY) .NE. ' ') GO TO 140
|
---|
| 51 | 135 CONTINUE
|
---|
| 52 | UK = 0.
|
---|
| 53 | WK = 0.
|
---|
| 54 | A = 0.
|
---|
| 55 | B = 0.
|
---|
| 56 | GO TO 170
|
---|
| 57 | 139 CONTINUE
|
---|
| 58 | ICY = ICY+1
|
---|
| 59 | 140 CONTINUE
|
---|
| 60 | IBEGIN = ICY
|
---|
| 61 | CALL MNCRCK(CRDBUF(IBEGIN:),MAXCWD,COMAND,LNC,
|
---|
| 62 | + MAXP,PLIST,LLIST, IERR,ISYSWR)
|
---|
| 63 | IF (IERR .GT. 0) GO TO 180
|
---|
| 64 | UK = PLIST(1)
|
---|
| 65 | WK = 0.
|
---|
| 66 | IF (LLIST .GE. 2) WK = PLIST(2)
|
---|
| 67 | A = 0.
|
---|
| 68 | IF (LLIST .GE. 3) A = PLIST(3)
|
---|
| 69 | B = 0.
|
---|
| 70 | IF (LLIST .GE. 4) B = PLIST(4)
|
---|
| 71 | GO TO 170
|
---|
| 72 | C old (fixed-field) format
|
---|
| 73 | 150 CONTINUE
|
---|
| 74 | READ (CRDBUF, 158,ERR=180) XK,CNAMK,UK,WK,A,B
|
---|
| 75 | 158 FORMAT (BN,F10.0, A10, 4F10.0)
|
---|
| 76 | K = XK
|
---|
| 77 | IF (K .EQ. 0) GO TO 210
|
---|
| 78 | C parameter format cracked, implement parameter definition
|
---|
| 79 | 170 CALL MNPARM(K,CNAMK,UK,WK,A,B,IERR)
|
---|
| 80 | ICONDN = IERR
|
---|
| 81 | RETURN
|
---|
| 82 | C format or other error
|
---|
| 83 | 180 CONTINUE
|
---|
| 84 | ICONDN = 1
|
---|
| 85 | RETURN
|
---|
| 86 | C end of data
|
---|
| 87 | 210 CONTINUE
|
---|
| 88 | ICONDN = 2
|
---|
| 89 | RETURN
|
---|
| 90 | END
|
---|