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) :: FORTRAN_VERSION_OK
38 CHARACTER(len=5) :: READ_FORTRAN_VERSION
39 INTEGER :: SIZE_CHARACTER, SIZE_LOGICAL
40 INTEGER :: dummy
41 size_character = 1
42 size_logical = 4
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
47 ierr = 0
48 fortran_version_ok = .false.
49 GOTO 100
50 endif
51 size_read=size_read+int(5*size_character,kind=8)
52#if !defined(MUMPS_F2003)
53 size_read=size_read
54 & +int(2*size_int*1,kind=8)
55#endif
56 read(fileunit,iostat=ierr) read_hash
57 if(ierr.ne.0) GOTO 100
58 size_read=size_read+int(23*size_character,kind=8)
59#if !defined(MUMPS_F2003)
60 size_read=size_read
61 & +int(2*size_int*1,kind=8)
62#endif
63 read(fileunit,iostat=ierr) total_file_size,total_struc_size
64 if(ierr.ne.0) GOTO 100
65 size_read=size_read+int(2*size_int8,kind=8)
66#if !defined(MUMPS_F2003)
67 size_read=size_read
68 & +int(2*size_int*1,kind=8)
69#endif
70 read(fileunit,iostat=ierr) read_arith
71 if(ierr.ne.0) GOTO 100
72 size_read=size_read+int(1,kind=8)
73#if !defined(MUMPS_F2003)
74 size_read=size_read
75 & +int(2*size_int*1,kind=8)
76#endif
77 read(fileunit,iostat=ierr) read_sym,read_par,read_nprocs
78 if(ierr.ne.0) GOTO 100
79 size_read=size_read+int(3*size_int,kind=8)
80#if !defined(MUMPS_F2003)
81 size_read=size_read
82 & +int(2*size_int*1,kind=8)
83#endif
84 read(fileunit,iostat=ierr) read_int_type_64
85 if(ierr.ne.0) GOTO 100
86 size_read=size_read+int(size_logical,kind=8)
87#if !defined(MUMPS_F2003)
88 size_read=size_read
89 & +int(2*size_int*1,kind=8)
90#endif
91 read(fileunit,iostat=ierr) read_ooc_file_name_length
92 if(ierr.ne.0) GOTO 100
93 size_read=size_read+int(size_int,kind=8)
94#if !defined(MUMPS_F2003)
95 size_read=size_read
96 & +int(2*size_int*1,kind=8)
97#endif
98 IF(read_ooc_file_name_length.EQ.-999) THEN
99 read(fileunit,iostat=ierr) dummy
100 if(ierr.ne.0) GOTO 100
101 size_read=size_read+int(size_int,kind=8)
102#if !defined(MUMPS_F2003)
103 size_read=size_read
104 & +int(2*size_int*1,kind=8)
105#endif
106 ELSE
107 read(fileunit,iostat=ierr)
108 & read_ooc_first_file_name(1:read_ooc_file_name_length)
109 if(ierr.ne.0) GOTO 100
110 size_read=size_read+int(
111 & read_ooc_file_name_length*size_character,kind=8)
112#if !defined(MUMPS_F2003)
113 size_read=size_read
114 & +int(2*size_int*1,kind=8)
115#endif
116#if defined(OOC_VERBOSE)
117 write(*,*) 'First ooc file: ',
118 & read_ooc_first_file_name(1:read_ooc_file_name_length-2)
119#endif
120 ENDIF
121 100 continue
122 RETURN