20#if ! defined (MUMPS_WIN32) && ! defined (WITHOUT_PTHREAD)
23#if ! defined(MUMPS_WIN32)
34 fd=fopen(filename,
"w");
36 for(icol=0;icol<*
NRHS;icol++)
38 fwrite(RHSshift, (
size_t)(*K35), (
size_t)(*
N), fd);
39 RHSshift=RHSshift+(size_t)(*LRHS)*(size_t)(*K35/
sizeof(
float));
51 fd=fopen(filename,
"w");
54 fwrite( &myN,
sizeof(int32_t), 1, fd);
55 fwrite( NNZ,
sizeof(int64_t), 1, fd);
61 fwrite( irn,
sizeof(int32_t), (
size_t)(*NNZ), fd);
62 fwrite( jcn,
sizeof(int32_t), (
size_t)(*NNZ), fd);
66 for(i8=0;i8 < *NNZ;i8++)
69 fwrite(&tmpi,
sizeof(int32_t), 1, fd);
71 for(i8=0;i8 < *NNZ;i8++)
74 fwrite(&tmpi,
sizeof(int32_t), 1, fd);
79 fwrite(A, (
size_t)(*K35), (
size_t)(*NNZ), fd);
91#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
94#if ! defined(MUMPS_WIN32)
95 struct timeval start_time,end_time;
96 gettimeofday(&start_time,NULL);
108#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
120#if ! defined(MUMPS_WIN32)
121 gettimeofday(&end_time,NULL);
132#if ! defined(MUMPS_WIN32)
133 struct timeval start_time,end_time;
134 gettimeofday(&start_time,NULL);
143#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
156#if ! defined(MUMPS_WIN32)
157 gettimeofday(&end_time,NULL);
205 MUMPS_INT myid_loc,async_loc,size_element_loc,nb_file_type_loc,*flag_tab_loc;
206#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
209 long long total_size_io_loc;
213 total_size_io_loc=(
long long)*total_size_io;
214 size_element_loc=(
MUMPS_INT)*size_element;
215 nb_file_type_loc=(
MUMPS_INT)*nb_file_type;
217 for (i=0;i<nb_file_type_loc;i++){
220#if defined(MUMPS_WIN32)
229#if defined (WITHOUT_PTHREAD)
269#if ! defined(MUMPS_WIN32)
275 printf(
"mumps_low_level_init_ooc_c should not be called with strategy %d\n",(
int)
mumps_io_flag_async);
277#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
288 sprintf(buf,
"Error: unknown I/O strategy : %d\n",(
int)*async);
301 void * address_block,
312 long long vaddr,block_size;
314 MUMPS_INT inode_loc,request_arg_loc,type_loc,ierr_loc,strat_IO_loc;
315#if ! defined(MUMPS_WIN32)
316 struct timeval start_time,end_time;
317 gettimeofday(&start_time,NULL);
333#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
335 ret_code=
mumps_async_write_th(&strat_IO_loc, address_block, block_size,&inode_loc,&request_arg_loc,&type_loc,vaddr,&ierr_loc);
345 sprintf(buf,
"Error: unknown I/O strategy : %d\n",(
int)*strat_IO);
356#if ! defined(MUMPS_WIN32)
357 gettimeofday(&end_time,NULL);
368 void * address_block,
379 long long vaddr,block_size;
380 MUMPS_INT inode_loc,request_arg_loc,type_loc,ierr_loc,strat_IO_loc;
381#if ! defined(MUMPS_WIN32)
382 struct timeval start_time,end_time;
383 gettimeofday(&start_time,NULL);
394#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
396 mumps_async_read_th(&strat_IO_loc,address_block,block_size,&inode_loc,&request_arg_loc,&type_loc,vaddr,&ierr_loc);
403 sprintf(buf,
"Error: unknown I/O strategy : %d\n",(
int)*strat_IO);
412#if ! defined(MUMPS_WIN32)
413 gettimeofday(&end_time,NULL);
430 long long vaddr,block_size;
432#if ! defined(MUMPS_WIN32)
433 struct timeval start_time,end_time;
434 gettimeofday(&start_time,NULL);
439#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
452#if ! defined(MUMPS_WIN32)
453# if ! defined(WITHOUT_PTHREAD)
455 gettimeofday(&end_time,NULL);
475#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
494#if ! defined(MUMPS_WIN32)
512#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
543 MUMPS_INT type_loc,indice_loc,length_loc;
554 MUMPS_INT type_loc,indice_loc,length_loc;
566 nb_file_type_loc=(
MUMPS_INT)*nb_file_type;
568 for(i=0;i<nb_file_type_loc;i++){
572 for(i=0;i<nb_file_type_loc;i++){
583 MUMPS_INT size_element_loc,async_loc,myid_arg_loc;
584#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
588 size_element_loc=(
MUMPS_INT)*size_element;
609#if ! defined(MUMPS_WIN32) && ! defined(WITHOUT_PTHREAD)
634#if ! defined(MUMPS_WIN32)
635 sprintf(buf,
"Unable to remove OOC file %s",name);
637 sprintf(buf,
"Unable to remove OOC file %s with return value %d",name,*ierr);
653#if ( defined (WITHOUT_PTHREAD) || defined(MUMPS_WIN32) ) && ! defined(WITH_AIO)
669 long long * long_int )
671 *long_int=((
long long)(*short_int1)*((
long long)1073741824))+(
long long)(*short_int2);
we set the rigth hand side id RHS
MUMPS_INLINE MUMPS_INT mumps_convert_2fint_to_longlong(MUMPS_INT *short_int1, MUMPS_INT *short_int2, long long *long_int)
double mumps_time_spent_in_sync
void MUMPS_CALL MUMPS_OOC_PRINT_STATS()
#define MUMPS_GET_MAX_FILE_SIZE_C
static char MUMPS_OOC_STORE_TMPDIR[MUMPS_OOC_TMPDIR_MAX_LENGTH]
#define MUMPS_DUMPMATBINARY_C
#define MUMPS_CLEAN_IO_DATA_C
#define MUMPS_LOW_LEVEL_DIRECT_READ
#define MUMPS_LOW_LEVEL_INIT_PREFIX
#define MUMPS_OOC_END_WRITE_C
static MUMPS_INT MUMPS_OOC_STORE_TMPDIRLEN
#define MUMPS_OOC_START_LOW_LEVEL
#define MUMPS_OOC_TMPDIR_MAX_LENGTH
#define MUMPS_LOW_LEVEL_INIT_OOC_C
#define MUMPS_OOC_INIT_VARS_C
#define MUMPS_OOC_PREFIX_MAX_LENGTH
#define MUMPS_TEST_REQUEST_C
#define MUMPS_LOW_LEVEL_INIT_TMPDIR
#define MUMPS_DUMPRHSBINARY_C
static char MUMPS_OOC_STORE_PREFIX[MUMPS_OOC_PREFIX_MAX_LENGTH]
static MUMPS_INT MUMPS_OOC_STORE_PREFIXLEN
#define MUMPS_OOC_ALLOC_POINTERS_C
#define MUMPS_OOC_REMOVE_FILE_C
#define MUMPS_LOW_LEVEL_READ_OOC_C
#define MUMPS_WAIT_REQUEST
#define MUMPS_OOC_SET_FILE_NAME_C
#define MUMPS_OOC_GET_FILE_NAME_C
#define MUMPS_OOC_GET_NB_FILES_C
#define MUMPS_GET_MAX_NB_REQ_C
#define MUMPS_LOW_LEVEL_WRITE_OOC_C
#define MUMPS_OOC_IS_ASYNC_AVAIL
MUMPS_INT mumps_io_get_nb_files(MUMPS_INT *nb_files, const MUMPS_INT *type)
MUMPS_INT mumps_io_flag_async
MUMPS_INT mumps_io_set_file_name(MUMPS_INT *indice, char *name, MUMPS_INT *length, MUMPS_INT *type)
MUMPS_INT mumps_io_set_last_file(MUMPS_INT *dim, MUMPS_INT *type)
MUMPS_INT mumps_io_alloc_pointers(MUMPS_INT *nb_file_type, MUMPS_INT *dim)
MUMPS_INT mumps_io_init_vars(MUMPS_INT *myid_arg, MUMPS_INT *size_element, MUMPS_INT *async_arg)
MUMPS_INT mumps_init_file_structure(MUMPS_INT *_myid, long long *total_size_io, MUMPS_INT *size_element, MUMPS_INT *nb_file_type, MUMPS_INT *flag_tab)
MUMPS_INT mumps_io_get_file_name(MUMPS_INT *indice, char *name, MUMPS_INT *length, MUMPS_INT *type)
MUMPS_INT mumps_init_file_name(char *mumps_dir, char *mumps_file, MUMPS_INT *mumps_dim_dir, MUMPS_INT *mumps_dim_file, MUMPS_INT *_myid)
MUMPS_INT mumps_io_open_files_for_read()
MUMPS_INT mumps_io_is_init_called
MUMPS_INT mumps_io_do_read_block(void *address_block, long long block_size, MUMPS_INT *type_arg, long long vaddr, MUMPS_INT *ierr)
MUMPS_INT mumps_io_do_write_block(void *address_block, long long block_size, MUMPS_INT *type_arg, long long vaddr, MUMPS_INT *ierr)
MUMPS_INT mumps_elementary_data_size
MUMPS_INT mumps_free_file_pointers(MUMPS_INT *step)
MUMPS_INT mumps_io_sys_error(MUMPS_INT mumps_errno, const char *desc)
MUMPS_INT mumps_io_error(MUMPS_INT mumps_errno, const char *desc)
MUMPS_INT mumps_async_write_th(const MUMPS_INT *strat_IO, void *address_block, long long block_size, MUMPS_INT *inode, MUMPS_INT *request_arg, MUMPS_INT *type, long long vaddr, MUMPS_INT *ierr)
MUMPS_INT mumps_async_read_th(const MUMPS_INT *strat_IO, void *address_block, long long block_size, MUMPS_INT *inode, MUMPS_INT *request_arg, MUMPS_INT *type, long long vaddr, MUMPS_INT *ierr)
MUMPS_INT mumps_clean_io_data_c_th(MUMPS_INT *myid)
MUMPS_INT mumps_low_level_init_ooc_c_th(MUMPS_INT *async, MUMPS_INT *ierr)
MUMPS_INT mumps_test_request_th(MUMPS_INT *request_id, MUMPS_INT *flag)
MUMPS_INT mumps_wait_request_th(MUMPS_INT *request_id)
*fortran !University of Stuttgart All rights reserved Inc All rights reserved ! $COPYRIGHT$ !Additional copyrights may follow ! $HEADER$ !WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING !Do ***not ***copy this file to the directory where your Fortran !fortran application is compiled unless it is absolutely necessary !Most !modern Fortran compilers now support the I command line flag