]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/gxint/gxlunf.F
Some function moved to AliZDC
[u/mrichter/AliRoot.git] / GEANT321 / gxint / gxlunf.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:50  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.33  by  S.Giani
11 *-- Author :
12       SUBROUTINE GXLUNF(LUN,ICASE,IFREE)
13 *
14 *             If ICASE=1 check if LUN is free
15 *             If ICASE=2 check if LUN is used
16 *             If ICASE=3 return first free unit starting at LUN
17 *
18 #include "geant321/gcxlun.inc"
19 #include "geant321/gcunit.inc"
20       CHARACTER*8 CHCASE(10)
21       SAVE CHCASE
22       DATA CHCASE/'FZ      ','FZOUT   ','HBOOK   ','HIGZ    '
23      +           ,'RZ      ','KUIP    ','COMIS   ','GKS     '
24      +           ,'FORTRAN ','USER    '/
25 *________________________________________________________
26 *
27       IF(LUN.LE.0.OR.LUN.GT.128)THEN
28          PRINT *,' Invalid Logical unit number'
29          IFREE=6
30          IF(ICASE.NE.1)IFREE=0
31          GO TO 99
32       ENDIF
33       IFREE=IABS(LUNIT(LUN))
34       IF(ICASE.EQ.1)THEN
35          IF(IFREE.EQ.0)GO TO 99
36          IFR=MIN(IFREE,10)
37          WRITE(CHMAIL,1000) LUN,CHCASE(IFR)
38          CALL GMAIL(0,0)
39       ELSEIF(ICASE.EQ.2)THEN
40          IF(IFREE.NE.0)GO TO 99
41          WRITE(CHMAIL,2000) LUN
42          CALL GMAIL(0,0)
43       ELSE
44          IFREE=0
45          DO 10 I=LUN,99
46             IF(LUNIT(I).EQ.0)THEN
47                IFREE=I
48                GO TO 99
49             ENDIF
50   10     CONTINUE
51          WRITE(CHMAIL,3000) LUN
52          CALL GMAIL(0,0)
53       ENDIF
54 *
55   99  RETURN
56  1000 FORMAT(' Unit ',I3,' already used by ',A)
57  2000 FORMAT(' Unit ',I3,' is not active')
58  3000 FORMAT(' No more free logical units above ',I3)
59       END