17 & N, INODE, FPERE, IW, LIW, A, LA,
18 & UU, NNEGW, NPVW, NB22T2W, NBTINYW,
19 & DET_EXPW, DET_MANTW, DET_SIGNW,
20 & COMM, MYID, BUFR, LBUFR,LBUFR_BYTES,NBFIN,LEAF,
21 & IFLAG, IERROR, IPOOL,LPOOL,
22 & SLAVEF, POSFAC, IWPOS, IWPOSCB, IPTRLU, LRLU,
24 & PTRIST, PTRAST, PTLUST_S, PTRFAC, STEP,
26 & NSTK_S,PERM,PROCNODE_STEPS, root,
27 & OPASSW, OPELIW, ITLOC, RHS_MUMPS,
28 & FILS, DAD, PTRARW, PTRAIW,
29 & INTARR, DBLARR, ICNTL, KEEP,KEEP8, ND, FRERE,
30 & LPTRAR, NELT, FRTPTR, FRTELT, SEUIL,
31 & ISTEP_TO_INIV2, TAB_POS_IN_PERE, AVOID_DELAYED,
32 & DKEEP,PIVNUL_LIST,LPN_LIST
47 INTEGER COMM_LOAD, ASS_IRECV
48 INTEGER N, INODE, FPERE, LIW
49 INTEGER,
intent(inout) :: NNEGW, NPVW, NB22T2W, NBTINYW
50 INTEGER,
intent(inout) :: DET_EXPW, DET_SIGNW
51 COMPLEX,
intent(inout) :: DET_MANTW
53 INTEGER,
TARGET :: IW( LIW )
56 TYPE (CMUMPS_ROOT_STRUC) :: root
57 INTEGER COMM, MYID, LBUFR, LBUFR_BYTES
59 INTEGER ICNTL(60), KEEP(500)
61 INTEGER NBFIN, SLAVEF,
62 & iflag, ierror, leaf, lpool
63 INTEGER(8) :: POSFAC, IPTRLU, LRLU, LRLUS
64 INTEGER IWPOS, IWPOSCB, COMP
66 INTEGER FRTPTR( N + 1 ), FRTELT( NELT )
67 INTEGER BUFR( LBUFR ), IPOOL(LPOOL),
68 & itloc(n+keep(253)), fils(n), dad( keep(28) ),
69 & nd( keep(28) ), frere( keep(28) )
70 INTEGER(8),
INTENT(IN) :: PTRARW(LPTRAR), PTRAIW(LPTRAR)
71 COMPLEX :: RHS_MUMPS(KEEP(255))
72 INTEGER(8) :: PTRAST(KEEP(28))
73 INTEGER(8) :: PTRFAC(KEEP(28))
74 INTEGER(8) :: PAMASTER(KEEP(28))
75 INTEGER PTRIST(KEEP(28)), PTLUST_S(KEEP(28)),
76 & step(n), pimaster(keep(28)),
77 & nstk_s(keep(28)), perm(n),
78 & procnode_steps(keep(28))
79 INTEGER ISTEP_TO_INIV2(KEEP(71)),
80 & TAB_POS_IN_PERE(SLAVEF+2,max(1,KEEP(56)))
81 DOUBLE PRECISION OPASSW, OPELIW
82 COMPLEX DBLARR(KEEP8(26))
83 INTEGER INTARR(KEEP8(27))
86 INTEGER PIVNUL_LIST(LPN_LIST)
90 INTEGER IOLDPS, allocok, K263,J
91 INTEGER INOPV, IFINB, NFRONT, NPIV, IEND_BLOCK
92 INTEGER NASS, LDAFS, IBEG_BLOCK
93 INTEGER :: NB_POSTPONED
94 INTEGER :: IBEG_BLOCK_FOR_IPIV
95 LOGICAL LASTBL, LR_ACTIVATED, COMPRESS_PANEL
96 LOGICAL OOCWRITE_COMPATIBLE_WITH_BLR,
97 & ooc_effective_on_front,
98 & ooc_eff_and_write_bypanel
99 INTEGER NBLR_ORIG, IBEG_BLR, IEND_BLR, CURRENT_BLR
103 INTEGER XSIZE, NBKJIB_ORIG
105 include
'mumps_headers.h'
106 INTEGER ,
ALLOCATABLE,
DIMENSION ( : ) :: IPIV
107 REAL ,
ALLOCATABLE,
DIMENSION ( : ) :: DIAG_ORIG
108 INTEGER :: SIZEDIAG_ORIG
110 INTEGER LIWFAC, STRAT, TYPEFile, NextPiv2beWritten,
112 TYPE(io_block) :: MonBloc
114 INTEGER PP_FIRST2SWAP_L, IFLAG_OOC
115 INTEGER PP_LastPIVRPTRFilled
118 INTEGER HF, NPARTSASS, NPARTSCB, NB_BLR
119 INTEGER MAXI_CLUSTER, LWORK
120 TYPE(
lrb_type),
DIMENSION(1),
TARGET :: BLR_DUMMY
121 INTEGER,
POINTER,
DIMENSION(:) :: PTDummy
122 TYPE(
lrb_type),
POINTER,
DIMENSION(:) :: ACC_LUA
123 INTEGER,
POINTER,
DIMENSION(:) :: BEGS_BLR
124 TYPE(
lrb_type),
POINTER,
DIMENSION(:) :: BLR_L, BLR_SEND
125 COMPLEX,
POINTER,
DIMENSION(:) :: DIAG
126 TYPE(
lrb_type),
POINTER,
DIMENSION(:) :: BLR_PANEL
127 INTEGER,
POINTER,
DIMENSION(:) :: BEGS_BLR_TMP,
128 INTEGER :: DIAGSIZ_STA, DIAGSIZ_DYN, DPOS, I, IP, MEM, MEM_TOT
129 INTEGER(8) :: POSELT_DIAG,
130 COMPLEX,
ALLOCATABLE :: WORK(:), TAU(:)
131 INTEGER,
ALLOCATABLE :: JPVT(:)
132 REAL,
ALLOCATABLE :: RWORK(:)
133 COMPLEX,
ALLOCATABLE :: BLOCK(:,:)
142 INTEGER PIVSIZ,IWPOSPIV
144 parameter(one=(1.0e0,0.0e0))
152 NULLIFY(begs_blr_tmp)
153 NULLIFY(begs_blr_static)
154 IF (keep(206).GE.1)
THEN
160 IF(keep(97) .EQ. 0)
THEN
165 IF (avoid_delayed)
THEN
168 seuil_loc = max(seuil,epsilon(seuil))
173 reset_to_one = ((keep(110).GT.0).AND.(dkeep(2).LE.0.0e0))
174 IF (reset_to_one)
THEN
175 k109_save = keep(109)
180 ioldps = ptlust_s(step( inode ))
181 poselt = ptrast(step( inode ))
182 nfront = iw(ioldps+xsize)
183 nass = iabs(iw(ioldps+2+xsize))
185 IF ((keep(219).EQ.1).AND.(keep(207).EQ.1).AND.(keep(50).EQ.2)
187 aposmax = poselt + int(ldafs,8)*int(ldafs,8)
188 nb_postponed = max(nfront - nd(step(inode)),0)
190 & keep, a(aposmax), nass, nb_postponed)
192 iw(ioldps+3+xsize) = -99999
193 lr_activated= .false.
194 lr_activated = (iw(ioldps+xxlr).GT.0)
195 compress_panel = (iw(ioldps+xxlr).GE.2)
196 oocwrite_compatible_with_blr =
197 & ( .NOT.lr_activated.OR. (.NOT.compress_panel).OR.
200 ooc_effective_on_front= ((keep(201).EQ.1).AND.
201 & oocwrite_compatible_with_blr)
202 IF (nass.LT.keep(4))
THEN
204 ELSE IF (nass .GT. keep(3))
THEN
205 nbkjib_orig =
min( keep(6), nass )
207 nbkjib_orig =
min( keep(5), nass )
209 IF (.not.lr_activated)
THEN
210 nblr_orig = keep(420)
214 IF (lr_activated)
THEN
218 IF (k263 .NE. 0 .AND. nass/nblr_orig < 4)
THEN
219 IF ( nblr_orig .GT. nbkjib_orig * 4 )
THEN
220 nblr_orig = max(nbkjib_orig, (nass+3)/4)
226 pivot_option =
min(2,keep(468))
227 IF ((uutemp == 0.0e0) .AND. ooc_effective_on_front)
THEN
228 IF (k263.EQ.1.AND.(.NOT.lr_activated))
THEN
235 ALLOCATE( ipiv( nass ), stat = allocok )
236 IF ( allocok .GT. 0 )
THEN
237 WRITE(*,*) myid,
' : CMUMPS_FAC2_LDLT failed to allocate ',
243 IF (keep(219).GE.3)
THEN
248 ALLOCATE ( diag_orig(sizediag_orig), stat = allocok )
249 IF ( allocok .GT. 0 )
THEN
251 &
' : FAC_NIV2 failed to allocate ',
252 & nass,
' REAL/COMPLEX entries'
258 liwfac = iw(ioldps+xxi)
259 IF (ooc_effective_on_front)
THEN
262 nextpiv2bewritten = 1
263 pp_first2swap_l = nextpiv2bewritten
264 monbloc%LastPanelWritten_L = 0
265 monbloc%INODE = inode
266 monbloc%MASTER = .true.
271 monbloc%Last = .false.
272 monbloc%LastPiv = -66666
274 & iw(ioldps+6+nfront+xsize+iw(ioldps+5+xsize)
275 & :ioldps+5+2*nfront+xsize+iw(ioldps+5+xsize))
277 IF (lr_activated)
THEN
278 IF (keep(475).EQ.3)
THEN
279 IF (uutemp == 0.0e0)
THEN
287 hf = 6 + iw(ioldps+5+xsize)+xsize
288 ooc_eff_and_write_bypanel = ( (pivot_option.GE.2) .AND.
289 & ooc_effective_on_front )
290 IF (lr_activated)
THEN
291 CALL get_cut(iw(ioldps+hf:ioldps+hf+nfront-1), nass,
292 & 0, lrgroups, npartscb,
293 & npartsass, begs_blr)
294 CALL regrouping2(begs_blr, npartsass, nass, npartscb,
295 & 0, keep(488), .false., keep(472))
296 nb_blr = npartsass + npartscb
297 call max_cluster(begs_blr,nb_blr,maxi_cluster)
298 maxi_rank = keep(479)*maxi_cluster
299 lwork = maxi_cluster*maxi_cluster
304 ALLOCATE(block(maxi_cluster, omp_num*maxi_cluster),
305 & rwork(2*maxi_cluster*omp_num),
306 & tau(maxi_cluster*omp_num),
307 & jpvt(maxi_cluster*omp_num),
308 & work(lwork*omp_num),stat=allocok)
309 IF (allocok > 0)
THEN
311 ierror = omp_num*(lwork + maxi_cluster*(maxi_cluster+4))
314 ALLOCATE(acc_lua(omp_num),stat=allocok)
315 IF (allocok > 0)
THEN
320 IF (keep(480).GE.3)
THEN
322 CALL alloc_lrb(acc_lua(my_num), maxi_rank,
323 & maxi_cluster, maxi_cluster, .true.,
324 & iflag, ierror, keep8)
325 IF (iflag.LT.0)
GOTO 480
326 acc_lua(my_num)%K = 0
330 IF (lr_activated.AND.(keep(480).NE.0
341 IF (iflag.LT.0)
GOTO 500
352 IF (iflag.LT.0)
GOTO 500
355 DO WHILE (iend_blr < nass )
356 current_blr = current_blr + 1
357 ibeg_blr = iw(ioldps+1+keep(ixsz)) + 1
358 IF (.NOT. lr_activated)
THEN
359 iend_blr =
min(iend_blr + nblr_orig, nass)
361 iend_blr = begs_blr(current_blr+1)-1
362 begs_blr( current_blr ) = ibeg_blr
363 IF ( iend_blr - ibeg_blr + 1 .GT. maxi_cluster )
THEN
364 maxi_cluster = iend_blr - ibeg_blr + 1
366 DEALLOCATE(block, work, rwork, tau, jpvt)
367 ALLOCATE(block(maxi_cluster, omp_num*maxi_cluster),
368 & rwork(2*maxi_cluster*omp_num),
369 & tau(maxi_cluster*omp_num),
370 & jpvt(maxi_cluster*omp_num),
371 & work(lwork*omp_num),stat=allocok)
372 IF (allocok > 0)
THEN
374 ierror = omp_num*(lwork + maxi_cluster*(maxi_cluster+4))
377 IF (keep(480).GE.3)
THEN
380 CALL alloc_lrb(acc_lua(my_num), maxi_rank,
381 & maxi_cluster, maxi_cluster, .true.,
382 & iflag, ierror, keep8)
383 IF (iflag.LT.0)
GOTO 480
384 acc_lua(my_num)%K = 0
389 DO WHILE (iend_block < iend_blr )
390 ibeg_block = iw(ioldps+1+keep(ixsz)) + 1
391 IF (keep(405).EQ.0)
THEN
392 keep(425)=max(keep(425),iend_block-ibeg_block)
395 keep(425)=max(keep(425),iend_block-ibeg_block)
398 iend_block =
min(iend_block + nbkjib_orig, iend_blr)
401 ibeg_block_for_ipiv = ibeg_block
403 ibeg_block_for_ipiv = ibeg_blr
406 & diag_orig, sizediag_orig, gw_factcumul,
407 & nfront,nass,ibeg_block_for_ipiv,
408 & ibeg_block, iend_block,
410 & n,inode,iw,liw,a,la,
411 & nnegw,nb22t2w,nbtinyw,
412 & det_expw, det_mantw, det_signw,
414 & iflag,ioldps,poselt,uu, seuil_loc,
416 & dkeep(1),pivnul_list(1),lpn_list,
417 & pp_first2swap_l, monbloc%LastPanelWritten_L,
418 & pp_lastpivrptrfilled,
420 & inextpiv, iend_blr, lr_activated,
421 & ooc_effective_on_front)
422 IF (iflag.LT.0)
GOTO 500
423 IF (inopv.EQ. 1)
THEN
429 ELSE IF (inopv .LE. 0)
THEN
433 & nass, iw(ioldps+1+xsize), inode,a,la,
434 & ldafs, poselt,ifinb,
437 & pivot_option, iend_blr, lr_activated)
438 IF(pivsiz .EQ. 2)
THEN
439 iwpospiv = ioldps+xsize+iw(ioldps+1+xsize)+6+
441 iw(iwpospiv+nfront) = -iw(iwpospiv+nfront)
443 iw(ioldps+1+xsize) = iw(ioldps+1+xsize) + pivsiz
446 ELSE IF (ifinb .EQ. -1)
THEN
450 npiv = iw(ioldps+1+xsize)
451 IF ( ooc_eff_and_write_bypanel )
THEN
452 IF (.NOT.reset_to_one.OR.k109_save.EQ.keep(109))
THEN
453 monbloc%Last = .false.
454 monbloc%LastPiv= npiv
458 & typefile, a(poselt),
459 & lafac, monbloc, nextpiv2bewritten, idummy, iw(ioldps),
460 & liwfac, myid, keep8(31), iflag_ooc,last_call )
461 IF (iflag_ooc .LT. 0 ) iflag = iflag_ooc
462 IF (iflag .LT. 0)
GOTO 500
466 nelim = iend_blr - npiv
468 & n, inode, fpere, iw, liw,
469 & ioldps, poselt, a, la, ldafs,
470 & ibeg_block, npiv, ipiv, nass,lastbl, nb_bloc_fac,
471 & comm, myid, bufr, lbufr, lbufr_bytes,nbfin,leaf,
472 & iflag, ierror, ipool,lpool,
473 & slavef, posfac, iwpos, iwposcb, iptrlu, lrlu,
474 & lrlus, comp, ptrist, ptrast, ptlust_s, ptrfac, step,
475 & pimaster, pamaster,
476 & nstk_s,perm,procnode_steps, root,
478 & fils, dad, ptrarw, ptraiw,
479 & intarr,dblarr,icntl,keep,keep8,dkeep,nd,frere,
480 & lptrar, nelt, frtptr, frtelt,
481 & istep_to_iniv2, tab_pos_in_pere
483 & , npartsass, current_blr, blr_dummy, lrgroups
485 IF ( iflag .LT. 0 )
GOTO 500
486 IF (reset_to_one.AND.k109_save.LT.keep(109))
THEN
488 & iw(ioldps+keep(ixsz)+iw(ioldps+5+keep(ixsz))+6),
490 & k109_save, keep(109), pivnul_list, lpn_list,
491 & a, poselt, la, ldafs)
493 IF ( ooc_eff_and_write_bypanel)
THEN
494 monbloc%Last = .false.
495 monbloc%LastPiv= npiv
499 & typefile, a(poselt),
500 & lafac, monbloc, nextpiv2bewritten, idummy, iw(ioldps),
501 & liwfac, myid, keep8(31), iflag_ooc,last_call )
502 IF (iflag_ooc .LT. 0 )
THEN
504 IF (iflag .LT. 0)
GOTO 500
508 IF ( iend_blr .GT. iend_block )
THEN
509 IF (pivot_option.EQ.2)
THEN
515 & nass,nass,inode,a,la,
519 & iend_blr, last_row,
520 & .false., .true., lr_activated,
526 npiv = iw(ioldps+1+xsize)
527 IF (lr_activated)
THEN
528 ALLOCATE(blr_l(nb_blr-current_blr),stat=allocok)
529 IF (allocok > 0)
THEN
531 ierror = nb_blr-current_blr
534 nelim = iend_block - npiv
535 IF (iend_blr.NE.iend_block)
THEN
536 WRITE(*,*)
"Internal error 1 in CMUMPS_FAC2_LDLT",
537 & iend_blr, iend_block
540 IF (nelim .EQ. iend_blr - ibeg_blr + 1)
THEN
547 DO j=1,nb_blr-current_blr
551 blr_l(j)%ISLR=.false.
558 & current_blr, blr_l)
567 & begs_blr, nb_blr, dkeep(8), keep(466), keep(473),
569 & current_blr,
'V', work, tau, jpvt, lwork, rwork,
570 & block, maxi_cluster, nelim,
572 & 2, keep(483), keep8
577 IF (iflag.LT.0)
GOTO 400
578 IF (pivot_option.LT.2)
THEN
581 & nb_blr, blr_l, current_blr, current_blr+1,
582 & nb_blr, 2, 1, 0, .false.,
583 & iw, offset_iw=ioldps+6+xsize+nfront+ibeg_blr-1,
593 IF (iflag.LT.0)
GOTO 480
600 IF (keep(480).LT.
THEN
604 & current_blr, blr_l)
609 IF (.NOT. lr_activated)
THEN
611 & nass, nass, inode, a, la,
616 & (pivot_option.LE.1), .false., lr_activated,
617 & iw, liw, ioldps+6+xsize+nfront+ibeg_blr-1)
620 nelim = iend_blr-npiv
622 IF (
associated(blr_l))
THEN
626 & n, inode, fpere, iw, liw,
627 & ioldps, poselt, a, la, ldafs,
628 & ibeg_blr, npiv, ipiv, nass,lastbl, nb_bloc_fac,
630 & comm, myid, bufr, lbufr, lbufr_bytes,nbfin,leaf,
631 & iflag, ierror, ipool,lpool,
632 & slavef, posfac, iwpos, iwposcb, iptrlu, lrlu,
633 & lrlus, comp, ptrist, ptrast, ptlust_s, ptrfac, step,
634 & pimaster, pamaster,
635 & nstk_s,perm,procnode_steps, root,
636 & opassw, opeliw, itloc, rhs_mumps,
637 & fils, dad, ptrarw, ptraiw,
638 & intarr,dblarr,icntl,keep,keep8,dkeep,nd,frere,
639 & lptrar, nelt, frtptr, frtelt,
640 & istep_to_iniv2, tab_pos_in_pere
641 & , nelim, lr_activated
642 & , npartsass, current_blr , blr_send , lrgroups
644 IF ( iflag .LT. 0 )
GOTO 500
645 IF (reset_to_one.AND.k109_save.LT.keep(109))
THEN
647 & iw(ioldps+keep(ixsz)+iw(ioldps+5+keep(ixsz))+6),
649 & k109_save, keep(109), pivnul_list, lpn_list,
650 & a, poselt, la, ldafs)
652 IF ( ooc_eff_and_write_bypanel )
THEN
653 monbloc%Last = .false.
654 monbloc%LastPiv= npiv
658 & typefile, a(poselt),
659 & lafac, monbloc, nextpiv2bewritten, idummy, iw(ioldps),
660 & liwfac, myid, keep8(31), iflag_ooc,last_call )
661 IF (iflag_ooc .LT. 0 )
THEN
663 IF (iflag .LT. 0)
GOTO 500
667 IF (.NOT. lr_activated)
THEN
668 IF (pivot_option.EQ.2)
THEN
674 & nass,nass,inode,a,la,
679 & .false., .true., lr_activated,
683 nelim = iend_block - npiv
684 IF (iend_blr.NE.iend_block)
THEN
690 IF (keep(480).GE.2)
THEN
691 IF (iend_blr.LT.nass)
THEN
693 & nass, iw(ioldps+xxf),
694 & begs_blr, current_blr, nb_blr, npartsass,
696 & iw(hf+ioldps+nfront), block,
697 & acc_lua, maxi_cluster, maxi_rank,
699 & keep(481), dkeep(11), keep(466), keep(477),
700 & keep(480), keep(479), keep(478), keep(476),
704 IF (nelim .EQ. iend_blr - ibeg_blr + 1)
GOTO 450
705 IF (keep(480).LT.2)
THEN
707 & iflag, ierror, nass,
708 & begs_blr, nb_blr, current_blr, blr_l, nelim,
709 & iw(hf+ioldps+nfront+ibeg_blr-1), block,
710 & maxi_cluster, npiv,
712 & keep(481), dkeep(11), keep(466), keep(477)
718 IF (iflag.LT.0)
GOTO 450
719 IF (pivot_option.LT.2)
THEN
720 IF ((uu.GT.0).OR.(keep(486).NE.2))
THEN
723 & begs_blr(current_blr),
724 & begs_blr(current_blr+1), nb_blr, blr_l, current_blr,
732 IF (iflag.LT.0)
GOTO 480
733 IF (nelim .EQ. iend_blr - ibeg_blr + 1)
THEN
734 IF (keep(486).EQ.3)
THEN
735 IF (keep(480).EQ.0)
THEN
742 IF (keep(486).EQ.3)
THEN
743 IF (keep(480).EQ.0)
THEN
751 IF ( ooc_eff_and_write_bypanel )
THEN
752 monbloc%Last = .false.
753 monbloc%LastPiv= npiv
757 & typefile, a(poselt),
758 & lafac, monbloc, nextpiv2bewritten, idummy, iw(ioldps),
759 & liwfac, myid, keep8(31), iflag_ooc,last_call )
760 IF (iflag_ooc < 0 )
THEN
767 IF (lr_activated)
THEN
768 ibeg_blr = iw(ioldps+1+keep(ixsz)) + 1
769 begs_blr( current_blr + 1 ) = ibeg_blr
778 allocate(begs_blr_tmp(nb_blr+1),stat=allocok)
779 IF (allocok > 0)
THEN
785 begs_blr_tmp(j) = begs_blr_static(j)
799!$omp
DO private(diag, diagsiz_sta, diagsiz_dyn, dpos, poselt_diag, mem,
804 IF (iflag.LT.0) cycle
805 diagsiz_dyn = begs_blr(ip+1)-begs_blr(ip)
806 diagsiz_sta = begs_blr_static(ip+1)-begs_blr(ip)
807 mem = diagsiz_dyn*diagsiz_sta
808 mem_tot = mem_tot + mem
809 ALLOCATE(diag(mem),stat=allocok)
810 IF (allocok > 0)
THEN
816 poselt_diag = poselt + int(begs_blr(ip)-1,8)*int(ldafs,8)
817 & + int(begs_blr(ip)-1,8)
819 diag(dpos:dpos+diagsiz_dyn-1) =
820 & a(poselt_diag:poselt_diag+int(diagsiz_dyn-1,8))
821 dpos = dpos + diagsiz_dyn
822 poselt_diag = poselt_diag + int(ldafs,8)
833 & .false., keep8, iflag, ierror, .true., .true.)
837 IF (iflag.LT.0)
GOTO 460
840 nelim = begs_blr_tmp(ip+1)-begs_blr(ip+1)
845 & iw(ioldps+xxf), 0, ip, blr_panel)
852 & ierror, ldafs, begs_blr_tmp,
853 & nb_blr, dkeep(8), keep(466), keep(473),
855 &
'V', work, tau, jpvt, lwork, rwork,
856 & block, maxi_cluster, nelim,
858 & 2, keep(483), keep8,
859 & end_i_in=npartsass, frswap=.true.
864 IF (iflag.LT.0)
GOTO 440
868 begs_blr_tmp(ip+1) = begs_blr(ip+1)
883 deallocate(begs_blr_tmp)
885 IF (iflag.LT.0)
GOTO 500
895 IF (ooc_effective_on_front)
THEN
896 strat = strat_write_max
897 monbloc%Last = .true.
898 monbloc%LastPiv = iw(ioldps+1+xsize)
902 & a(poselt), lafac, monbloc,
903 & nextpiv2bewritten, idummy,
904 & iw(ioldps), liwfac,
905 & myid, keep8(31), iflag_ooc, last_call )
906 IF (iflag_ooc .LT. 0 )
THEN
908 IF (iflag .LT. 0)
GOTO 500
911 & ioldps, iw, liw, monbloc , nfront, keep)
918 IF(
allocated(ipiv))
DEALLOCATE( ipiv )
919 IF (
allocated(diag_orig))
DEALLOCATE(diag_orig)
920 IF (lr_activated)
THEN
925 & iw(ioldps+xxf), 0, ip, blr_panel)
931 IF (
allocated(rwork))
DEALLOCATE(rwork)
932 IF (
allocated(work))
DEALLOCATE(work)
933 IF (
allocated(tau))
DEALLOCATE(tau)
934 IF (
allocated(jpvt))
DEALLOCATE(jpvt)
935 IF (
allocated(block))
DEALLOCATE(block)
936 IF (
associated(acc_lua))
THEN
937 IF (keep(480).GE.3)
THEN
944 IF (
associated(begs_blr))
THEN
949 IF (keep(486).NE.0)
THEN
950 IF (.NOT.lr_activated)
THEN
954 IF (lr_activated.AND.keep(480).NE.0)
THEN
964 IF (lr_activated)
THEN