53 & ,SIZE_GEST,SIZE_VARIABLES
54 & ,SIZE_INT,SIZE_INT8,SIZE_ARITH_DEP
55 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
56 & ,size_read,size_allocated,size_written
60 TYPE (cmumps_l0ompfac_t),
DIMENSION(:),
POINTER :: l0_omp_factors
61 INTEGER,
intent(IN)::unit,myid
62 CHARACTER(len=*),
intent(IN) :: mode
63 INTEGER,
INTENT(OUT) :: size_gest
64 INTEGER(8),
intent(OUT) :: size_variables
65 INTEGER,
intent(INOUT):: info(2)
66 INTEGER,
intent(IN):: size_int, size_int8, size_arith_dep
67 INTEGER(8),
intent(IN) :: total_file_size,total_struc_size
68 INTEGER(8),
intent(INOUT):: size_read,size_allocated,size_written
69 INTEGER:: j1,nbrecords,nbsubrecords,size_array1,dummy,allocok,err
70 INTEGER:: size_gest_l0fac_array,
71 & size_gest_l0fac_array_j1
73 INTEGER(8):: size_variables_l0fac_array,
74 & size_variables_l0fac_array_j1
77 size_gest_l0fac_array=0
78 size_variables_l0fac_array=0
79 size_gest_l0fac_array_j1=0
80 size_variables_l0fac_array_j1=0
82 IF (trim(mode).EQ.
"memory_save")
THEN
83 IF (
associated(l0_omp_factors))
THEN
87 DO j1=1,
size(l0_omp_factors)
90 & ,unit,myid,
"memory_save"
91 & ,size_gest_l0fac_array_j1
92 & ,size_variables_l0fac_array_j1
93 & ,size_int,size_int8,size_arith_dep
94 & ,total_file_size,total_struc_size
95 & ,size_read,size_allocated,size_written
97 size_gest_l0fac_array=size_gest_l0fac_array+
98 & size_gest_l0fac_array_j1
99 size_variables_l0fac_array=size_variables_l0fac_array+
100 & size_variables_l0fac_array_j1
101 IF ( info(1) .LT. 0 )
GOTO 100
105 size_gest = 2*size_int
108 ELSEIF (trim(mode).EQ.
"save")
THEN
109 IF (
associated(l0_omp_factors))
THEN
113 write(unit,iostat=err)
size(l0_omp_factors)
119 IF ( info(1) .LT. 0 )
GOTO 100
120 DO j1=1,
size(l0_omp_factors)
124 & ,size_gest_l0fac_array_j1
125 & ,size_variables_l0fac_array_j1
126 & ,size_int,size_int8,size_arith_dep
127 & ,total_file_size,total_struc_size
128 & ,size_read,size_allocated,size_written
135 write(unit,iostat=err) -999
141 IF ( info(1) .LT. 0 )
GOTO 100
142 write(unit,iostat=err) -999
148 IF ( info(1) .LT. 0 )
GOTO 100
150 ELSE IF (trim(mode).EQ.
"restore")
THEN
151 NULLIFY(l0_omp_factors)
152 read(unit,iostat=err) size_array1
158 IF ( info(1) .LT. 0 )
GOTO 100
159 if(size_array1.EQ.-999)
then
163 read(unit,iostat=err) dummy
169 IF ( info(1) .LT. 0 )
GOTO 100
174 allocate(l0_omp_factors(size_array1), stat=allocok)
175 if (allocok .GT. 0)
THEN
178 & total_struc_size-size_allocated
181 DO j1=1,
size(l0_omp_factors)
184 & ,unit,myid,
"restore"
185 & ,size_gest_l0fac_array_j1
186 & ,size_variables_l0fac_array_j1
187 & ,size_int, size_int8, size_arith_dep
188 & ,total_file_size,total_struc_size
189 & ,size_read,size_allocated,size_written
191 size_gest_l0fac_array=size_gest_l0fac_array+
192 & size_gest_l0fac_array_j1
193 size_variables_l0fac_array=size_variables_l0fac_array+
194 & size_variables_l0fac_array_j1
195 IF ( info(1) .LT. 0 )
GOTO 100
199 if(trim(mode).EQ.
"memory_save")
then
200 nbsubrecords=int(size_variables/huge(i4))
201 IF(nbsubrecords.GT.0)
then
202 nbrecords=nbrecords+nbsubrecords
204 elseif(trim(mode).EQ.
"save")
then
205 size_written=size_written+size_variables
206 & +int(size_gest,kind=8)
207#if !defined(MUMPS_F2003)
208 size_written=size_written
209 & +int(2*size_int*nbrecords,kind=8)
211 elseif(trim(mode).EQ."restore
") then
212 size_allocated=size_allocated+SIZE_VARIABLES
213 size_read=size_read+SIZE_VARIABLES
214 & +int(SIZE_GEST,kind=8)
215#if !defined(MUMPS_F2003)
217 & +int(2*SIZE_INT*NbRecords,kind=8)
220.EQ.
if(trim(mode)"memory_save
") then
221 SIZE_VARIABLES=SIZE_VARIABLES+SIZE_VARIABLES_L0FAC_ARRAY
222 SIZE_GEST=SIZE_GEST+SIZE_GEST_L0FAC_ARRAY
223#if !defined(MUMPS_F2003)
224 SIZE_GEST=SIZE_GEST+2*SIZE_INT*NbRecords
subroutine, public cmumps_save_restore_l0facarray(l0_omp_factors, unit, myid, mode, size_gest, size_variables, size_int, size_int8, size_arith_dep, total_file_size, total_struc_size, size_read, size_allocated, size_written, info)
subroutine cmumps_save_restore_l0fac(l0_omp_factors_1thread, unit, myid, mode, local_size_gest, local_size_variables, size_int, size_int8, size_arith_dep, total_file_size, total_struc_size, size_read, size_allocated, size_written, info)