Bug fixed: pointer was not properly deleted
[u/mrichter/AliRoot.git] / EVGEN / PartEloss / read.f
1       SUBROUTINE ELOSS_READ     
2       REAL*8           xx(400), da(30), ca(30,260), rrr(30)
3       COMMON /data/    xx, da, ca, rrr
4 *
5       CHARACTER*100 CHROOT  
6       CHARACTER*100 FILNAM
7       CHROOT=' '
8       CALL GETENVF('ALICE_ROOT',CHROOT)
9       LNROOT = LNBLNK(CHROOT)
10
11       IF(LNROOT.LE.0) THEN
12          FILNAM='DATAc.dat'
13       ELSE
14          FILNAM=CHROOT(1:LNROOT)//'/EVGEN/PartEloss/DATAc.dat'
15       ENDIF
16
17       OPEN(UNIT=20,FILE=FILNAM,STATUS='OLD',ERR=90)
18
19       nn = 1
20  100  read (20,*,end=110) xx(nn), ca(1,nn), ca(2,nn), ca(3,nn),
21      +     ca(4,nn), ca(5,nn), ca(6,nn), ca(7,nn), ca(8,nn),
22      +     ca(9,nn), ca(10,nn), ca(11,nn), ca(12,nn), ca(13,nn),
23      +     ca(14,nn), ca(15,nn), ca(16,nn), ca(17,nn), ca(18,nn),
24      +     ca(19,nn), ca(20,nn), ca(21,nn), ca(22,nn), ca(23,nn),
25      +     ca(24,nn), ca(25,nn), ca(26,nn), ca(27,nn), ca(28,nn),
26      +     ca(29,nn), ca(30,nn)
27 *         print*, 0.005*(nn-1), ca(1,nn), ca(2,nn), ca(3,nn), 
28 *     +     ca(4,nn), ca(5,nn), ca(6,nn), ca(7,nn), ca(8,nn),
29 *     +     ca(9,nn), ca(10,nn), ca(11,nn), ca(12,nn), ca(13,nn),
30 *     +     ca(14,nn), ca(15,nn), ca(16,nn), ca(17,nn), ca(18,nn),
31 *     +     ca(19,nn), ca(20,nn), ca(21,nn), ca(22,nn), ca(23,nn),
32 *     +     ca(24,nn), ca(25,nn), ca(26,nn), ca(27,nn), ca(28,nn),
33 *     +     ca(29,nn), ca(30,nn)
34          nn = nn + 1
35          goto 100
36  110     continue
37       close(20)
38 *
39       IF(LNROOT.LE.0) THEN
40          FILNAM='DATAd.dat'
41       ELSE
42          FILNAM=CHROOT(1:LNROOT)//'/EVGEN/PartEloss/DATAd.dat'
43       ENDIF
44
45       OPEN(UNIT=21,FILE=FILNAM,STATUS='OLD',ERR=90)
46       nn = 1
47  101  read (21,*,end=111) rrr(nn), da(nn)
48 *         print*, rrr(nn), da(nn)
49          nn = nn + 1
50          goto 101
51  111     continue
52       close(21)
53 *
54       goto 888
55  90   PRINT*, 'input - output error' 
56  888  continue
57       RETURN
58       END
59