]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 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 |