File: /nfs/home/0/users/jenkins/mfix.git/model/funits_mod.f

1           MODULE FUNITS
2     
3     ! Whether this processor should write the log file in DMP mode.
4     ! Usually this flag is true only for PE_IO.  All the PEs may be forced
5     ! to write a log file by setting ENABLE_DMP_LOG to .true. in output_mod.f.
6           LOGICAL :: DMP_LOG
7     
8     ! RRATES debug file unit number
9           INTEGER, PARAMETER :: UNIT_RRATES = 43
10     
11     ! mfix.dat file unit number
12           INTEGER, PARAMETER :: UNIT_DAT = 51
13     
14     ! RUN_NAME.OUT file unit number
15           INTEGER, PARAMETER :: UNIT_OUT = 52
16     
17     ! RUN_NAME.LOG file unit number. (DEFAULT/Serial 53)
18           INTEGER, PARAMETER :: UNIT_LOG = 53
19     
20     ! Temporary (scratch) file unit number
21           INTEGER, PARAMETER :: UNIT_TMP = 54
22     
23     ! RUN_NAME.RES file unit number
24           INTEGER, PARAMETER :: UNIT_RES = 55
25     
26     ! RUN_NAME.SPx file unit offset number
27           INTEGER, PARAMETER :: UNIT_SPX = 60
28     
29           CONTAINS
30     
31     
32     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
33     !                                                                      !
34     !  Module name: NEWUNIT                                                !
35     !  Purpose: Finds an open i/o unit number; Usage:                      !
36     !   integer myunit                                                     !
37     !   open(unit=newunit(myunit),file='filename')                         !
38     !                                                                      !
39     !  Author: A. Choudhary                               Date: 01/21/2015 !
40     !                                                                      !
41     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
42           INTEGER FUNCTION newunit(unit)
43           IMPLICIT NONE
44     
45     ! optional variable to hold unit number
46           INTEGER, INTENT(OUT), OPTIONAL  :: unit
47     
48     ! lower and upper limits to search for available units
49           INTEGER, PARAMETER  :: lun_min = 100, lun_max= 999
50     
51     ! check to see if the unit is open
52           LOGICAL             :: is_open
53     
54     ! looping variable
55           INTEGER             :: lun
56     
57     
58           newunit = -1
59     
60           DO lun = lun_min, lun_max
61             INQUIRE(UNIT=lun, OPENED=is_open)
62             IF(.NOT.is_open) THEN
63               newunit = lun
64               EXIT
65             END IF
66           END DO
67     
68           IF(present(unit)) unit=newunit
69     
70           RETURN
71     
72           END FUNCTION NEWUNIT
73     
74     
75           END MODULE FUNITS
76