21 & ,SIZE_INT8, TOTAL_FILE_SIZE, TOTAL_STRUC_SIZE
22 & ,READ_ARITH, READ_INT_TYPE_64
23 & ,READ_OOC_FILE_NAME_LENGTH, READ_OOC_FIRST_FILE_NAME
24 & ,READ_HASH,READ_SYM,READ_PAR,READ_NPROCS
25 & ,FORTRAN_VERSION_OK)
26 INTEGER,
intent(in) :: fileunit
27 INTEGER,
intent(out) :: ierr
28 INTEGER(8),
intent(inout) :: size_read
29 INTEGER,
intent(in) :: SIZE_INT, SIZE_INT8
30 INTEGER(8),
intent(out) :: TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
31 CHARACTER,
intent(out) :: READ_ARITH
32 LOGICAL,
intent(out) :: READ_INT_TYPE_64
33 INTEGER,
intent(out) :: READ_OOC_FILE_NAME_LENGTH
34 CHARACTER(len=LEN_SAVE_FILE),
intent(out)::READ_OOC_FIRST_FILE_NAME
35 CHARACTER(len=23),
intent(out) :: READ_HASH
36 INTEGER,
intent(out) :: READ_SYM,READ_PAR,READ_NPROCS
37 LOGICAL,
intent(out) ::
38 CHARACTER(len=5) :: READ_FORTRAN_VERSION
39 INTEGER :: SIZE_CHARACTER, SIZE_LOGICAL
43 fortran_version_ok = .true.
44 read(fileunit,iostat=ierr) read_fortran_version
45 if(ierr.ne.0)
GOTO 100
46 if (read_fortran_version.NE."mumps
") THEN
48 FORTRAN_VERSION_OK = .false.
51 size_read=size_read+int(5*SIZE_CHARACTER,kind=8)
52#if !defined(MUMPS_F2003)
54 & +int(2*SIZE_INT*1,kind=8)
56 read(fileunit,iostat=ierr) READ_HASH
57.ne.
if(ierr0) GOTO 100
58 size_read=size_read+int(23*SIZE_CHARACTER,kind=8)
59#if !defined(MUMPS_F2003)
61 & +int(2*SIZE_INT*1,kind=8)
63 read(fileunit,iostat=ierr) TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
64.ne.
if(ierr0) GOTO 100
65 size_read=size_read+int(2*SIZE_INT8,kind=8)
66#if !defined(MUMPS_F2003)
68 & +int(2*SIZE_INT*1,kind=8)
70 read(fileunit,iostat=ierr) READ_ARITH
71.ne.
if(ierr0) GOTO 100
72 size_read=size_read+int(1,kind=8)
73#if !defined(MUMPS_F2003)
75 & +int(2*SIZE_INT*1,kind=8)
77 read(fileunit,iostat=ierr) READ_SYM,READ_PAR,READ_NPROCS
78.ne.
if(ierr0) GOTO 100
79 size_read=size_read+int(3*SIZE_INT,kind=8)
80#if !defined(MUMPS_F2003)
82 & +int(2*SIZE_INT*1,kind=8)
84 read(fileunit,iostat=ierr) READ_INT_TYPE_64
85.ne.
if(ierr0) GOTO 100
86 size_read=size_read+int(SIZE_LOGICAL,kind=8)
87#if !defined(MUMPS_F2003)
89 & +int(2*SIZE_INT*1,kind=8)
91 read(fileunit,iostat=ierr) READ_OOC_FILE_NAME_LENGTH
92.ne.
if(ierr0) GOTO 100
93 size_read=size_read+int(SIZE_INT,kind=8)
94#if !defined(MUMPS_F2003)
96 & +int(2*SIZE_INT*1,kind=8)
98.EQ.
IF(READ_OOC_FILE_NAME_LENGTH-999) THEN
99 read(fileunit,iostat=ierr) dummy
100.ne.
if(ierr0) GOTO 100
101 size_read=size_read+int(SIZE_INT,kind=8)
102#if !defined(MUMPS_F2003)
104 & +int(2*SIZE_INT*1,kind=8)
107 read(fileunit,iostat=ierr)
108 & READ_OOC_FIRST_FILE_NAME(1:READ_OOC_FILE_NAME_LENGTH)
109.ne.
if(ierr0) GOTO 100
110 size_read=size_read+int(
111 & READ_OOC_FILE_NAME_LENGTH*SIZE_CHARACTER,kind=8)
112#if !defined(MUMPS_F2003)
114 & +int(2*SIZE_INT*1,kind=8)
116#if defined(OOC_VERBOSE)
117 write(*,*) 'First ooc file: ',
118 & READ_OOC_FIRST_FILE_NAME(1:READ_OOC_FILE_NAME_LENGTH-2)
subroutine mumps_read_header(fileunit, ierr, size_read, size_int, size_int8, total_file_size, total_struc_size, read_arith, read_int_type_64, read_ooc_file_name_length, read_ooc_first_file_name, read_hash, read_sym, read_par, read_nprocs, fortran_version_ok)