61 1 DR ,TOL ,NNZ ,IADK ,JDIK ,
62 2 DIAG_K,LT_K ,NDDLI ,IADI ,JDII ,
63 3 DIAG_I,LT_I ,ITOK ,IADM ,JDIM ,
64 4 DIAG_M,LT_M ,F ,F_U ,INLOC ,
65 5 FR_ELEM,IAD_ELEM,W_DDL,ITASK ,ICPREC,
67 7 MS ,XE ,IPARI ,INTBUF_TAB ,
68 8 NUM_IMP,NS_IMP,NE_IMP,NSREM ,NSL ,
69 9 IT ,GRAPHE,ITAB ,FAC_K ,IPIV_K,
70 A NK ,NMONV ,IMONV ,MONVOL,IGRSURF ,
71 B FR_MV ,VOLMON ,IBFV ,SKEW ,
72 C XFRAME ,MUMPS_PAR,CDDLP,IND_IMP,XI_C,
73 D IRBE3 ,LRBE3 ,IRBE2 ,LRBE2)
84#include "implicit_f.inc"
89#include "dmumps_struc.h"
95#include "timeri_c.inc"
102 INTEGER NDDL ,NNZ ,IADK(*),JDIK(*),IADM(*),JDIM(*),ITASK,
103 . NDOF(*),IDDL(*),IKC(*),ICPREC,ISTOP,
104 . NDDLI ,IADI(*),JDII(*),ITOK(*),INLOC(*),IBFV(*),
105 . FR_ELEM(*),IAD_ELEM(2,*),W_DDL(*),NSREM ,NSL,IT
106 INTEGER NE_IMP(*),IPARI(*) ,NUM_IMP(*),NS_IMP(*),
107 . ITAB(*), IPIV_K(*), NK,IND_IMP(*),IRBE3(*),LRBE3(*),
110 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*)
112 . DIAG_K(*),LT_K(*),DIAG_M(*),LT_M(*), F(*),TOL,
113 . DIAG_I(*),LT_I(*),D(3,*),DR(3,*),F_U, FAC_K(*)
115 . a(3,*),ar(3,*),ve(3,*),xe(3,*),ms(*),
116 . skew(*) ,xframe(*),volmon(*),xi_c(*)
122 TYPE(DMUMPS_STRUC) MUMPS_PAR
128 INTEGER OMP_GET_THREAD_NUM
129 EXTERNAL OMP_GET_THREAD_NUM
131 TYPE(intbuf_struct_) INTBUF_TAB(*)
132 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
156 INTEGER I,J,IPRINT,ITQ,F_DDL,L_DDL,F_DDLI,L_DDLI,IERR,ITSK
158 . A2,QTOL,R2,IN_NZ,IN_ND
177 IF (nddli > 0.AND.isolv > 7)
THEN
185 IF (iqstat>1.AND.(ilintf==0.OR.ilintf==ncycle))
THEN
194 IF ((isolv<3.OR.isolv>6)
195 . .AND.(iprec>1.OR.intp_c>=0))
THEN
200 diag_t(j)=diag_t(j)+diag_i(i)
208 IF (insolv==2)
CALL bfgs_h1(f_ddl,l_ddl,w_ddl,f,a2,it,itsk)
210 IF (insolv==3)
CALL bfgs_h1p(f_ddl,l_ddl,w_ddl,f,a2,it,itsk)
221 IF (nspmd==1.AND.(isolv==3.OR.isolv==4).AND.imumpsv==0)
THEN
224 IF (idsc>0) it_bcs = it_bcs + 1
226 1 nddl ,nnz ,iadk ,jdik ,diag_t ,
227 2 lt_k ,nddli ,itok ,iadi ,jdii ,
228 3 lt_i ,l_u ,f ,itask ,lprint ,
229 4 isolv ,istop ,graphe,itab ,insolv,
230 5 it ,fac_k ,ipiv_k,nk ,diag_i,
235 IF (isolv==3.OR.isolv==4)
THEN
237 IF (ispmd==0.AND.idsc>0) it_bcs = it_bcs + 1
238 CALL lin_solvp2(graphe, f, nddl, iad_elem, fr_elem,
239 1 diag_k, lt_k, iadk, jdik, l_u,
240 2 itab, iprint, nddli, iadi, jdii,
241 3 diag_i, lt_i, itok, insolv, it,
242 4 fac_k, ipiv_k, nk, mumps_par, cddlp,
243 5 isolv, idsc, iddl, ikc, inloc,
246 ELSEIF (isolv==5.OR.isolv==6)
THEN
247 IF (idsc>0.AND.itask==0) it_bcs = it_bcs + 1
249 1 nddl ,nnz ,iadk ,jdik ,diag_t ,
251 3 lt_i ,l_u ,f ,itask ,iprint ,
252 4 f_u ,isolv ,iprec ,l_lim ,itol ,
253 6 w_ddl ,a ,ar ,ve ,ms ,
254 9 xe ,d ,dr ,ndof ,ipari ,
255 a intbuf_tab ,num_imp,ns_imp,ne_imp,
256 b nsrem ,nsl ,p_mach ,istop ,nmonv ,
257 e imonv ,monvol ,igrsurf ,fr_mv ,
258 f volmon,ibfv ,skew ,xframe ,graphe,
259 g iad_elem,fr_elem,itab ,insolv ,it ,
260 h fac_k ,ipiv_k ,nk ,mumps_par,cddlp,
261 i idsc ,iddl ,ikc ,inloc ,diag_i ,
262 j iline ,ilintf,ind_imp,xi_c ,l_f0 ,
263 k nddli_g,intp_c,irbe3 ,lrbe3 ,irbe2 ,
264 l lrbe2 ,it_pcg ,imumpsv)
265 ELSEIF (n_pat>1)
THEN
267 1 nddl ,nnz ,iadk ,jdik ,diag_t ,
268 2 lt_k ,nddli ,itok ,iadi ,jdii ,
269 3 lt_i ,iadm ,jdim ,diag_m ,lt_m ,
270 4 l_u ,f ,max_l ,d_tol ,
271 4 itask ,icprec,iprint,f_u ,isolv ,
272 5 iprec ,l_lim ,itol ,inega ,w_ddl ,
274 8 d ,dr ,ndof ,ipari ,intbuf_tab,
275 9 num_imp,ns_imp,ne_imp,nsrem ,
276 a nsl ,p_mach,maxb ,istop ,nmonv ,
277 b imonv ,monvol,igrsurf ,fr_mv ,
278 c volmon,ibfv ,skew ,xframe ,ind_imp,
279 d diag_i,xi_c ,l_f0 ,nddli_g,intp_c,
280 e irbe3 ,lrbe3,irbe2 ,lrbe2 )
281 ELSEIF (iprec==1)
THEN
283 1 nddl ,nnz ,iadk ,jdik ,diag_t ,
284 2 lt_k ,nddli ,itok ,iadi ,jdii ,
285 3 lt_i ,l_u ,f ,itask ,iprint ,
286 4 f_u ,isolv ,iprec ,l_lim ,itol ,
287 6 w_ddl ,a ,ar ,ve ,ms ,
288 9 xe ,d ,dr ,ndof ,ipari ,
289 a intbuf_tab ,num_imp,ns_imp,ne_imp,
290 b nsrem ,nsl ,p_mach ,istop ,nmonv ,
291 e imonv ,monvol ,igrsurf,fr_mv ,
292 f volmon,ibfv ,skew ,xframe ,ind_imp,
293 g xi_c ,l_f0 ,nddli_g,intp_c ,irbe3 ,
294 h lrbe3 ,irbe2 ,lrbe2 )
295 ELSEIF (iprec>1.AND.iprec<10)
THEN
297 1 nddl ,nnz ,iadk ,jdik ,diag_t ,
298 2 lt_k ,nddli ,itok ,iadi ,jdii ,
299 3 lt_i ,diag_m,lt_m ,l_u ,f ,
300 4 itask ,icprec,iprint,f_u ,isolv ,
301 5 iprec ,l_lim ,itol ,inega ,w_ddl ,
302 6 a ,ar ,ve ,ms ,xe ,
304 8 num_imp,ns_imp,ne_imp,nsrem ,
305 9 nsl ,p_mach,maxb ,istop ,nmonv ,
306 c imonv ,monvol,igrsurf ,fr_mv ,
307 d volmon,ibfv ,skew ,xframe,ind_imp,
308 e diag_i,xi_c ,l_f0 ,nddli_g,intp_c,
309 f irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
317 IF (imp_chk>0.OR.(istop>0.AND.impdeb==0))
GOTO 200
322 CALL bfgs_h2(f_ddl,l_ddl,w_ddl,l_u,l_f0,a2,it,n_lim,itsk)
324 ELSEIF (insolv==3)
THEN
325 CALL bfgs_h2p(f_ddl,l_ddl,w_ddl,l_u,l_f0,a2,it,n_lim,itsk)
331 IF (iqstat>1.AND.(ilintf==0.OR.ilintf==ncycle))
THEN
338 IF (r2>qtol.AND.itq<=iqstat)
THEN
346 r2 = em02*sqrt(r2/qtol)
347 WRITE(iout,1002)itq,r2
349 WRITE(istdo,1002)itq,r2
354 IF (iline>0.AND.lprint/=0.AND.(isolv==3.OR.isolv==4))
THEN
355 IF (ilintf==0.OR.ilintf==ncycle)
THEN
357 IF (imumpsv>0 .AND. nddli>0)
THEN
362 diag_t(j)=diag_t(j)+diag_i(i)
370!$omp parallel private(itsk,f_ddl,l_ddl,i)
373 1 nddl ,nddli ,iadk ,jdik ,diag_t,
374 2 lt_k ,iadi ,jdii ,itok ,lt_i ,
376 5 ve ,ms ,xe ,d ,dr ,
377 6 ndof ,ipari ,intbuf_tab ,num_imp,
378 7 ns_imp,ne_imp,nsrem ,nsl ,ibfv ,
379 8 skew ,xframe,monvol,volmon,igrsurf ,
380 9 fr_mv,nmonv ,imonv ,ind_imp,
381 a xi_c ,itq ,irbe3 ,lrbe3 ,irbe2 ,
382 b lrbe2 ,f_ddl ,l_ddl ,itsk )
391 CALL produt_hp(nddl,l_f0,l_f0,w_ddl,qtol)
394 IF(iprint/=0)
WRITE(iout,1003)r2
395 IF(iprint<0)
WRITE(istdo,1003)r2
403 IF (nmonv>0.AND.iline==1)
THEN
406 IF (intp_c<0.AND.nddli>0)
THEN
409 CALL recudis(nddl ,iddl ,ndof ,ikc ,l_u ,
423 1001
FORMAT(3x,
'L_SOLVER : ISOLV =',i8,2x,
'ITOL =',i8,2x,
425 1002
FORMAT(/3x,
'NUM.QUASI-STATIC ITERATIONS=',i8,5x,
426 .
' RELATIVE ||R||=',e11.4/)
427 1003
FORMAT(/3x,
'DIRECT SOLVER TERMINATED WITH RELATIVE ||R||=',e11.4/)
447 1 NDDL ,NNZ ,IADK ,JDIK ,DIAG_K ,
448 2 LT_K ,NDDLI ,ITOK ,IADI ,JDII ,
449 3 LT_I ,X ,F ,ITASK ,IPRINT ,
450 4 ISOLV ,ISTOP ,GRAPHE,ITAB ,INSOLV,
451 5 IT ,FAC_K ,IPIV_K,NK ,DIAG_I,
460#include "implicit_f.inc"
464 INTEGER NDDL ,NNZ ,IADK(*),JDIK(*),ITASK,IPRINT,
465 . istop,nddli,itok(*),iadi(*),jdii(*),
466 . isolv ,itab(*), insolv,it, ipiv_k(*), nk, idsc
469 . diag_k(*),lt_k(*),lt_i(*),x(*) ,f(*),
470 . fac_k(*), diag_i(*)
490 CALL imp_dsolv(graphe, diag_k, lt_k, iadk, jdik,
491 . nddl, nf, f, x, itab,
492 . iprint, nddli, iadi, jdii, diag_i,
496 . nddl, nf, f, x, itab,
497 . it, fac_k, ipiv_k, nk, iprint,
498 . nddli, iadi, jdii, diag_i, lt_i,
525 1 DIAG_K, LT_K , IADK , JDIK , X ,
526 2 ITAB , IPRINT, NDDLI, IADI , JDII ,
527 3 DIAG_I, LT_I , ITOK , INSOLV , IT ,
528 4 FAC_K , IPIV_K, NK , MUMPS_PAR, CDDLP ,
529 5 ISOLV , IDSC , IDDL , IKC , INLOC ,
538#include "implicit_f.inc"
543#include "dmumps_struc.h"
545#include "com04_c.inc"
549 INTEGER NDDL, IAD_ELEM(2,*), FR_ELEM(*), IADK(*), JDIK(*),
550 . ITAB(*), IPRINT, NDDLI, IADI(*), JDII(*), ITOK(*),
551 . INSOLV, IT, IPIV_K(*), NK, CDDLP(*), ISOLV, IDSC,
552 . IDDL(*), IKC(*), INLOC(*), NDOF(*), ITASK
554 . F(*), DIAG_K(*), LT_K(*), X(*), DIAG_I(*), LT_I(*),
556 TYPE(PRGRAPH) :: GRAPHE(*)
559 TYPE(dmumps_struc) MUMPS_PAR
569 INTEGER NF, I, ITAG(NUMNOD), J
575 CALL mumpslb(f ,f1 , nddl , iad_elem
576 1 iddl , ikc , inloc ,ndof ,itag )
578 CALL imp_mumps2(mumps_par, cddlp, f1 , x, nddl)
580 ELSEIF (isolv==4)
THEN
584 CALL imp_dsfext(graphe , nf, f, nddl, iad_elem,
588 CALL imp_dsolv(graphe, diag_k, lt_k, iadk, jdik,
589 . nddl, nf, f, x, itab,
590 . iprint, nddli, iadi, jdii, diag_i,
594 . nddl, nf, f, x, itab
595 . it, fac_k, ipiv_k, nk, iprint,
596 . nddli, iadi, jdii, diag_i, lt_i,
600 IF (insolv/=0) idsc=0
624#include "implicit_f.inc"
625#include "comlock.inc"
635 CALL ancmsg(msgid=81,anmode=aninfo,
655#include "implicit_f.inc"
698 1 NDDL ,NNZ ,IADK ,JDIK ,DIAG_K ,
699 2 LT_K ,NDDLI ,ITOK ,IADI ,JDII ,
700 3 LT_I ,X ,F ,ITASK ,IPRINT ,
701 4 F_U ,ISOLV ,IPREC ,L_LIM ,ITOL ,
702 6 W_DDL ,A ,AR ,VE ,MS ,
703 9 XE ,D ,DR ,NDOF ,IPARI ,
704 A INTBUF_TAB ,NUM_IMP,NS_IMP,NE_IMP,
705 B NSREM ,NSL ,P_MACH ,ISTOP ,NMONV ,
706 E IMONV ,MONVOL ,IGRSURF ,FR_MV ,
707 F VOLMON,IBFV ,SKEW ,XFRAME ,IND_IMP,
708 G XI_C ,F0 ,NDDLI_G,INTP_C,IRBE3 ,
709 H LRBE3 ,IRBE2 ,LRBE2 )
720#include "implicit_f.inc"
725#include "dmumps_struc.h"
727#include "com04_c.inc"
732 INTEGER NDDL ,NNZ ,IADK(*),JDIK(*),ITASK,IPRINT,ISTOP,
733 . NDDLI ,ITOK(*) ,IADI(*),JDII(*),NDDLI_G,
734 . isolv ,iprec ,l_lim,itol,w_ddl(*),ibfv(*),intp_c
735 INTEGER NDOF(*),NE_IMP(*),NSREM ,NSL,
736 . IPARI(*) ,NUM_IMP(*),NS_IMP(*),IND_IMP(*)
737 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*),
738 . IRBE3(*) ,LRBE3(*),IRBE2(*) ,LRBE2(*)
741 . DIAG_K(*),LT_K(*),LT_I(*), X(*) ,F(*),TOL,F_U,P_MACH
743 . A(3,*),(3,*),VE(3,*),D(3,*),DR(3,*),XE(3,*),
744 . MS(*),VOLMON(*),SKEW(*) ,XFRAME(*),XI_C(*) ,F0(*)
746 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
747 TYPE () ,
DIMENSION(NSURF) :: IGRSURF
752 INTEGER I,J,NNZM,LENV,IBID,IERR,ITSK
756 TYPE(DMUMPS_STRUC) MBID
759 EXTERNAL OMP_GET_THREAD_NUM
776 itsk = omp_get_thread_num()
777 IF (isolv==1.OR.isolv>6)
THEN
779 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
780 2 lt_k ,nddli ,itok ,iadi ,jdii ,
781 3 lt_i ,nnzm ,iadk ,jdik ,diag_k ,
782 4 lt_k ,x ,f ,itol ,tol ,
783 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
784 6 l_lim ,p_mach,f_u ,istop ,
785 8 w_ddl ,a ,ar ,ve ,ms ,
786 9 xe ,d ,dr ,ndof ,ipari
787 a intbuf_tab ,num_imp,ns_imp,ne_imp,
788 b nsrem ,nsl ,nmonv ,imonv ,monvol,
789 c igrsurf,volmon,fr_mv,ibfv ,
790 d skew ,xframe ,gbid ,ibid ,ibid ,
791 e ibid ,ibid ,ibid ,rbid ,ibid ,
792 f ibid ,mbid ,ibid ,isolv ,ibid ,
793 g ibid ,ibid ,ibid ,ind_imp,xi_c ,
794 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3,
796 ELSEIF (isolv == 9)
THEN
798 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
799 2 lt_k ,nddli ,itok ,iadi ,jdii ,
800 3 lt_i ,nnzm ,iadk ,jdik ,diag_k ,
801 4 lt_k ,x ,f ,itol ,tol ,
802 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
803 6 l_lim ,p_mach,f_u ,istop ,
804 8 w_ddl ,a ,ar ,ve ,ms ,
805 9 xe ,d ,dr ,ndof ,ipari ,
806 a intbuf_tab ,num_imp,ns_imp,ne_imp,
807 b nsrem ,nsl ,nmonv ,imonv ,monvol,
808 c igrsurf ,volmon,fr_mv,ibfv ,
809 d skew ,xframe ,gbid ,ibid ,ibid ,
810 e ibid ,ibid ,ibid ,rbid ,ibid ,
811 f ibid ,mbid ,ibid ,isolv ,ibid ,
812 g ibid ,ibid ,ibid ,ind_imp,xi_c ,
813 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3,
815 ELSEIF (isolv==2.AND.itsk==0)
THEN
818 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
819 2 lt_k ,nddli ,itok ,iadi ,jdii ,
820 3 lt_i ,nnzm ,iadk ,jdik ,diag_k ,
821 4 lt_k ,x ,f ,itol ,tol ,
822 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
823 6 shift ,kcond ,l_lim ,p_mach,f_u ,
824 7 istop ,w_ddl ,a ,ar ,
825 9 ve ,ms ,xe ,d ,dr ,
826 a ndof ,ipari ,intbuf_tab ,num_imp,
827 b ns_imp,ne_imp,nsrem ,nsl ,nmonv ,
828 c imonv ,monvol,igrsurf,volmon,
829 d fr_mv ,ibfv ,skew ,xframe,ind_imp,
830 h xi_c ,f0 ,nddli_g,intp_c,irbe3 ,
831 e lrbe3 ,irbe2 ,lrbe2 )
865 1 NDDL ,NNZ ,IADK ,JDIK ,DIAG_K ,
866 2 LT_K ,NDDLI ,ITOK ,IADI ,JDII ,
867 3 LT_I ,DIAG_M,LT_M ,X ,F ,
868 4 ITASK ,ICPREC,IPRINT,F_U ,ISOLV ,
869 5 IPREC ,L_LIM ,ITOL ,INEGA ,W_DDL ,
870 7 A ,AR ,VE ,MS ,XE ,
871 8 D ,DR ,NDOF ,IPARI ,INTBUF_TAB,
872 9 NUM_IMP,NS_IMP,NE_IMP,NSREM ,
873 A NSL ,P_MACH,MAXB ,ISTOP ,NMONV ,
874 B IMONV ,MONVOL,IGRSURF ,FR_MV ,
875 C VOLMON,IBFV ,SKEW ,XFRAME ,IND_IMP,
876 D DIAG_I,XI_C ,F0 ,NDDLI_G,INTP_C,
877 E IRBE3 ,LRBE3,IRBE2 ,LRBE2 )
888#include "implicit_f.inc"
893#include "dmumps_struc.h"
895#include "com01_c.inc"
896#include "com04_c.inc"
897#include "timeri_c.inc"
898#include "units_c.inc"
903 INTEGER NDDL ,NNZ ,IADK(*),JDIK(*),ITASK,IPRINT,ICPREC,
904 . ISTOP,NDDLI ,ITOK(*) ,IADI(*),JDII(*),
905 . ISOLV ,IPREC ,L_LIM ,MAXB,ITOL,INEGA,
906 . W_DDL(*),IBFV(*),MAX_L,INTP_C,NDDLI_G
907 INTEGER NDOF(*),NE_IMP(*),NSREM ,NSL,IRBE3(*) ,LRBE3(*),
908 . IPARI(*) ,NUM_IMP(*),NS_IMP(*) ,(*),
910 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*)
913 . DIAG_K(*),LT_K(*),(*),DIAG_M(*),LT_M(*),
914 . x(*) ,f(*),tol,f_u,p_mach,xi_c(*),f0(*)
916 . a(3,*),ar(3,*),ve(3,*),d(3,*),dr(3,*),xe(3,*),
917 . ms(*),volmon(*),skew(*) ,xframe(*),diag_i(*)
919 TYPE(intbuf_struct_) INTBUF_TAB(*)
920 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
925 INTEGER I,J,NNE,NNZM,MAXC,MAXA,LEN,LENV, IDLFT0,IDLFT1
926 INTEGER SIZI(NSPMD+1),MAXS0,MAXS1,IG,IBID,IERR,ITSK
929 TYPE(PRGRAPH) :: GBID
930 TYPE(DMUMPS_STRUC) MBID
932 INTEGER OMP_GET_THREAD_NUM
933 EXTERNAL omp_get_thread_num
951 diag_m(i) = diag_k(i)
954 .
CALL imp_diags(diag_m ,ndof,nsl,ipari,intbuf_tab,irbe3,lrbe3,irbe2)
956 .
CALL monv_diag(diag_m,ndof,ipari,intbuf_tab,irbe3 ,lrbe3 ,irbe2,0)
960 IF (diag_m(i)<em20)
THEN
962 diag_m(i)=abs(diag_m(i))
963 diag_m(i)=
max(em20,diag_m(i))
965 diag_m(i) = w_ddl(i)/diag_m(i)
967 IF (nne>0.AND.isolv/=2) istop=nne
968 ELSEIF (iprec==3)
THEN
969 ELSEIF (iprec==5)
THEN
976 CALL fr_dlft(nddl,idlft0,idlft1)
981 .
CALL imp_diags(diag_k ,ndof,nsl,ipari,intbuf_tab,irbe3,lrbe3,irbe2)
983 .
CALL monv_diag(diag_k,ndof,ipari,intbuf_tab,irbe3 ,lrbe3 ,irbe2,0)
985 diag_m(i) = diag_k(i)
986 DO j=iadk(i),iadk(i+1)-1
991 diag_m(i) = diag_k(i)
992 DO j=iadk(i),iadk(i+1)-1
1004 IF (maxc>10000)
then
1007 maxa = 1+(maxc*(maxc-1))/2
1009 maxs1=iadk(nddl+1)-iadk(idlft1+1)
1012 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1013 2 lt_k ,diag_m,lt_m ,maxc ,maxa ,
1014 4 inega ,idlft0,idlft1,maxs1 )
1022 DO j=iadk(i),iadk(i+1)-1
1028 IF (inega>0.AND.isolv/=2.AND.ncycle>1)istop=inega
1030 .
CALL imp_diagsn(diag_k,ndof,nsl,ipari,intbuf_tab,irbe3,lrbe3,irbe2)
1033 .
CALL monv_diag(diag_k,ndof,ipari,intbuf_tab,irbe3,lrbe3,irbe2,1)
1044 WRITE(istdo,2001)nne
1053 diag_k(j)=diag_k(j)-diag_i(i)
1066 itsk = omp_get_thread_num()
1067 IF (isolv==1.OR.isolv==7.OR.isolv==8)
THEN
1069 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1070 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1071 3 lt_i ,nnzm ,iadk ,jdik ,diag_m ,
1072 4 lt_m ,x ,f ,itol ,tol
1073 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
1074 6 l_lim ,p_mach,f_u ,istop ,
1075 8 w_ddl ,a ,ar ,ve ,ms ,
1076 9 xe ,d ,dr ,ndof ,ipari ,
1077 a intbuf_tab ,num_imp,ns_imp,ne_imp,
1078 b nsrem ,nsl ,nmonv ,imonv ,monvol,
1079 c igrsurf,volmon,fr_mv,ibfv ,
1080 d skew ,xframe ,gbid ,ibid ,ibid ,
1082 f ibid ,mbid ,ibid ,isolv ,ibid ,
1083 g ibid ,ibid ,ibid ,ind_imp,xi_c
1084 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3,
1086 ELSEIF (isolv == 9)
THEN
1088 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1089 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1090 3 lt_i ,nnzm ,iadk ,jdik ,diag_m ,
1091 4 lt_m ,x ,f ,itol ,tol ,
1092 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
1093 6 l_lim ,p_mach,f_u ,istop ,
1094 8 w_ddl ,a ,ar ,ve ,ms ,
1095 9 xe ,d ,dr ,ndof ,ipari ,
1096 a intbuf_tab ,num_imp,ns_imp,ne_imp,
1097 b nsrem ,nsl ,nmonv ,imonv ,monvol,
1098 c igrsurf ,volmon,fr_mv,ibfv ,
1099 d skew ,xframe ,gbid ,ibid ,ibid ,
1100 e ibid ,ibid ,ibid ,rbid ,ibid ,
1101 f ibid ,mbid ,ibid ,isolv ,ibid ,
1102 g ibid ,ibid ,ibid ,ind_imp,xi_c ,
1103 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3,
1105 ELSEIF (isolv==2.AND.itsk==0)
THEN
1108 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1109 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1110 3 lt_i ,nnzm ,iadk ,jdik ,diag_m ,
1111 4 lt_m ,x ,f ,itol ,tol ,
1112 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
1113 6 shift ,kcond ,l_lim ,p_mach,f_u ,
1114 7 istop ,w_ddl ,a ,ar ,
1115 9 ve ,ms ,xe ,d ,dr ,
1116 a ndof ,ipari ,intbuf_tab ,num_imp,
1117 b ns_imp,ne_imp,nsrem ,nsl ,nmonv ,
1118 c imonv ,monvol,igrsurf,volmon,
1119 d fr_mv ,ibfv ,skew ,xframe,ind_imp,
1120 h xi_c ,f0 ,nddli_g,intp_c,irbe3 ,
1121 e lrbe3 ,irbe2 ,lrbe2 )
1127 1002
FORMAT(3x,
'PRECONDITION METHOD : JACOBIEN '/)
1128 1003
FORMAT(3x,
'PRECONDITION METHOD : Ic0 ')
1129 1004
FORMAT(3x,
'PRECONDITION METHOD : Ic0_stab ')
1130 1009
FORMAT(3x,
'PRECONDITION METHOD : FSAI_R ' )
1131 2001
FORMAT(3x,
'---WARNING :',i8,3x,
1132 .
'TOO SMALL PIVOT IN FACTORIZATION'/)
1162 1 NDDL ,NNZ ,IADK ,JDIK ,DIAG_K ,
1163 2 LT_K ,NDDLI ,ITOK ,IADI ,JDII ,
1164 3 LT_I ,IADM ,JDIM ,DIAG_M ,LT_M ,
1165 4 X ,F ,MAX_L ,D_TOL ,
1166 4 ITASK ,ICPREC,IPRINT,F_U ,ISOLV ,
1167 5 IPREC ,L_LIM ,ITOL ,INEGA ,W_DDL ,
1168 7 A ,AR ,VE ,MS ,XE ,
1169 8 D ,DR ,NDOF ,IPARI ,INTBUF_TAB,
1170 9 NUM_IMP,NS_IMP,NE_IMP,NSREM ,
1171 A NSL ,P_MACH,MAXB ,ISTOP ,NMONV ,
1172 B IMONV ,MONVOL,IGRSURF ,FR_MV ,
1173 C VOLMON,IBFV ,SKEW ,XFRAME ,IND_IMP,
1174 D DIAG_I,XI_C ,F0 ,NDDLI_G,INTP_C,
1175 E IRBE3 ,LRBE3,IRBE2 ,LRBE2 )
1186#include "implicit_f.inc"
1190#include "com01_c.inc"
1191#include "com04_c.inc"
1192#include "timeri_c.inc"
1193#include "units_c.inc"
1195#include "dmumps_struc.h"
1197#include "task_c.inc"
1202 INTEGER NDDL ,NNZ ,IADK(*),JDIK(*),ITASK,IPRINT,ICPREC,
1203 . ISTOP,NDDLI ,ITOK(*) ,IADI(*),JDII(*),
1204 . ISOLV ,IPREC ,L_LIM ,MAXB,ITOL,INEGA,INTP_C,
1205 . W_DDL(*),IBFV(*) ,IADM(*),JDIM(*),MAX_L,N_PAT,MAXB1
1206 INTEGER NDOF(*),NE_IMP(*),NSREM ,NSL,NDDLI_G,
1207 . IPARI(*) ,NUM_IMP(*),NS_IMP(*),IND_IMP(*) ,
1208 . IRBE3(*) ,LRBE3(*),IRBE2(*) ,LRBE2(*)
1209 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*)
1212 . DIAG_K(*),LT_K(*),LT_I(*),DIAG_M(*),LT_M(*),
1213 . X(*) ,F(*),TOL,F_U,P_MACH,D_TOL,XI_C(*),F0(*)
1215 . A(3,*),AR(3,*),VE(3,*),D(3,*),DR(3,*),XE(3,*),
1216 . MS(*),VOLMON(*),SKEW(*) ,XFRAME(*),DIAG_I(*)
1218 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
1219 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
1224 INTEGER I,J,NNE,NNZM,MAXC,MAXA,LEN,LENV, IDLFT0,IDLFT1
1225 INTEGER MAXS0,MAXS1,IG,IBID,IERR,ITSK
1227 . SHIFT ,KCOND,FAC,RBID
1228 TYPE(PRGRAPH) :: GBID
1229 TYPE(DMUMPS_STRUC) MBID
1231 INTEGER OMP_GET_THREAD_NUM
1232 EXTERNAL OMP_GET_THREAD_NUM
1254 CALL fr_dlft(nddl,idlft0,idlft1)
1259 .
CALL imp_diags(diag_k ,ndof,nsl,ipari,intbuf_tab,irbe3,lrbe3,irbe2)
1261 .
CALL monv_diag(diag_k,ndof,ipari,intbuf_tab,irbe3 ,lrbe3 ,irbe2,0)
1263 diag_m(i) = diag_k(i)
1264 DO j=iadk(i),iadk(i+1)-1
1269 diag_m(i) = diag_k(i)
1270 DO j=iadk(i),iadk(i+1)-1
1277 CALL ind_span(n_pat,idlft0,nddl,iadk,jdik,iadm,jdim,
w_maxl,maxb1)
1283 IF (maxc>10000)
THEN
1286 maxa = 1+(maxc*(maxc-1))/2
1288 maxs1=iadk(nddl+1)-iadk(idlft1+1)
1292 1 nddl ,iadk ,jdik ,diag_k ,lt_k ,
1293 2 iadm ,jdim ,diag_m ,lt_m ,maxc ,
1294 3 maxa ,inega ,idlft0 ,idlft1 ,maxs1 ,
1303 DO j=iadm(i),iadm(i+1)-1
1309 IF (inega>0.AND.isolv/=2.AND.ncycle>1)istop=inega
1311 .
CALL imp_diagsn(diag_k,ndof,nsl,ipari,intbuf_tab,irbe3,lrbe3,irbe2)
1314 .
CALL monv_diag(diag_k,ndof,ipari,intbuf_tab,irbe3,lrbe3,irbe2,1)
1328 nnzm = iadm(nddl+1)-iadm(1)
1329 fac=one*nnzm/nnz/nspmd
1331 IF (ispmd==0.AND.iprint/=0)
THEN
1333 IF (iprint<0)
WRITE(istdo,1002)fac
1339 diag_k(j)=diag_k(j)-diag_i(i)
1351 itsk = omp_get_thread_num()
1352 IF (isolv==1.OR.isolv==7.OR.isolv==8)
THEN
1354 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1355 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1356 3 lt_i ,nnzm ,iadm ,jdim ,diag_m ,
1357 4 lt_m ,x ,f ,itol ,tol ,
1358 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
1359 6 l_lim ,p_mach,f_u ,istop ,
1360 8 w_ddl ,a ,ar ,ve ,ms ,
1361 9 xe ,d ,dr ,ndof ,ipari ,
1362 a intbuf_tab ,num_imp,ns_imp,ne_imp,
1363 b nsrem ,nsl ,nmonv ,imonv ,monvol,
1364 c igrsurf,volmon,fr_mv,ibfv ,
1365 d skew ,xframe ,gbid ,ibid ,ibid ,
1366 e ibid ,ibid ,ibid ,rbid ,ibid ,
1367 f ibid ,mbid ,ibid ,isolv ,ibid ,
1368 g ibid ,ibid ,ibid ,ind_imp,xi_c ,
1369 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3,
1371 ELSEIF (isolv == 9)
THEN
1373 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1374 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1375 3 lt_i ,nnzm ,iadm ,jdim ,diag_m ,
1376 4 lt_m ,x ,f ,itol ,tol ,
1377 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
1378 6 l_lim ,p_mach,f_u ,istop ,
1379 8 w_ddl ,a ,ar ,ve ,ms ,
1380 9 xe ,d ,dr ,ndof ,ipari ,
1381 a intbuf_tab ,num_imp,ns_imp,ne_imp,
1382 b nsrem ,nsl ,nmonv ,imonv ,monvol,
1383 c igrsurf ,volmon,fr_mv,ibfv ,
1384 d skew ,xframe ,gbid ,ibid ,ibid ,
1385 e ibid ,ibid ,ibid ,rbid ,ibid ,
1386 f ibid ,mbid ,ibid ,isolv ,ibid ,
1387 g ibid ,ibid ,ibid ,ind_imp,xi_c ,
1388 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3,
1390 ELSEIF (isolv==2.AND.itsk==0)
THEN
1393 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1394 2 lt_k ,nddli ,itok ,iadi ,jdii
1395 3 lt_i ,nnzm ,iadm ,jdim ,diag_m ,
1396 4 lt_m ,x ,f ,itol ,tol ,
1397 5 pcg_w1,pcg_w2,pcg_w3,itask ,iprint ,
1398 6 shift ,kcond ,l_lim ,p_mach,f_u ,
1399 7 istop ,w_ddl ,a ,ar ,
1400 9 ve ,ms ,xe ,d ,dr ,
1401 a ndof ,ipari ,intbuf_tab ,num_imp,
1402 b ns_imp,ne_imp,nsrem ,nsl ,nmonv ,
1403 c imonv ,monvol,igrsurf ,volmon,
1404 d fr_mv ,ibfv ,skew ,xframe,ind_imp,
1405 h xi_c ,f0 ,nddli_g,intp_c,irbe3 ,
1406 e lrbe3 ,irbe2 ,lrbe2 )
1411 1002
FORMAT(3x,
'END PRECONDITION WITH RELATIVE DENSITY =',e11.4/)
1433 1 NDDL ,NNZ ,IADK ,JDIK ,DIAG_K ,
1434 2 LT_K ,NDDLI ,ITOK ,IADI ,JDII ,
1435 3 LT_I ,X ,F ,ITASK ,IPRINT ,
1436 4 F_U ,ISOLV ,IPREC ,L_LIM ,ITOL ,
1437 6 W_DDL ,A ,AR ,VE ,MS ,
1438 9 XE ,D ,DR ,NDOF ,IPARI ,
1439 A INTBUF_TAB ,NUM_IMP,NS_IMP,NE_IMP,
1440 B NSREM ,NSL ,P_MACH ,ISTOP ,NMONV ,
1441 E IMONV ,MONVOL ,IGRSURF ,FR_MV ,
1442 F VOLMON,IBFV ,SKEW ,XFRAME ,GRAPHE,
1443 G IAD_ELEM,FR_ELEM,ITAB ,INSOLV ,ITN ,
1444 H FAC_K ,IPIV_K ,NK ,MUMPS_PAR,CDDLP,
1445 I IDSC ,IDDL ,IKC ,INLOC ,DIAG_I ,
1446 J ILINE ,ILINTF,IND_IMP,XI_C ,F0 ,
1447 K NDDLI_G,INTP_C,IRBE3 ,LRBE3 ,IRBE2 ,
1448 L LRBE2 ,IT_PCG,IMUMPSV)
1459#include
"implicit_f.inc"
1463#include "com01_c.inc"
1464#include "com04_c.inc"
1465#include "timeri_c.inc"
1467#include "dmumps_struc.h"
1473 INTEGER NDDL ,NNZ ,IADK(*),JDIK(*),ITASK,IPRINT,ISTOP,
1474 . NDDLI ,ITOK(*) ,IADI(*),JDII(*),
1475 . ISOLV ,IPREC ,L_LIM,ITOL,W_DDL(*),IBFV(*)
1476 INTEGER NDOF(*),NE_IMP(*),NSREM ,NSL,NDDLI_G,
1477 . IPARI(*) ,NUM_IMP(*),NS_IMP(*),IND_IMP(*)
1478 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*)
1479 INTEGER IAD_ELEM(2,*), FR_ELEM(*), ITAB(*),
1480 . INSOLV, ITN, IPIV_K(*), NK, CDDLP(*),IDSC,
1481 . IDDL(*), IKC(*), INLOC(*),ILINE ,ILINTF,INTP_C,
1482 . IRBE3(*) ,LRBE3(*) ,IRBE2(*) ,LRBE2(*) ,IT_PCG,IMUMPSV
1485 . DIAG_K(*),LT_K(*),LT_I(*), X(*) ,(*),TOL,F_U,P_MACH,
1486 . DIAG_I(*),XI_C(*),F0(*)
1488 . a(3,*),ar(3,*),ve(3,*),d(3,*),dr(3,*),xe(3,*),
1489 . ms(*),volmon(*),skew(*) ,xframe(*),fac_k(*)
1491 TYPE(intbuf_struct_) INTBUF_TAB(*)
1492 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
1495 TYPE(dmumps_struc) MUMPS_PAR
1505 INTEGER I,J,NNZM,LENV,IBID,ISOL,IERR,IDS,ITSK
1508 INTEGER OMP_GET_THREAD_NUM
1509 EXTERNAL OMP_GET_THREAD_NUM
1522 diag_k(j)=diag_k(j)+diag_i(i)
1531 itsk = omp_get_thread_num()
1533 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1534 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1535 3 lt_i ,nnzm ,iadk ,jdik ,diag_k ,
1536 4 lt_k ,x ,f ,itol ,tol ,
1537 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
1538 6 l_lim ,p_mach,f_u ,istop ,
1539 8 w_ddl ,a ,ar ,ve ,ms ,
1540 9 xe ,d ,dr ,ndof ,ipari ,
1541 a intbuf_tab ,num_imp,ns_imp,ne_imp,
1542 b nsrem ,nsl ,nmonv ,imonv ,monvol,
1543 c igrsurf,volmon,fr_mv,ibfv ,
1544 d skew ,xframe ,graphe,iad_elem,fr_elem,
1545 e insolv ,itn ,fac_k ,ipiv_k,nk ,
1546 f itab ,mumps_par,cddlp,isol,idsc ,
1547 g iddl ,ikc ,inloc ,ind_imp,xi_c ,
1548 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3
1553 IF (nspmd == 1.AND.imumpsv==0)
THEN
1555 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1556 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1557 3 lt_i ,x ,f ,itask ,iprint ,
1558 4 isol ,istop ,graphe,itab ,insolv,
1559 5 itn ,fac_k ,ipiv_k,nk ,diag_i,
1562 CALL lin_solvp2(graphe, f, nddl, iad_elem, fr_elem,
1563 1 diag_k, lt_k, iadk, jdik, x,
1564 2 itab, iprint, nddli, iadi, jdii,
1565 3 diag_i, lt_i, itok, insolv, itn,
1566 4 fac_k, ipiv_k, nk, mumps_par, cddlp,
1567 5 isol , ids , iddl, ikc, inloc,
1574 IF (iline==0.OR.(iline>0.AND.ilintf==0) )
THEN
1579 diag_k(j)=diag_k(j)+diag_i(i)
1587 itsk = omp_get_thread_num()
1589 1 nddl ,nnz ,iadk ,jdik ,diag_k ,
1590 2 lt_k ,nddli ,itok ,iadi ,jdii ,
1591 3 lt_i ,nnzm ,iadk ,jdik ,diag_k ,
1592 4 lt_k ,x ,f ,itol ,tol ,
1593 5 pcg_w1,pcg_w2,pcg_w3,itsk ,iprint ,
1594 6 l_lim ,p_mach,f_u ,istop ,
1595 8 w_ddl ,a ,ar ,ve ,ms ,
1596 9 xe ,d ,dr ,ndof ,ipari ,
1597 a intbuf_tab ,num_imp,ns_imp,ne_imp,
1598 b nsrem ,nsl ,nmonv ,imonv ,monvol,
1599 c igrsurf,volmon,fr_mv,ibfv ,
1600 d skew ,xframe ,graphe,iad_elem,fr_elem,
1601 e insolv ,itn ,fac_k ,ipiv_k,nk ,
1602 f itab ,mumps_par,cddlp,isol,idsc ,
1603 g iddl ,ikc ,inloc ,ind_imp,xi_c ,
1604 h f0 ,nddli_g,intp_c,irbe3 ,lrbe3,
1632 SUBROUTINE set_kisc(NDDL ,NDDLI,IADI ,JDII ,ITOK ,LT_I ,
1633 . IADK0,JDIK0,LT_K0)
1637#include "implicit_f.inc"
1641 INTEGER NDDL,NDDLI,IADI(*),(*),IADK0(*),JDIK0(*),ITOK(*)
1649 INTEGER I,J,K,JD,ICOL(),NRI,I0,KTOI(NDDL)
1657 icol(k) = iadi(i+1) - iadi(i)
1661 DO j = iadi(i),iadi(i+1)-1
1663 icol(jd) = icol(jd) + 1
1668 iadk0(i+1) = iadk0(i)+icol(i)
1675 DO j=iadi(i),iadi(i+1)-1
1677 k=iadk0(i0)+j-iadi(i)
1681 icol(i0) = iadi(i+1)-iadi(i)
1682 DO j=iadi(i),iadi(i+1)-1
1684 k = iadk0(jd) + icol(jd)
1687 icol(jd) = icol(jd) + 1
1699!||
ancmsg ../engine/source/output/message/message.f
1714#include "implicit_f.inc"
1718 INTEGER NDDL,NDDLI,IADI(*)
1725 IF (NDDLI<=0) return
1729 IF(
ALLOCATED(lt_i0))
DEALLOCATE(lt_i0)
1730 lnz=iadi(nddli+1)-iadi(1)
1733 ALLOCATE(
iadi0(nddli+1),
jdii0(lnz),lt_i0(lnz),stat=ierr)
1736 CALL ancmsg(msgid=19,anmode=aninfo,
1737 . c1=
'FOR IMPLICIT SOLVER W/ CONTACT')
1752 1 IDDL , IKC , INLOC ,NDOF ,ITAG )
1760#include "implicit_f.inc"
1764#include "com01_c.inc"
1765#include "com04_c.inc"
1769 INTEGER NDDL, IAD_ELEM(2,*), FR_ELEM(*),
1770 . iddl(*), ikc(*), inloc(*), ndof(*),itag(*)
1777 INTEGER NF, I, J, N, NKC, ND, ID
1778 INTEGER ITSK,F_NOD ,L_NOD,F_DDL ,L_DDL
1781 CALL IMP_SMPINI(ITSK ,F_NOD ,L_NOD ,NUMNOD )
1782 CALL IMP_SMPINI(ITSK ,F_DDL ,L_DDL ,NDDL )
1786 IF (nspmd > 1 )
THEN
1793 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1795 IF ( itag(n) > 0 ) itag(n)=itag(n)+1
1808 IF ( itag(i) > 1 ) f1(id)=f(id)/itag(i)
1822!||--- uses -----------------------------------------------------
1825 SUBROUTINE mumpslb(F ,F1 , NDDL , IAD_ELEM , FR_ELEM,
1826 1 IDDL , IKC , INLOC ,NDOF ,ITAG )
1834#include "implicit_f.inc"
1838#include "com01_c.inc"
1839#include "com04_c.inc"
1843 INTEGER NDDL, IAD_ELEM(2,*), FR_ELEM(*),
1844 . IDDL(*), (*), INLOC(*), NDOF(*),ITAG(*)
1851 INTEGER NF, I, J, N, NKC, ND, ID
1852 INTEGER ITSK,F_NOD ,L_NOD,F_DDL ,L_DDL
1857 IF (nspmd > 1 )
THEN
1864 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
1879 IF ( itag(i) > 1 ) f1(id)=f(id)/itag(i)
subroutine bfgs_h1(f_ddl, l_ddl, w_ddl, f, a2, it, itask)
subroutine bfgs_h2(f_ddl, l_ddl, w_ddl, u, f, a2, it, max_bfgs, itask)
subroutine bfgs_h2p(f_ddl, l_ddl, w_ddl, u, f, a2, it, max_bfgs, itask)
subroutine bfgs_h1p(f_ddl, l_ddl, w_ddl, f, a2, it, itask)
subroutine imp_dsfext(graphe, nf, f, nddl, iad_elem, fr_elem)
subroutine imp_dsolv(graphe, k_diag, k_lt, iadk, jdik, nddl, nb, b, x, itab, iprint, nddli7, iadi7, jdii7, i7_diag, i7_lt, i7tok)
subroutine imp_dsolv_iter(graphe, k_diag, k_lt, iadk, jdik, nddl, nb, b, x, itab, it, fac_k, ipiv_k, nk, iprint, nddli7, iadi7, jdii7, i7_diag, i7_lt, i7tok)
subroutine qstat_end(nddl, u)
subroutine qstat_it(nddl, f, u)
subroutine imp_diags(diag_k, ndof, nsl, ipari, intbuf_tab, irbe3, lrbe3, irbe2)
subroutine imp_diagsn(diag_k, ndof, nsl, ipari, intbuf_tab, irbe3, lrbe3, irbe2)
subroutine imp_fri(num_imp, ns_imp, ne_imp, ipari, intbuf_tab, npby, lpby, itab, nrbyac, irbyac, nint2, iint2, iddl, ikc, ndof, inloc, nsrem, nsl, nbintc, intlist, x, ibfv, lj, skew, xframe, iskew, icodt, a, ud, lb, ifdis, nddl, urd, iddli, irbe3, lrbe3, frbe3, irbe2, lrbe2)
subroutine fr_dlft(nddl, idlft0, idlft1)
subroutine imp_fsa_inv2hp(nddl, iadk, jdik, diag_k, lt_k, iadm, jdim, diag_m, lt_m, maxc, max_a, nne, idlft0, idlft1, max_d, d_tol, p_mach)
subroutine imp_fsa_invhp(nddl, nnz, iadk, jdik, diag_k, lt_k, diag_m, lt_m, maxc, max_a, nne, idlft0, idlft1, max_d)
subroutine imp_lanzp(iprec, n, nnz, iadk, jdik, diag_k, lt_k, ni, itok, iadi, jdii, lt_i, nnzm, iadm, jdim, diag_m, lt_m, x, r, itol, rtol, v, w, y, itask, iprint, shift, kcond, n_max, flm, f_x, istop, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, nmonv, imonv, monvol, igrsurf, volmon, fr_mv, ibfv, skew, xframe, ind_imp, xi_c, r0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine imp_mumps2(mumps_par, cddlp, f, x, nddl)
subroutine imp_ppcgh(iprec, nddl, nnz, iadk, jdik, diag_k, lt_k, nddli, itok, iadi, jdii, lt_i, nnzm, iadm, jdim, diag_m, lt_m, x, r, itol, tol, p, z, y, itask, iprint, n_max, eps_m, f_x, istop, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, nmonv, imonv, monvol, igrsurf, volmon, fr_mv, ibfv, skew, xframe, graphe, iad_elem, fr_elem, itab, insolv, itn, fac_k, ipiv_k, nk, mumps_par, cddlp, isolv, idsc, iddl, ikc, inloc, ind_imp, xi_c, r0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine imp_pcgh(iprec, nddl, nnz, iadk, jdik, diag_k, lt_k, nddli, itok, iadi, jdii, lt_i, nnzm, iadm, jdim, diag_m, lt_m, x, r, itol, tol, p, z, y, itask, iprint, n_max, eps_m, f_x, istop, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, nmonv, imonv, monvol, igrsurf, volmon, fr_mv, ibfv, skew, xframe, graphe, iad_elem, fr_elem, itab, insolv, itn, fac_k, ipiv_k, nk, mumps_par, cddlp, isolv, idsc, iddl, ikc, inloc, ind_imp, xi_c, r0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine diag_kif(diag_k)
subroutine imp_smpini(itsk, n1ftsk, n1ltsk, n1)
subroutine set_ksym(nddl, iadk, jdik, lt_k, iadk0, jdik0, lt_k0)
subroutine spmd_sumf_k(diag_k, l_k)
subroutine spmd_sumf_v(v)
subroutine ind_span(nn, ndf, nddl, iadk, jdik, iadm, jdim, l_max, ndmax)
subroutine mumpslb_hp(f, f1, nddl, iad_elem, fr_elem, iddl, ikc, inloc, ndof, itag)
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 recu_kdis0(ndof, d)
subroutine lin_solvhm(tol, nddl, nnz, iadk, jdik, diag_k, lt_k, nddli, itok, iadi, jdii, lt_i, x, f, itask, iprint, f_u, isolv, iprec, l_lim, itol, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, p_mach, istop, nmonv, imonv, monvol, igrsurf, fr_mv, volmon, ibfv, skew, xframe, graphe, iad_elem, fr_elem, itab, insolv, itn, fac_k, ipiv_k, nk, mumps_par, cddlp, idsc, iddl, ikc, inloc, diag_i, iline, ilintf, ind_imp, xi_c, f0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2, it_pcg, imumpsv)
subroutine lin_solvp2(graphe, f, nddl, iad_elem, fr_elem, diag_k, lt_k, iadk, jdik, x, itab, iprint, nddli, iadi, jdii, diag_i, lt_i, itok, insolv, it, fac_k, ipiv_k, nk, mumps_par, cddlp, isolv, idsc, iddl, ikc, inloc, ndof, itask)
subroutine lin_solvh0(tol, nddl, nnz, iadk, jdik, diag_k, lt_k, nddli, itok, iadi, jdii, lt_i, x, f, itask, iprint, f_u, isolv, iprec, l_lim, itol, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, p_mach, istop, nmonv, imonv, monvol, igrsurf, fr_mv, volmon, ibfv, skew, xframe, ind_imp, xi_c, f0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine lin_solv2(nddl, nnz, iadk, jdik, diag_k, lt_k, nddli, itok, iadi, jdii, lt_i, x, f, itask, iprint, isolv, istop, graphe, itab, insolv, it, fac_k, ipiv_k, nk, diag_i, idsc)
subroutine lin_solvh1(tol, max_l, nddl, nnz, iadk, jdik, diag_k, lt_k, nddli, itok, iadi, jdii, lt_i, diag_m, lt_m, x, f, itask, icprec, iprint, f_u, isolv, iprec, l_lim, itol, inega, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, p_mach, maxb, istop, nmonv, imonv, monvol, igrsurf, fr_mv, volmon, ibfv, skew, xframe, ind_imp, diag_i, xi_c, f0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine ini_kisc(nddl, nddli, iadi)
subroutine lin_solvih2(tol, n_pat, maxb1, nddl, nnz, iadk, jdik, diag_k, lt_k, nddli, itok, iadi, jdii, lt_i, iadm, jdim, diag_m, lt_m, x, f, max_l, d_tol, itask, icprec, iprint, f_u, isolv, iprec, l_lim, itol, inega, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, p_mach, maxb, istop, nmonv, imonv, monvol, igrsurf, fr_mv, volmon, ibfv, skew, xframe, ind_imp, diag_i, xi_c, f0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine mumpslb(f, f1, nddl, iad_elem, fr_elem, iddl, ikc, inloc, ndof, itag)
subroutine set_kisc(nddl, nddli, iadi, jdii, itok, lt_i, iadk0, jdik0, lt_k0)
subroutine recu_kdis(ndof, d)
subroutine monv_diag(diag_k, ndof, ipari, intbuf_tab, irbe3, lrbe3, irbe2, iflag)
integer, dimension(:,:), allocatable id_kn
integer, dimension(:), allocatable in_kn
integer, dimension(:), allocatable jdik0
integer, dimension(:), allocatable iadi0
integer, dimension(:), allocatable jdim0
integer, dimension(:), allocatable jdii0
integer, dimension(:), allocatable iadk0
integer, dimension(:), allocatable iadm0
subroutine nl_solv(nddl, iddl, ndof, ikc, d, dr, nnz, iadk, jdik, diag_k, lt_k, f, nddli, iadi, jdii, diag_i, lt_i, itok, iadm, jdim, diag_m, lt_m, r02, dd, ddr, itask0, it, itc, ru0, rold, idiv, inprint, icprec, istop, e02, de0, eimp, inloc, nddl0, ls, u02, gap, itab, fr_elem, iad_elem, w_ddl, a, ar, v, ms, x, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, icont, graphe, fac_k, ipiv_k, nk, nmonv, imonv, monvol, igrsurf, fr_mv, volmon, ibfv, skew, xframe, mumps_par, cddlp, ind_imp, nbintc, intlist, newfront, isendto, irecvfrom, irbe3, lrbe3, ndiv, icont0, isign, fext, dg, dgr, dg0, dgr0, rfext, ls1, nodft, nodlt, irbe2, lrbe2, idiv0, relres, anew_stif)
subroutine produt_hp(nddl, x, y, w, r)
subroutine mav_lth0(nddl, nddli, iadl, jdil, diag_k, lt_k, iadi, jdii, itok, lt_i, v, w, a, ar, ve, ms, x, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, ibfv, skew, xframe, monvol, volmon, igrsurf, fr_mv, nmonv, imonv, index2, xi_c, iupd, irbe3, lrbe3, irbe2, lrbe2, f_ddl, l_ddl, itask)
subroutine recudis(nddl, iddl, ndof, ikc, lx, d, dr, inloc)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)