47 integer (SCRIP_i4),
parameter,
public :: &
54 character (9),
parameter,
public :: &
57 character (5),
parameter,
public :: &
68 integer (SCRIP_i4),
parameter :: &
69 scrip_iounitsminunits = 11, &
70 scrip_iounitsmaxunits = 99
72 logical (SCRIP_Logical) :: &
73 scrip_iounitsinitialized = .false.
75 logical (SCRIP_Logical),
dimension(SCRIP_IOUnitsMaxUnits) :: &
102 integer (SCRIP_i4),
intent(out) :: &
113 integer (SCRIP_i4) :: n
115 logical (SCRIP_Logical) :: alreadyinuse
123 if (.not. scrip_iounitsinitialized)
then
124 scrip_iounitsinuse = .false.
129 scrip_iounitsinitialized = .true.
138 srch_units:
do n=scrip_iounitsminunits, scrip_iounitsmaxunits
139 if (.not. scrip_iounitsinuse(n))
then
142 INQUIRE (unit=n,opened=alreadyinuse)
144 if (.not. alreadyinuse)
then
146 scrip_iounitsinuse(iunit) = .true.
151 scrip_iounitsinuse(n) = .true.
156 if (iunit > scrip_iounitsmaxunits) &
157 stop
'SCRIP_IOUnitsGet: No free units'
182 integer (SCRIP_i4),
intent(in) :: &
193 if (iunit < 1 .or. iunit > scrip_iounitsmaxunits)
then
194 stop
'SCRIP_IOUnitsRelease: bad unit'
203 scrip_iounitsinuse(iunit) = .false.
231 integer (SCRIP_i4),
intent(in) :: &
242 logical (SCRIP_Logical) :: alreadyinuse
250 if (iunit < scrip_iounitsminunits .or. &
251 iunit > scrip_iounitsmaxunits)
then
252 stop
'SCRIP_IOUnitsReserve: invalid unit'
261 if (scrip_iounitsinuse(iunit))
then
262 stop
'SCRIP_IOUnitsReserve: unit already in use by SCRIP'
271 INQUIRE (unit=iunit, opened=alreadyinuse)
272 if (alreadyinuse)
then
273 stop
'SCRIP_IOUnitsReserve: unit already in use by others'
282 scrip_iounitsinuse(iunit) = .true.
310 integer (SCRIP_i4),
intent(in) :: &
313 character (*),
intent(in) :: &
326 open(unit=iunit,
file=filename, status=
'old', form=
'formatted')
329 open(unit=iunit,
file=filename, status=
'unknown', form=
'formatted')
333 open(unit=iunit,
file=filename, status=
'unknown', form=
'formatted')
336 stop
'SCRIP_IOUnitsRedirect: invalid unit'
364 integer (SCRIP_i4),
intent(in) :: &