74
75
76
78 USE intbufdef_mod
80
81
82
83#include "implicit_f.inc"
84
85
86
87#if defined(MUMPS5)
88#include "dmumps_struc.h"
89#endif
90#include "com01_c.inc"
91#include "com04_c.inc"
92#include "com08_c.inc"
93#include "impl1_c.inc"
94#include "impl2_c.inc"
95#include "units_c.inc"
96#include "task_c.inc"
97
98
99
100
101 INTEGER NDDL ,NNZ ,(*),JDIK(*),IADM(*),JDIM(*),ITASK0,
102 . NDDLI ,IADI(*),JDII(*),ITOK(*),ICPREC,INLOC(*),
103 . NDOF(*),IDDL(*),IKC(*),IDIV ,INPRINT,ISTOP,
104 . IT,ITC,NDDL0,ITAB(*),FR_ELEM(*),IAD_ELEM(*),W_DDL(*)
105 INTEGER NE_IMP(*),NSREM ,NSL,ICONT
106
107INTEGER ,IMONV(*),MONVOL(*),(*),
108 . IBFV(*),(*),IRBE3(*) ,LRBE3(*),NDIV ,ICONT0,
109 . IRBE2(*),LRBE2(*)
110 INTEGER NEWFRONT(*),NBINTC,(*),ISENDTO(*),IRECVFROM(*),
111 . NODFT ,,IDIV0
112
114 . diag_k(*),lt_k(*),f(*),r02,diag_m(*),lt_m(*),
115 . diag_i(*),lt_i(*),d(3,*),dr(3,*),dd(3,*),ddr(3,*),
116 . ru0,rold,e02 ,eimp,lstol,de0,ls(*),u02,gap,rbid
118 . a(3,*),ar(3,*),v(3,*),x(3,*),ms(*),fac_k(*),
119 . volmon(*),skew(*),xframe(*),fext(*),dg(3,*),dgr(3,*),
120 . dg0(3,*),dgr0(3,*),ls1(*) ,rfext, relres(*)
121
122 TYPE(PRGRAPH) :: GRAPHE(*)
123 INTEGER CDDLP(*)
124 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
125 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
126
127#ifdef MUMPS5
128 TYPE(DMUMPS_STRUC)
129#else
130
131 INTEGER MUMPS_PAR
132#endif
133C
134 character*1 anew_stif
135#ifdef MUMPS5
136
137
138
139
140 INTEGER ,J ,ND,IP,ITMP,ICOV,ICALU,IER,ISETK0,IRIKS,
141 . F_DDL ,L_DDL
142
144 . r2,u2,du2,tol,rr,ru,temp,fr,re,de,r1,nl_tol,r01,rr1,
145 . gapn,lamda,fa,uc2,um1,um2,pmax
146
147
148
149
150
151
152
153
154
155
156
157
158 tol =l_tol
159 nl_tol=n_tol
160
161 lstol=ls_tol
162 ip=iabs(inprint)
163 de=0
164 nd=3*numnod
165 ru=ru0
166 isetk0=isetk+icont
167 IF (nitol==3.OR.nitol==13.OR.nitol==23
168 . .OR.nitol==123) THEN
169 icalu=1
170 ELSE
171 icalu=0
172 ENDIF
173 iriks=0
174 IF (ncycle>1.AND.idtc==3) THEN
175 IF (ilast==0) iriks=1
176 ENDIF
177
178
179
180 isetk=0
181 IF (icont>0) gapn=gap*zep9
182 IF (imconv>=0) icont0=icont
183
184 IF (it==0) THEN
185 r01=sqrt(r02)
186
187
188 re=one
189
190 IF (r01*nl_tol<=em12.AND.nl_tol>em10.AND.idiv/=10) THEN
191 IF (irefi/=5.OR.icont==0) THEN
192 IF(inprint/=0)THEN
193 WRITE(iout,*)
194
195 WRITE(iout,1108)it,anew_stif,re,r01,re
196 WRITE(iout,*)
197 IF(inprint<0)THEN
198 WRITE(istdo,*)
199
200 WRITE(istdo,1108)it,anew_stif,re,r01,re
201 WRITE(istdo,*)
202 ENDIF
203 ENDIF
204 relres(1) = re
205 relres(2) = r01
206 relres(3) = re
207 idiv = -2
208 isetk=1
209 RETURN
210 ELSE
213 ENDIF
214 ENDIF
215 IF (insolv==4) icov = imconv
216 imconv=0
217 rr=rold
218 ndiv=0
219
220 IF (insolv==2.OR.insolv==3)
CALL bfgs_0
221
222 IF (ncycle==1) isign = 1
223 IF (iriks>0) THEN
224 CALL lin_solv(nddl ,iddl ,ndof ,ikc ,dg ,
225 1 dgr ,tol ,nnz ,iadk ,jdik ,
226 2 diag_k,lt_k ,nddli ,iadi ,jdii ,
227 3 diag_i,lt_i ,itok ,iadm ,jdim ,
228 4 diag_m,lt_m ,fext ,de ,inloc ,
229 5 fr_elem,iad_elem,w_ddl,itask0,icprec,
230 6 istop ,a ,ar ,v ,
231 7 ms ,x ,ipari ,intbuf_tab ,
232 8 num_imp,ns_imp,ne_imp,nsrem ,nsl ,
233 9 itc ,graphe, itab, fac_k, ipiv_k,
234 a nk ,nmonv,imonv ,monvol,igrsurf,
235 b fr_mv ,volmon,ibfv ,skew ,
236 c xframe ,mumps_par,cddlp,ind_imp,rbid,
237 e irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
238
239
240 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
241 . dg ,dgr ,u2 ,w_ddl )
242
243
244 IF (idiv/=-2) THEN
246 IF (iroddl/=0)
CALL cp_real(nd,ddr,dgr0)
247 ELSE
248 dla_riks = isign*dt2
249 ENDIF
250
252 . dg ,dgr ,dg0 ,dgr0 ,uc2 ,
253 . w_ddl )
254
255
256
257
258 CALL get_max(numnod,dg0,temp,i)
259 um1=temp
260 CALL get_max(numnod,dgr0,temp,i)
261 um1=
max(um1,temp,em20)
263 um2=temp
264 CALL get_max(numnod,dgr,temp,i)
265 um2=
max(um2,temp,em20)
266 uc2=uc2/um1/um2
267
268 IF ((uc2+dla_riks/rfext)<zero) THEN
269 isign = -1
270 ELSE
271 isign = 1
272 ENDIF
273
274 IF (impdeb>0) THEN
275 IF (ncycle>=ndeb0.AND.ncycle<=ndeb1)
276 . WRITE(iout,1025)uc2,dla_riks,isign
277 ENDIF
278 IF (isign<0) THEN
279 dla_riks = 2*isign*dt2
280 ELSE
281 dla_riks = zero
282 ENDIF
283
284
285
286
287
288
289 lamda = isign*dt2
290 IF (idiv/=-2.AND.icont==0)THEN
292 . dd ,ddr ,f ,de ,w_ddl )
294 ELSE
295 CALL frac_dd_hp(iddl,ndof,ikc,d,dr,dg,dgr,lamda)
297 . d ,dr ,f ,de ,w_ddl )
298 ENDIF
299 ELSE
300
301 IF ((n_lim /= 1.OR.isprb /= 0).AND.
302 . (ncycle>1.AND.idiv/=-2.AND.icont==0.AND.ikt==0
303 . .OR.(ncycle==1.AND.idiv==10)))THEN
304 IF (idtc==3.AND.ilast==1) THEN
305 lamda = dla_riks
306 dla_riks = zero
307 CALL frac_d_hp(iddl,ndof,ikc,dd,ddr,lamda)
308 ENDIF
310 . dd ,ddr ,f ,de ,w_ddl )
311 ELSE
312 IF (insolv==4.AND.icov>=0) imconv=-1
313
314 CALL lin_solv(nddl ,iddl ,ndof ,ikc ,dd ,
315 1 ddr ,tol ,nnz ,iadk ,jdik ,
316 2 diag_k,lt_k ,nddli ,iadi ,jdii ,
317 3 diag_i,lt_i ,itok ,iadm ,jdim ,
318 4 diag_m,lt_m ,f ,de ,inloc ,
319 5 fr_elem,iad_elem,w_ddl,itask0,icprec,
320 6 istop ,a ,ar ,v ,
321 7 ms ,x ,ipari ,intbuf_tab ,
322 8 num_imp,ns_imp,ne_imp,nsrem ,nsl ,
323 9 itc ,graphe, itab, fac_k, ipiv_k,
324 a nk ,nmonv,imonv ,monvol,igrsurf,
325 b fr_mv ,volmon,ibfv ,skew ,
326 c xframe ,mumps_par,cddlp,ind_imp,rbid,
327 e irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
328 IF (de<zero.AND.irefi>1.AND.irefi<5) imconv=-2
329 IF (icont>0.AND.idsgap>0) THEN
331
332
333
334 IF (pmax>gapn) THEN
335 temp=gapn/pmax
336 CALL frac_d_hp(iddl,ndof,ikc,dd,ddr,temp)
337 de = de * temp
338 ENDIF
339 ENDIF
340 ENDIF
341
343 ENDIF
344
345
346
347
348 IF (imconv>=0) THEN
349 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
350 . d ,dr ,u2 ,w_ddl )
351 eimp=eimp+de
352 IF (de>ep10.AND.iline==0.AND.idyna==0
353 . .AND.ncycle==1) THEN
354 IF(ispmd==0)THEN
355 WRITE(iout,1030)eimp
356 WRITE(istdo,1030)eimp
357 ENDIF
359 ENDIF
360
361 u02=u2
362 IF(inprint/=0)THEN
363 ru=sqrt(u2)
364
365
366 WRITE(iout,1102)
367 WRITE(iout,1003)it,anew_stif,ru,r01,eimp
368 IF(inprint<0)THEN
369
370
371 WRITE(istdo,1102)
372 WRITE(istdo,1003)it,anew_stif,ru,r01,eimp
373 ENDIF
374 ENDIF
375
376 relres(1) = ru
377 relres(2) = r01
378 relres(3) = eimp
379 ELSE
380 WRITE(iout,*)
381 WRITE(iout,1013) de
382 IF(inprint<0)THEN
383 WRITE(istdo,*)
384 WRITE(istdo,1013)de
385 ENDIF
386
387 ENDIF
388
389
390 ELSE
391
392 IF (iriks>0.AND.dla_riks/=zero) THEN
393 CALL vaxpy_hp(nddl, f ,fext,dla_riks)
394 ENDIF
396
397
398
399 IF (r2>=zero.AND.r2<ep30) THEN
400 rr=sqrt(r2/r02)
401 IF (it==1.AND.isprb==1.AND.idiv/=-2) THEN
402 rr1=sqrt(r2/rold)
403
404 IF (icont>0.AND.rr<one) rr1=rr
405 ELSE
406 rr1=rr
407 ENDIF
408 re=de0/eimp
409 IF (it==1) THEN
410 ru=one
411 ELSEIF (icalu>0) THEN
412 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
413 . d ,dr ,u2 ,w_ddl )
414 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
415 . dd ,ddr ,du2 ,w_ddl )
416
417
418
419 ru=ls(3)*sqrt(du2/u2)
420 IF (insolv==5) ru=sqrt(du2/u2)
421 ENDIF
422 CALL crit_ite(it,ru,rr1,re,ndiv,nl_tol)
423 ELSE
424 imconv =-2
425 rr1 =ep30
426 ENDIF
427
428
429
430 IF (imconv==-3) THEN
431 IF (ncycle==1.OR.idiv==-2) imconv=-2
432 r02=r2
433 ENDIF
434
435
436
437 IF (imconv==0) THEN
438 idiv=0
439
440 IF (iline_s/=1) THEN
441 ls(1)=one
442 ls(2)=zero
443 ENDIF
444 ls(3)=one
445 IF (ndiver>0) r02=r2
446 ENDIF
447 IF(imconv==1) THEN
448 istop=0
449 idiv=0
450
451 IF (it>1.AND.icalu==0) THEN
452 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
453 . d ,dr ,u2 ,w_ddl )
454 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
455 . dd ,ddr ,du2 ,w_ddl )
456
457
458
459 ru=ls(3)*sqrt(du2/u2)
460 u02=u2
461 ELSEIF (idtc>=2) THEN
462 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
463 . d ,dr ,u02 ,w_ddl )
464
465
466
467 ENDIF
468
469 IF(inprint/=0)THEN
470
471
472 WRITE(iout,1108)it,anew_stif,ru,rr,re
473 WRITE(iout,*)
474 IF(inprint<0)THEN
475
476
477 WRITE(istdo,1108)it,anew_stif,ru,rr,re
478 WRITE(istdo,*)
479 ENDIF
480 ENDIF
481 relres(1) = ru
482 relres(2) = rr
483 relres(3) = re
484 ELSEIF(imconv<=-2) THEN
485
486
487 IF(inprint/=0)THEN
488 WRITE(iout,*)
489 IF (rr1>one) THEN
490 WRITE(iout,1011)rr1
491 ELSEIF(it>nl_dtn) THEN
492 WRITE(iout,1010)
493 ELSEIF(idtc==3) THEN
494 WRITE(iout,1020)
495 ENDIF
496 WRITE(iout,*)
497 IF(inprint<0)THEN
498 WRITE(istdo,*)
499 IF (rr1>one) THEN
500 WRITE(istdo,1011)rr1
501 ELSEIF(it>nl_dtn) THEN
502 WRITE(istdo,1010)
503 ELSEIF(idtc==3) THEN
504 WRITE(istdo,1020)
505 ENDIF
506 WRITE(istdo,*)
507 ENDIF
508 IF(imconv==-2) THEN
509 WRITE(iout,1012)
510 IF(inprint<0)WRITE(istdo,1012)
511 ENDIF
512 ENDIF
513 relres(1) = ru
514 relres(2) = rr1
515 relres(3) = re
516 ELSE
517
518
519 IF (iline_s>0.AND.isign>=0.AND.irwall==0) THEN
520 fr=ls(3)
521 IF (nitol/=2.AND.nitol/=4.OR.iline_s==1) THEN
522
523 IF (ls1(3)/=zero ) THEN
524 de = ls1(3)
525 ELSE
527 . dd ,ddr ,f ,de ,w_ddl )
528 END IF
529
530
531
532 r1=de/de0
533 IF (iline_s==3) THEN
534 r1=abs(de/de0)
535 IF (rr>one) r1=one
536 IF (rr>one.AND.irefi>=2) r1=ls(1)
537 temp=ep02
538 ENDIF
539 ELSE
540 r1=rr/rold
541 temp=ep03
542 ENDIF
543 icov = imconv
544
545
546
547 IF (iline_s==3) THEN
548 CALL line_s(ls(1),ls(2),r1,fr,lstol,idiv,icont,temp)
549 ELSEIF (iline_s==1) THEN
550 CALL line_s1(r1,fr,ls(1),ls(2),ls1(1),ls1(2),idiv,lstol,
551 . icont,icont0,iriks)
552 ELSEIF (iline_s==2) THEN
553 CALL line_s(ls(1),ls(2),r1,fr,lstol,idiv,icont,temp)
554 ENDIF
555 IF (impdeb>0.AND.ispmd==0) THEN
556 IF (ncycle>=ndeb0.AND.ncycle<=ndeb1) then
557 WRITE(iout,*)'R1,FR,IDIV=',r1,fr,idiv
558
559 end if
560 ENDIF
561
562
563
564
565
566
567 IF ((insolv==2.OR.insolv==3).AND.fr>one.AND.ikt==0)
569 ENDIF
570
571
572
573 IF (imconv==0) THEN
574
575 IF (it>1) THEN
576
578 . d ,dr ,u2 ,w_ddl )
579 CALL produt_uhp(nddl0 ,nddl ,iddl ,ndof ,ikc ,
580 . dd ,ddr ,du2 ,w_ddl )
581
582
583
584 ru=ls(3)*sqrt(du2/u2)
585 ENDIF
586
587
588
589 IF (insolv==2.OR.insolv==3)
CALL bfgs_ls(ls(3))
590 IF (rr>=rold) THEN
591 ndiv = ndiv +1
592 ELSE
593 ndiv = 0
594 ENDIF
595 IF (inprint/=0)THEN
596 IF(mod(it,ip)==0)THEN
597
598 WRITE(iout,1003)it,anew_stif,ru,rr,re
599 IF(inprint<0)THEN
600
601 WRITE(istdo,1003)it,anew_stif,ru,rr,re
602 ENDIF
603 ENDIF
604 ENDIF
605 relres(1) = ru
606 relres(2) = rr
607 relres(3) = re
608 IF(itc>=n_lim.AND.ismdisp==0) THEN
609
610
611
612
613
614
615
616
617 itc=0
618 ENDIF
619
620
621
622
623
624 IF (iriks>0) THEN
625 IF (isetk0==1) THEN
626 CALL lin_solv(nddl ,iddl ,ndof ,ikc ,dg ,
627 1 dgr ,tol ,nnz ,iadk ,jdik ,
628 2 diag_k,lt_k ,nddli ,iadi ,jdii ,
629 3 diag_i,lt_i ,itok ,iadm ,jdim ,
630 4 diag_m,lt_m ,fext ,de ,inloc ,
631 5 fr_elem,iad_elem,w_ddl,itask0,icprec,
632 6 istop ,a ,ar ,v ,
633 7 ms ,x ,ipari ,intbuf_tab ,
634 8 num_imp,ns_imp,ne_imp,nsrem ,nsl ,
635 9 itc ,graphe, itab, fac_k, ipiv_k,
636 a nk ,nmonv,imonv ,monvol,igrsurf,
637 b fr_mv ,volmon,ibfv ,skew ,
638 c xframe ,mumps_par,cddlp,ind_imp,rbid,
639 e irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
640 icprec = 0
641 idsc = 0
642 END IF
644 . dg ,dgr ,f ,um1 ,w_ddl )
645 END IF
646
647 CALL lin_solv(nddl ,iddl ,ndof ,ikc ,dd ,
648 1 ddr ,tol ,nnz ,iadk ,jdik ,
649 2 diag_k,lt_k ,nddli ,iadi ,jdii ,
650 3 diag_i,lt_i ,itok ,iadm ,jdim ,
651 4 diag_m,lt_m ,f ,de ,inloc ,
652 5 fr_elem,iad_elem,w_ddl,itask0,icprec,
653 6 istop ,a ,ar ,v ,
654 7 ms ,x ,ipari ,intbuf_tab ,
655 8 num_imp,ns_imp,ne_imp,nsrem ,nsl ,
656 9 itc ,graphe, itab, fac_k, ipiv_k,
657 a nk ,nmonv,imonv ,monvol,igrsurf,
658 b fr_mv ,volmon,ibfv ,skew ,
659 c xframe ,mumps_par,cddlp,ind_imp,rbid,
660 d irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
661 IF (icont>0.AND.idsgap>0) THEN
663
664
665
666 IF (pmax>gapn) THEN
667 temp=gapn/pmax
668 CALL frac_d_hp(iddl,ndof,ikc,dd,ddr,temp)
669 de = de * temp
670 ENDIF
671 ENDIF
672
673
674
675
676 IF (iriks>0) THEN
677 lamda = dla_riks
678 IF (ial_m==1) THEN
680 . dd ,ddr ,dg ,dgr ,d ,
681 . dr ,w_ddl ,alen ,lamda ,scal_riks,
682 . ier )
683
684
685
686 IF (ier==1) THEN
687 imconv=-2
688 IF(inprint/=0)THEN
689 WRITE(iout,*)
690 WRITE(iout,1020)
691 WRITE(iout,*)
692 IF(inprint<0)THEN
693 WRITE(istdo,*)
694 WRITE(istdo,1020)
695 WRITE(istdo,*)
696 ENDIF
697 ENDIF
698 END IF
699 ELSEIF (ial_m==2) THEN
701 . dd ,ddr ,dg ,dgr ,d ,
702 . dr ,w_ddl ,alen ,lamda ,scal_riks)
703
704
705
706 END IF
707 IF (imconv>=0) THEN
708 CALL frac_dd_hp(iddl,ndof,ikc,d ,dr ,dg,dgr,lamda)
709
710 dla_riks = dla_riks + lamda
711 eimp=eimp+dla_riks*um1
712
713
714
715
716 ENDIF
717 END IF
718
720 eimp=eimp+de
721
722
723 ELSEIF(imconv==-1) THEN
724
725 temp=-ls(3)+fr
726 CALL frac_dd_hp(iddl,ndof,ikc,d,dr,dd,ddr,temp)
727
728
729
730 ls(3) = fr
731 END IF
732
733 END IF
734
735 ENDIF
736 IF (imconv>=0) THEN
737 ru0=ru
738 de0=de
739 IF (abs(de0)<em20) de0=em20
741 ENDIF
742
743 IF (ismdisp>0) THEN
744 IF (itc>=n_lim.AND.imconv>=0) THEN
745 itc = 0
746 isetk=1
747 END IF
748 IF (itc==0.AND.imconv>=0) THEN
749 IF (ncycle==1.OR.n_lim==1) isetk=1
750 IF (isolv==5.OR.isolv==6) isetk=1
751 END IF
752 IF (irwall >0 .AND.imconv == 1) isetk=1
753 IF ((itc==0.OR.imconv==1).AND.ikt>0) isetk=1
754 ELSE
755
756 IF (itc==0.OR.imconv==1) isetk=1
757 END IF
758 IF ((idtc==3.OR.ikt>0).AND.imconv<=-2) isetk=1
759
760 IF (imconv<=-2.AND.rr1>ep20.AND.idiv0>=0) isetk=1
761 IF ((istop==1.OR.istop==2).AND.(isolv==5.OR.isolv==6))THEN
762 istop = 0
763 isetk = 1
764 imconv=-2
765 ENDIF
766 IF (imconv<=-2.AND.isprb>0.AND.rr1>ep04) isetk=1
767
768 IF(imconv<= -2.AND.n_lim == 1 .AND. isprb == 0) isetk = 1
769
770
771
772
773
774
775 1102 FORMAT(3x,78('-')/
776 . 12x,'Stif. Mat.'/
777 . 6x,'Iter',2x, ' reformed ',5x,'|du|/|u|',3x,'|r|/|r0|',3x,'|dE|/|E|',1x,'Conv.stat.'/
778 . 3x,78('-'))
779
780 1003 FORMAT(5x,i5,6x,a1,5x,3(1x,1pe10.3))
781 1005 FORMAT(3x,'TOLERANCE FOR LINEAR ITERATIVE SOLVER :',2x,e11.4)
782 1006 FORMAT(3x,'--STIFFNESS MATRIX IS RESET AFTER ',i4,
783 . ' ITERATIONS--')
784 1007 FORMAT(3x,'--ITERATION DIVERGE with R=',e11.4,2x,
785 . 'STIFFNESS MATRIX WILL BE RESET')
786
787
788 1108 FORMAT(5x,i5,6x,a1,5x,3(1x,1pe10.3),5x, 'C')
789 1009 FORMAT(3x,'--ITERATION DIVERGE with RELATIVE R=',e11.4/,
790 . 3x,'RESET ITERATION WITH STABILIZATION BY SCALING= ',e11.4)
791 1010 FORMAT(3x,'--ITERATION DIVERGE with MAX_ITER REACHED--')
792 1011 FORMAT(3x,'ITERATION DIVERGE with RELATIVE R=',e11.4)
793 1012 FORMAT(3x,'--RESET ITERATION WITH NEW TIMESTEP--')
794 1013 FORMAT(3x,'ITERATION DIVERGE with NEGATIVE ENERGY DE=',e11.4)
795 1020 FORMAT(3x,'--ITERATION DIVERGE with RIKS Method--')
796 1025 FORMAT(3x,'UC2,DLA_RIKS,ISIGN=',2e11.4,i4)
797 1030 FORMAT(3x,'CHECK CONSTRAINT CONDITIONS, TOO LARGE ENERGY VALUE=',
798 . 2x,e11.4)
799 RETURN
800#endif
subroutine imp_stop(istop)
subroutine frac_d_hp(iddl, ndof, ikc, d, dr, fac)
subroutine lin_solv(nddl, iddl, ndof, ikc, d, dr, tol, nnz, iadk, jdik, diag_k, lt_k, nddli, iadi, jdii, diag_i, lt_i, itok, iadm, jdim, diag_m, lt_m, f, f_u, inloc, fr_elem, iad_elem, w_ddl, itask, icprec, istop, a, ar, ve, ms, xe, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, it, graphe, itab, fac_k, ipiv_k, nk, nmonv, imonv, monvol, igrsurf, fr_mv, volmon, ibfv, skew, xframe, mumps_par, cddlp, ind_imp, xi_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine al_constraint2_hp(nddl0, nddl, iddl, ndof, ikc, dd, ddr, dg, dgr, di, dir, w_ddl, l_a, lamda, sw2)
subroutine crit_ite(it, ur, rr, er, ndiv, tol)
subroutine al_constraint1_hp(nddl0, nddl, iddl, ndof, ikc, dd, ddr, dg, dgr, di, dir, w_ddl, l_a, lamda, sw2, ier)
subroutine get_max(n, d, vmax, i)
subroutine line_s1(e1, s, ep, sp, en, sn, idiv, dtol, icont, icont0, iriks)
subroutine line_s(r0, s0, r1, s, dtol, idiv, iint, prec)
subroutine cp_real(n, x, xc)
subroutine produt_hp(nddl, x, y, w, r)
subroutine vaxpy_hp(n, v, y, s)
subroutine produt_vmhp(nddl0, nddl, iddl, ndof, ikc, dd, ddr, y, r, w_imp)