22 SUBROUTINE open_file(FILENAME, NB, IUNIT, EXT, FULL_NAME, &
23 open_stat, open_access, open_form, irecl, ier)
33 CHARACTER(LEN=*),
INTENT(IN) :: FILENAME
35 CHARACTER(LEN=*),
INTENT(IN) :: EXT
37 CHARACTER(LEN=*),
INTENT(INOUT) :: FULL_NAME
39 CHARACTER(LEN=*),
INTENT(IN) :: OPEN_STAT
41 CHARACTER(LEN=*),
INTENT(IN) :: OPEN_ACCESS
43 CHARACTER(LEN=*) OPEN_FORM
45 INTEGER,
INTENT(IN) :: NB
47 INTEGER,
INTENT(IN) :: IUNIT
49 INTEGER,
INTENT(IN) :: IRECL
55 INTEGER,
INTENT(OUT) :: IER
60 LOGICAL :: FILE_EXISTS
77 (spx_idx .AND. (ext(2:3) .EQ.
'SP')) .OR. &
78 (res_idx .AND. (ext(2:4) .EQ.
'RES')))
83 WRITE(full_name,1000) filename(1:nb-1),
mype, ext(1:4)
85 WRITE(full_name,1001) filename(1:nb-1), ext(1:4)
89 INQUIRE(file=trim(full_name),exist=file_exists)
92 IF(file_exists .AND. (open_stat ==
'NEW'))
THEN 95 ELSEIF(.NOT. file_exists .AND. open_stat .EQ.
'OLD')
THEN 100 IF (open_access ==
'DIRECT')
THEN 101 OPEN(convert=
'BIG_ENDIAN',unit=iunit, file=trim(full_name), status
106 IF(.NOT.file_exists)
THEN 107 OPEN(convert=
'BIG_ENDIAN',unit=iunit, file=trim(full_name), status
'NEW' 109 ELSEIF(open_stat ==
'REPLACE')
THEN 110 OPEN(convert=
'BIG_ENDIAN',unit=iunit, file=trim(full_name), status
112 ELSEIF(open_stat ==
'APPEND' .OR. open_stat ==
'UNKNOWN')
THEN 113 OPEN(convert=
'BIG_ENDIAN',unit=iunit, file=trim(full_name), status
'UNKNOWN' 123 1000
FORMAT(a,
'_',i5.5,a4)
logical bstart_with_one_res
subroutine open_file(FILENAME, NB, IUNIT, EXT, FULL_NAME, OPEN_STAT, OPEN_ACCESS, OPEN_FORM, IRECL, IER)