21
22
23
24
25
26
28 IMPLICIT NONE
29 include 'mpif.h'
30 TYPE (SMUMPS_STRUC) id
31 INTEGER MASTER, IERR,PAR_loc,SYM_loc
32 parameter( master = 0 )
33 INTEGER color
34
35
36
38
39
40
43
44
45 CALL mpi_bcast(par_loc,1,mpi_integer,master,
id%COMM,ierr)
46 CALL mpi_bcast(sym_loc,1,mpi_integer,master,
id%COMM,ierr)
47
48
49
50 IF ( par_loc .eq. 0 ) THEN
51
52
53
54 IF (
id%MYID .eq. master )
THEN
55 color = mpi_undefined
56 ELSE
57 color = 0
58 END IF
60 &
id%COMM_NODES, ierr )
61 id%NSLAVES =
id%NPROCS - 1
62 ELSE
63
64
65
67 id%NSLAVES =
id%NPROCS
68 END IF
69
70
71
72
73 IF (par_loc .ne. 0 .or.
id%MYID .NE. master)
THEN
75 ENDIF
76
77
78
79
81 &
id%CNTL(1),
id%ICNTL(1),
82 &
id%KEEP(1),
id%KEEP8(1),
id%INFO(1),
id%INFOG(1),
83 &
id%RINFO(1),
id%RINFOG(1),
84 & sym_loc, par_loc,
id%DKEEP(1),
id%MYID )
86 &
id%KEEP(412),
id%KEEP(413) )
87 id%WRITE_PROBLEM=
"NAME_NOT_INITIALIZED"
89 id%OOC_TMPDIR=
"NAME_NOT_INITIALIZED"
90 id%OOC_PREFIX=
"NAME_NOT_INITIALIZED"
91 id%SAVE_DIR=
"NAME_NOT_INITIALIZED"
92 id%SAVE_PREFIX=
"NAME_NOT_INITIALIZED"
93
95
96
97
99 ! not accessed
if id%NRHS=1
100
101
103
104
106
108
109
110
111 id%METIS_OPTIONS(:) = 0
112#if defined(metis) || defined(parmetis) || defined(metis4
113#if defined(metis4) || defined(parmetis3)
114
115
116 id%METIS_OPTIONS(1) = 0
117#else
118
119
120 CALL metis_setdefaultoptions(
id%METIS_OPTIONS)
121
122
123
124
125
126
127 id%METIS_OPTIONS(18) = 1
128#endif
129#endif
130
131
132
133 id%N = 0;
id%NZ = 0;
id%NNZ = 0_8
137 id%NZ_loc = 0;
id%NNZ_loc = 0_8
145 NULLIFY(
id%RHS_SPARSE)
146 NULLIFY(
id%IRHS_SPARSE)
160
164
165 NULLIFY(
id%Step2node)
166 NULLIFY(
id%DAD_STEPS)
169 NULLIFY(
id%FRERE_STEPS)
172 NULLIFY(
id%PIVNUL_LIST)
179 NULLIFY(
id%PROCNODE_STEPS)
185 NULLIFY(
id%DEPTH_FIRST)
186 NULLIFY(
id%DEPTH_FIRST_SEQ)
188 NULLIFY(
id%SCHED_DEP)
189 NULLIFY(
id%SCHED_SBTR)
190 NULLIFY(
id%SCHED_GRP)
191 NULLIFY(
id%CROIX_MANU)
193 NULLIFY(
id%MEM_SUBTREE)
194 NULLIFY(
id%MEM_SUBTREE)
195 NULLIFY(
id%MY_ROOT_SBTR)
196 NULLIFY(
id%MY_FIRST_LEAF)
197 NULLIFY(
id%MY_NB_LEAF)
198 NULLIFY(
id%COST_TRAV)
200 NULLIFY(
id%POSINRHSCOMP_ROW)
201 NULLIFY(
id%POSINRHSCOMP_COL)
202 id%POSINRHSCOMP_COL_ALLOC = .false.
203
204
205
206 NULLIFY(
id%OOC_INODE_SEQUENCE)
207 NULLIFY(
id%OOC_TOTAL_NB_NODES)
208 NULLIFY(
id%OOC_SIZE_OF_BLOCK)
209 NULLIFY(
id%OOC_FILE_NAME_LENGTH)
210 NULLIFY(
id%OOC_FILE_NAMES)
211 NULLIFY(
id%OOC_VADDR)
212 NULLIFY(
id%OOC_NB_FILES)
214 NULLIFY(
id%FDM_F_ENCODING)
215 NULLIFY(
id%BLRARRAY_ENCODING)
216 NULLIFY(
id%MPITOOMP_PROCS_MAP)
217
218
219 NULLIFY(
id%CB_SON_SIZE)
220
221
222
223 NULLIFY(
id%root%RHS_CNTR_MASTER_ROOT)
224 NULLIFY(
id%root%RHS_ROOT)
225 NULLIFY(
id%root%RG2L_ROW)
226 NULLIFY(
id%root%RG2L_COL)
227 NULLIFY(
id%root%IPIV)
228 NULLIFY(
id%root%SCHUR_POINTER)
229 NULLIFY(
id%SCHUR_CINTERFACE)
230
231
232
238
239
240
242 NULLIFY(
id%LISTVAR_SCHUR )
244
252
253
254
255 NULLIFY(
id%ISTEP_TO_INIV2)
256 NULLIFY(
id%I_AM_CAND)
257 NULLIFY(
id%FUTURE_NIV2)
258 NULLIFY(
id%TAB_POS_IN_PERE)
259 NULLIFY(
id%CANDIDATES)
260 id%OOC_NB_FILE_TYPE=-123456
261
262
263
264 NULLIFY(
id%IPOOL_B_L0_OMP)
265 NULLIFY(
id%IPOOL_A_L0_OMP)
266 NULLIFY(
id%PHYS_L0_OMP)
267 NULLIFY(
id%VIRT_L0_OMP)
268 NULLIFY(
id%VIRT_L0_OMP_MAPPING)
269 NULLIFY(
id%PERM_L0_OMP)
270 NULLIFY(
id%PTR_LEAFS_L0_OMP)
271 NULLIFY(
id%L0_OMP_MAPPING)
272 NULLIFY(
id%L0_OMP_FACTORS)
273 NULLIFY(
id%I4_L0_OMP)
274 NULLIFY(
id%I8_L0_OMP)
275 id%LPOOL_B_L0_OMP = 0
276 id%LPOOL_A_L0_OMP = 0
280
281
282
283 NULLIFY(
id%IPTR_WORKING)
285
286
287
288 NULLIFY(
id%SINGULAR_VALUES)
290
292
293
297 id%root%yes = .false.
298 id%root%gridinit_done = .false.
299
300 id%ASSOCIATED_OOC_FILES=.false.
301
302
303
304
305
306
307
308 IF (
id%KEEP( 46 ) .ne. 0 .OR.
309 &
id%MYID .ne. master )
THEN
311 & (
id%COMM_NODES,
id%MYID_NODES, ierr )
312 ELSE
313 id%MYID_NODES = -464646
314 ENDIF
315 RETURN
subroutine mpi_comm_split(comm, color, key, comm2, ierr)
subroutine mpi_comm_dup(comm, comm2, ierr)
subroutine mpi_comm_size(comm, size, ierr)
subroutine mpi_bcast(buffer, cnt, datatype, root, comm, ierr)
subroutine mpi_comm_rank(comm, rank, ierr)
subroutine mumps_set_version(version_str)
subroutine, public smumps_buf_init(intsize, realsize)
subroutine smumpsid(nslaves, lwk_user, cntl, icntl, keep, keep8, info, infog, rinfo, rinfog, sym, par, dkeep, myid)
subroutine smumps_rr_init_pointers(id)