OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dmumps_save_restore_files Module Reference

Functions/Subroutines

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)
subroutine dmumps_check_header (id, basic_check, read_int_type_64, read_hash, read_nprocs, read_arith, read_sym, read_par)
subroutine mumps_clean_saved_data (myid, ierr, suppfile, infofile)
subroutine dmumps_get_save_files (id, save_file, info_file)
subroutine dmumps_check_file_name (id, name_length, file_name, check)

Variables

integer len_save_file

Function/Subroutine Documentation

◆ dmumps_check_file_name()

subroutine dmumps_save_restore_files::dmumps_check_file_name ( type (dmumps_struc), intent(in) id,
integer, intent(in) name_length,
character(len=len_save_file), intent(in) file_name,
logical, intent(out) check )

Definition at line 295 of file dmumps_save_restore_files.F.

296 TYPE (DMUMPS_STRUC),intent(in) :: id
297 INTEGER,intent(in) :: NAME_LENGTH
298 CHARACTER(len=LEN_SAVE_FILE),intent(in) :: FILE_NAME
299 LOGICAL,intent(out) :: CHECK
300 INTEGER :: I
301 check = .false.
302 IF (name_length.NE.-999) THEN
303 IF (associated(id%OOC_FILE_NAME_LENGTH) .AND.
304 & associated(id%OOC_FILE_NAMES)) THEN
305 IF (name_length .EQ. id%OOC_FILE_NAME_LENGTH(1)) THEN
306 check = .true.
307 i = 1
308 DO WHILE(i.LE.name_length)
309 IF (file_name(i:i).NE.id%OOC_FILE_NAMES(1,i)) THEN
310 check = .false.
311 i = name_length + 1
312 ELSE
313 i = i + 1
314 ENDIF
315 END DO
316 ENDIF
317 ENDIF
318 ENDIF
initmumps id

◆ dmumps_check_header()

subroutine dmumps_save_restore_files::dmumps_check_header ( type (dmumps_struc), intent(inout) id,
logical, intent(in) basic_check,
logical, intent(in) read_int_type_64,
character(len=23), intent(in) read_hash,
integer, intent(in) read_nprocs,
character, intent(in) read_arith,
integer, intent(in) read_sym,
integer, intent(in) read_par )

Definition at line 124 of file dmumps_save_restore_files.F.

127 include 'mpif.h'
128 TYPE (DMUMPS_STRUC),intent(inout) :: id
129 LOGICAL, intent(in) :: BASIC_CHECK
130 LOGICAL, intent(in) :: READ_INT_TYPE_64
131 CHARACTER(len=23), intent(in) :: READ_HASH
132 INTEGER, intent(in) :: READ_NPROCS
133 CHARACTER, intent(in) :: READ_ARITH
134 INTEGER, intent(in) :: READ_SYM,READ_PAR
135 LOGICAL :: INT_TYPE_64
136 CHARACTER(len=23) :: HASH_MASTER
137 CHARACTER :: ARITH
138 INTEGER :: IERR
139 IF(id%KEEP(10).EQ.1) THEN
140 int_type_64=.true.
141 ELSE
142 int_type_64=.false.
143 ENDIF
144 if(int_type_64.neqv.read_int_type_64) THEN
145 id%INFO(1) = -73
146 id%INFO(2) = 2
147 endif
148 CALL mumps_propinfo( id%ICNTL(1), id%INFO(1),
149 & id%COMM, id%MYID )
150 IF ( id%INFO(1) .LT. 0 ) GOTO 100
151 if(id%MYID.EQ.0) THEN
152 hash_master=read_hash
153 ENDIF
154 call mpi_bcast(hash_master,23,mpi_character,0,id%COMM,ierr)
155 if(hash_master.ne.read_hash) THEN
156 id%INFO(1) = -73
157 id%INFO(2) = 3
158 endif
159 CALL mumps_propinfo( id%ICNTL(1), id%INFO(1),
160 & id%COMM, id%MYID )
161 IF ( id%INFO(1) .LT. 0 ) GOTO 100
162 if(id%NPROCS.ne.read_nprocs) THEN
163 id%INFO(1) = -73
164 id%INFO(2) = 4
165 endif
166 CALL mumps_propinfo( id%ICNTL(1), id%INFO(1),
167 & id%COMM, id%MYID )
168 IF ( id%INFO(1) .LT. 0 ) GOTO 100
169 IF (.NOT.basic_check) THEN
170 arith="DMUMPS"(1:1)
171 if(arith.ne.read_arith) THEN
172 id%INFO(1) = -73
173 id%INFO(2) = 5
174 endif
175 CALL mumps_propinfo( id%ICNTL(1), id%INFO(1),
176 & id%COMM, id%MYID )
177 IF ( id%INFO(1) .LT. 0 ) GOTO 100
178 if((id%MYID.EQ.0).AND.(id%SYM.ne.read_sym)) THEN
179 id%INFO(1) = -73
180 id%INFO(2) = 6
181 endif
182 CALL mumps_propinfo( id%ICNTL(1), id%INFO(1),
183 & id%COMM, id%MYID )
184 IF ( id%INFO(1) .LT. 0 ) GOTO 100
185 if((id%MYID.EQ.0).AND.(id%PAR.ne.read_par)) THEN
186 write (*,*) id%MYID, 'PAR ',id%PAR, 'READ_PAR ', read_par
187 id%INFO(1) = -73
188 id%INFO(2) = 7
189 endif
190 CALL mumps_propinfo( id%ICNTL(1), id%INFO(1),
191 & id%COMM, id%MYID )
192 IF ( id%INFO(1) .LT. 0 ) GOTO 100
193 ENDIF
194 100 continue
195 RETURN
subroutine mumps_propinfo(icntl, info, comm, id)
subroutine mpi_bcast(buffer, cnt, datatype, root, comm, ierr)
Definition mpi.f:205

◆ dmumps_get_save_files()

subroutine dmumps_save_restore_files::dmumps_get_save_files ( type (dmumps_struc), intent(inout) id,
character(len=len_save_file), intent(out) save_file,
character(len=len_save_file), intent(out) info_file )

Definition at line 230 of file dmumps_save_restore_files.F.

231 include 'mpif.h'
232 TYPE (DMUMPS_STRUC),intent(inout) :: id
233 CHARACTER(len=LEN_SAVE_FILE),intent(out):: SAVE_FILE, INFO_FILE
234 INTEGER::len_save_dir,len_save_prefix
235 CHARACTER(len=255):: tmp_savedir,savedir
236 CHARACTER(len=255):: tmp_saveprefix,saveprefix
237 CHARACTER(len=10):: STRING_MYID
238 CHARACTER:: LAST_CHAR_DIR
239 info_file=''
240 save_file=''
241 tmp_savedir=''
242 tmp_saveprefix=''
243 IF(id%SAVE_DIR.EQ."NAME_NOT_INITIALIZED") THEN
244 call mumps_get_save_dir_c(len_save_dir,tmp_savedir)
245 if(tmp_savedir(1:len_save_dir).EQ."NAME_NOT_INITIALIZED") then
246 id%INFO(1) = -77
247 id%INFO(2) = 0
248 else
249 savedir=trim(adjustl(tmp_savedir(1:len_save_dir)))
250 len_save_dir=len_trim(savedir(1:len_save_dir))
251 endif
252 ELSE
253 savedir=trim(adjustl(id%SAVE_DIR))
254 len_save_dir=len_trim(savedir)
255 ENDIF
256 CALL mumps_propinfo( id%ICNTL(1), id%INFO(1),
257 & id%COMM, id%MYID )
258 IF ( id%INFO(1) .LT. 0 ) GOTO 100
259 IF(id%SAVE_PREFIX.EQ."NAME_NOT_INITIALIZED") THEN
260 call mumps_get_save_prefix_c(len_save_prefix,tmp_saveprefix)
261 if(tmp_saveprefix(1:len_save_prefix).EQ."NAME_NOT_INITIALIZED")
262 & then
263 saveprefix="save"
264 len_save_prefix=len_trim(saveprefix)
265 else
266 saveprefix=
267 & trim(adjustl(tmp_saveprefix(1:len_save_prefix)))
268 len_save_prefix=len_trim(saveprefix(1:len_save_prefix))
269 endif
270 ELSE
271 saveprefix=trim(adjustl(id%SAVE_PREFIX))
272 len_save_prefix=len_trim(saveprefix)
273 ENDIF
274 write(string_myid,'(I10)') id%MYID
275 last_char_dir=savedir(len_save_dir:len_save_dir)
276 if(last_char_dir.NE."/") then
277 save_file=trim(adjustl(savedir))//"/"
278 else
279 save_file=trim(adjustl(savedir))
280 endif
281 info_file=trim(adjustl(save_file))
282 save_file=trim(adjustl(save_file))
283 & //trim(adjustl(saveprefix))
284 & //"_"
285 & //trim(adjustl(string_myid))
286 & //".mumps"
287 info_file=trim(adjustl(info_file))
288 & //trim(adjustl(saveprefix))
289 & //"_"
290 & //trim(adjustl(string_myid))
291 & //".info"
292 100 continue
293 RETURN

◆ mumps_clean_saved_data()

subroutine dmumps_save_restore_files::mumps_clean_saved_data ( integer, intent(in) myid,
integer, intent(out) ierr,
character(len=len_save_file), intent(in) suppfile,
character(len=len_save_file), intent(in) infofile )

Definition at line 197 of file dmumps_save_restore_files.F.

198 include 'mpif.h'
199 INTEGER,intent(in) :: MYID
200 INTEGER,intent(out) :: ierr
201 CHARACTER(len=LEN_SAVE_FILE),intent(in):: SUPPFILE,INFOFILE
202 INTEGER::supp,tmp_err
203 ierr = 0
204 tmp_err = 0
205 supp=200+myid
206 open(unit=supp,file=suppfile,status='old',
207 & form='unformatted',iostat=tmp_err)
208 if (tmp_err.eq.0) THEN
209 close(unit=supp,status='delete',iostat=tmp_err)
210 if(tmp_err.ne.0) then
211 ierr = 1
212 tmp_err = 0
213 endif
214 endif
215 if (ierr .eq. 0) then
216 if (tmp_err.ne.0) then
217 ierr = 1
218 tmp_err = 0
219 endif
220 open(unit=supp,file=infofile,status='old',iostat=tmp_err)
221 if (tmp_err.eq.0) THEN
222 close(unit=supp,status='delete',iostat=tmp_err)
223 endif
224 if (tmp_err.ne.0) THEN
225 ierr = ierr + 2
226 tmp_err = 0
227 endif
228 endif

◆ mumps_read_header()

subroutine dmumps_save_restore_files::mumps_read_header ( integer, intent(in) fileunit,
integer, intent(out) ierr,
integer(8), intent(inout) size_read,
integer, intent(in) size_int,
integer, intent(in) size_int8,
integer(8), intent(out) total_file_size,
integer(8), intent(out) total_struc_size,
character, intent(out) read_arith,
logical, intent(out) read_int_type_64,
integer, intent(out) read_ooc_file_name_length,
character(len=len_save_file), intent(out) read_ooc_first_file_name,
character(len=23), intent(out) read_hash,
integer, intent(out) read_sym,
integer, intent(out) read_par,
integer, intent(out) read_nprocs,
logical, intent(out) fortran_version_ok )

Definition at line 20 of file dmumps_save_restore_files.F.

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

Variable Documentation

◆ len_save_file

integer dmumps_save_restore_files::len_save_file

Definition at line 17 of file dmumps_save_restore_files.F.

17 INTEGER :: LEN_SAVE_FILE