42 1 ITASK ,NODFT ,NODLT ,
43 2 IXC ,IPARG ,IXS ,IXT ,IXP ,
44 3 IXR ,IXTG ,NODNX_SMS,MS ,MS0 ,
45 4 INDX1_SMS,INDX2_SMS,JAD_SMS ,JDI_SMS ,LT_SMS ,
46 . KAD_SMS ,KDI_SMS ,LTK_SMS ,PK_SMS ,NODII_SMS,
47 5 JADC_SMS ,JADS_SMS,JADT_SMS,JADP_SMS ,JADR_SMS ,
48 6 JADTG_SMS,DIAG_SMS,TAGPRT_SMS,TAGREL_SMS,
49 7 IPARTS ,IPARTQ ,IPARTC ,IPARTT ,IPARTP ,
50 8 IPARTR ,IPARTUR ,IPARTTG ,IPARTX ,IAD_ELEM ,
51 9 FR_ELEM ,NPBY ,LPBY,TAGSLV_RBY_SMS,LAD_SMS ,
52 A JSM_SMS ,DMELTG ,DMELC ,MSKYI_SMS,
53 B ISKYI_SMS,JADI_SMS,JDII_SMS ,LTI_SMS ,NODXI_SMS,
54 C DMELS ,DMELTR ,DMELP ,DMELRT ,IGEO ,
55 D FR_SMS ,FR_RMS ,EV ,IPARI ,INTBUF_TAB,
56 E KINET ,TAGSLV_I21_SMS,JADI21_SMS,INTSTAMP,
57 F IXS10 ,JADS10_SMS,ILINK ,RLINK ,NNLINK ,
58 G LNLINK ,TAG_LNK_SMS,LJOINT,IADCJ ,FR_CJ ,
59 H ITAB ,WEIGHT ,DMINT2 ,ELBUF_TAB,TAGMSR_RBY_SMS,
60 I NPRW ,LPRW ,FR_WALL ,NRWL_SMS ,RBY ,
62 K VR ,IRBE2 ,LRBE2 ,IRBE3 ,LRBE3 ,
63 L IAD_RBE3M ,FR_RBE3M,NATIV_SMS,T2MAIN_SMS,T2FAC_SMS,
64 M MSKYI_FI_SMS, LIST_SMS,LIST_RMS,SZ_mw6,MW6)
73 use element_mod ,
only : nixs,nixq,nixc,nixt,nixr,nixp,nixtg
77#include "implicit_f.inc"
84#include "kincod_c.inc"
94 INTEGER ITASK, NODFT, NODLT,
95 . iparg(nparg,*), ixc(nixc,*), ixs(nixs,*), ixt(nixt,*),
96 . ixp(nixp,*), ixr(nixr,*), ixtg(nixtg,*),
97 . nodnx_sms(*), jad_sms(*), jdi_sms(*),
98 . kad_sms(*), kdi_sms(*), pk_sms(*),
99 . jadc_sms(4,*), jads_sms
100 . jadt_sms(2,*), jadp_sms(2,*),
101 . jadr_sms(3,*), jadtg_sms(3,*),
102 . indx1_sms(*), indx2_sms(*), tagprt_sms(*), tagrel_sms(*),
103 . iparts(*), ipartq(*), ipartc(*), ipartt(*),
104 . ipartp(*), ipartr(*), ipartur(*), iparttg(*), ipartx(*),
105 . iad_elem(2,nspmd+1) ,fr_elem(*),
106 . npby(nnpby,*), lpby(*), tagslv_rby_sms(*),
107 . lad_sms(*), jsm_sms(*),
108 . iskyi_sms(lskyi_sms,*),
109 . jadi_sms(*), jdii_sms(*), nodxi_sms(*), nodii_sms(*),
111 . fr_rms(nspmd+1), fr_sms(nspmd+1),
112 . ipari(npari,*), kinet(*),
113 . tagslv_i21_sms(*), jadi21_sms(*),
115 . ilink(*), rlink(*), nnlink(10,*), lnlink(*),
116 . tag_lnk_sms(*), ljoint(*), fr_cj(*),iadcj(nspmd+1,
117 . itab(*), weight(*), tagmsr_rby_sms(*),
118 . nprw(*), lprw(*), fr_wall(*), nrwl_sms(*),
119 . irbe2(*), lrbe2(*),
120 . irbe3(*), lrbe3(*), iad_rbe3m(*),fr_rbe3m(*), nativ_sms(*),
123 . ms(*), ms0(*), lt_sms(*), ltk_sms(*), diag_sms(*),
124 . dmeltg(*), dmelc(*), mskyi_sms(*), lti_sms(*),
125 . dmels(*), dmeltr(*), dmelp(*), dmelrt(*), ev(*),
126 . dmint2(4,*), rby(nrby,*), x(3,*), a(3,*), ar(3,*), in(*),
127 . v(3,*), vr(3,*),t2fac_sms(*)
128 my_real,
dimension(fr_rms(nspmd+1)),
intent(inout) :: mskyi_fi_sms
129 integer,
dimension(fr_sms(nspmd+1)),
intent(inout) :: LIST_SMS
130 integer,
dimension(fr_rms(nspmd+1)),
intent(inout) :: LIST_RMS
131 integer,
intent(in) :: SZ_mw6
132 DOUBLE PRECISION,
dimension(6,SZ_mw6),
intent(inout) :: MW6
134 TYPE(INTSTAMP_DATA) INTSTAMP(*)
135 TYPE (),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
136 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
140 INTEGER I, J, K, JJ, KK, II, IJ, IK, N, M, NN, P, LOC_PROC
141 INTEGER NG, ITY, NEL, NFT, ISOLNOD,MLW,LFT, LLT,
142 . KAD, NPT, IHBE, ICNOD, ISTRA, IEXPAN, IE, J1,
143 . ILOC4(4), IG, IGTYP, IERROR, IPERM1(6), IPERM2(6),IPENTA6(6)
144 INTEGER MSR, NSN, KI, KJ
146 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGA
147 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NAD_SMS
148 INTEGER,
DIMENSION(:),
ALLOCATABLE :: KADI_SMS
149 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NADI_SMS
150 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAG8
151 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NAD_SMS_0
152 INTEGER NTY, ILAGM, N1, N2, N3, N4,
155 . mele4, mele12, ltij,
158 . fac_scal_i,fac_scal_j
159 my_real,
dimension(:,:),
ALLOCATABLE :: awork
161 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IMV
163 . ,
DIMENSION(:),
ALLOCATABLE :: mv
165 . ,
DIMENSION(:,:),
ALLOCATABLE :: mv6
167 .
DIMENSION(:),
POINTER :: offg
170 DATA iperm1/1,2,3,1,2,3/
171 DATA iperm2/2,3,1,4,4,4/
172 DATA ipenta6/1,2,3,5,6,7/
174 CALL my_alloc(taga,numnod)
175 CALL my_alloc(nad_sms,numnod)
176 CALL my_alloc(kadi_sms,numnod+1)
177 CALL my_alloc(nadi_sms,numnod)
178 CALL my_alloc(tag8,numnod)
179 CALL my_alloc(nad_sms_0,numnod)
180 CALL my_alloc(awork,3,numnod)
189 ALLOCATE(imv(2*nisky_sms+fr_rms(nspmd+1)),
190 . mv(2*nisky_sms+fr_rms(nspmd+1)),
191 . mv6(6,2*nisky_sms+fr_rms(nspmd+1)),stat=ierror)
193 ALLOCATE(imv(nnz_sms+2*nisky_sms+fr_rms(nspmd+1)),
194 . mv(nnz_sms+2*nisky_sms+fr_rms(nspmd+1)),
195 . mv6(6,nnz_sms+2*nisky_sms+fr_rms(nspmd+1)),stat
198 CALL ancmsg(msgid=19,anmode=aninfo,
199 . c1=
'(/DT/.../AMS)')
205 nodxi_sms(nodft:nodlt)=nodnx_sms(nodft:nodlt)
210 IF(idtmins/=2)
GO TO 100
215 IF(tagrel_sms(ng)==0)
GOTO 250
226 isolnod = iparg(28,ng)
227 iexpan = iparg(49,ng)
230 ELSEIF(ihbe==102)
THEN
232 ELSEIF(ihbe==112)
THEN
237 IF (ity==1.AND.isolnod==4)
THEN
238 offg => elbuf_tab(ng)%GBUF%OFF
244 IF (offg(j) > zero)
THEN
261 jj = ixs(1+iloc4(kk),ie)
262 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
269 ELSEIF (ity==1.AND.isolnod==6)
THEN
270 offg => elbuf_tab(ng)%GBUF%OFF
276 IF (offg(j) > zero)
THEN
287 mele12=one_over_6*mele4
289 i=ixs(1+ipenta6(k),ie)
293 jj = ixs(1+ipenta6(kk),ie)
294 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
301 ELSEIF(ity==1.AND.isolnod==8)
THEN
302 offg => elbuf_tab(ng)%GBUF%OFF
310 IF (offg(j) > zero)
THEN
319 IF(taga(i)==0)xnod=xnod+one
321 kmult=
max(kmult,taga(i))
325 mele4 =kmult*half*dmels(ie)
343 mele12=(one/xnod)*mele4
374 IF(tag8(kk)/=0) cycle
376 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
383 ELSEIF(ity==1.AND.isolnod==10)
THEN
385 offg => elbuf_tab(ng)%GBUF%OFF
392 IF (offg(j) > zero)
THEN
393 mele4 = half*dmels(ie)
402 mele4 = mele4/thirty2
413 jj = ixs(1+iloc4(kk),ie)
414 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
424 IF(.NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
439 jj = ixs(1+iloc4(kk),ie)
440 IF(.NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
450 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
464 i=ixs(1+iloc4(iperm1(k)),ie)
465 ij=jads_sms(iperm1(k),ie)
468 jj = ixs(1+iloc4(kk),ie)
469 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
470 ltk_sms(ij)=ltk_sms(ij)-half*mele12
479 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
480 ltk_sms(ij)=ltk_sms(ij)-half*mele12
485 i=ixs(1+iloc4(iperm2(k)),ie)
486 ij=jads_sms(iperm2(k),ie)
489 jj = ixs(1+iloc4(kk),ie)
490 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
491 ltk_sms(ij)=ltk_sms(ij)-half*mele12
500 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
501 ltk_sms(ij)=ltk_sms(ij)-half*mele12
508 offg => elbuf_tab(ng)%GBUF%OFF
515 IF (offg(j) > zero)
THEN
516 mele4 = half*dmels(ie)
525 mele4 = mele4*seven/forty8
536 jj = ixs(1+iloc4(kk),ie)
537 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
547 IF(.NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
562 jj = ixs(1+iloc4(kk),ie)
563 IF(.NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
573 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
587 i=ixs(1+iloc4(iperm1(k)),ie)
588 ij=jads_sms(iperm1(k),ie)
591 jj = ixs(1+iloc4(kk),ie)
592 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
593 ltk_sms(ij)=ltk_sms(ij)-half*mele12
602 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
603 ltk_sms(ij)=ltk_sms(ij)-half*mele12
608 i=ixs(1+iloc4(iperm2(k)),ie)
609 ij=jads_sms(iperm2(k),ie)
612 jj = ixs(1+iloc4(kk),ie)
613 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
614 ltk_sms(ij)=ltk_sms(ij)-half*mele12
623 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
624 ltk_sms(ij)=ltk_sms(ij)-half*mele12
632 offg => elbuf_tab(ng)%GBUF%OFF
638 IF (offg(j) > zero)
THEN
639 mele4 =half*dmelc(ie)
649 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
657 offg => elbuf_tab(ng)%GBUF%OFF
663 IF (offg(j) > zero)
THEN
664 mele4 =half*dmeltr(ie)
673 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
681 offg => elbuf_tab(ng)%GBUF%OFF
687 IF (offg(j) > zero)
THEN
688 mele4 =half*dmelp(ie)
698 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
708 offg => elbuf_tab(ng)%GBUF%OFF
715 IF (offg(j) > zero)
THEN
716 mele4=half*dmelrt(ie)
726 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
739 IF (offg(j) > zero)
THEN
740 mele12=half*dmelrt(ie)
750 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
761 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
767 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
778 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
786 offg => elbuf_tab(ng)%GBUF%OFF
792 IF (offg(j) > zero)
THEN
793 mele4=half*dmeltg(ie)
810 IF(jj/=i.AND..NOT.(nativ_sms(i)==0.AND.nativ_sms(jj)==0))
THEN
828 DO ik=jad_sms(i),lad_sms(i)
832 DO ij=kad_sms(i),kad_sms(i+1)-1
833 ik =jad_sms(i)+pk_sms(ij)-1
834 lt_sms(ik) = lt_sms(ik) + ltk_sms(ij)
846 nad_sms(i)=lad_sms(i)+1
855 IF(nty==2 .AND. ilagm==0 .AND.ilev/=25.AND.ilev/=26)
THEN
858 i=intbuf_tab(n)%NSV(ii)
859 IF (i < 0) t2main_sms(6,-i)=-1
870 IF(nty==2 .AND. ilagm==0 .AND.ilev/=25.AND.ilev/=26.AND.ilev/=27.AND.ilev/=28)
THEN
875 i=intbuf_tab(n)%NSV(ii)
876 l=intbuf_tab(n)%IRTLM(ii)
877 n1 = intbuf_tab(n)%IRECTM(4*(l-1)+1)
878 n2 = intbuf_tab(n)%IRECTM(4*(l-1)+2)
879 n3 = intbuf_tab(n)%IRECTM(4*(l-1)+3)
880 n4 = intbuf_tab(n)%IRECTM(4*(l-1)+4)
882 IF(nativ_sms(i)==0.AND.nativ_sms(n1)==0
883 . .AND.nativ_sms(n2)==0
884 . .AND.nativ_sms(n3)==0
885 . .AND.nativ_sms(n4)==0) cycle
889 DO kj=jad_sms(i),lad_sms(i)
894 IF (t2main_sms(1,j) == 1)
THEN
896 lt_sms(nad_sms(j)) = ltij
897 lt_sms(nad_sms(n1))= ltij
898 nad_sms(j) =nad_sms(j)+1
899 nad_sms(n1)=nad_sms(n1)+1
901 lt_sms(nad_sms(j)) = ltij
902 lt_sms(nad_sms(n2))= ltij
903 nad_sms(j) =nad_sms(j)+1
904 nad_sms(n2)=nad_sms(n2)+1
906 lt_sms(nad_sms(j)) = ltij
907 lt_sms(nad_sms(n3))= ltij
908 nad_sms(j) =nad_sms(j)+1
909 nad_sms(n3)=nad_sms(n3)+1
911 lt_sms(nad_sms(j)) = ltij
912 lt_sms(nad_sms(n4))= ltij
913 nad_sms(j) =nad_sms(j)+1
914 nad_sms(n4)=nad_sms(n4)+1
916 ELSEIF(t2main_sms(6,j)==0)
THEN
919 lt_sms(nad_sms(j)) = zero
920 lt_sms(nad_sms(n1))= zero
921 nad_sms(j) =nad_sms(j)+1
922 nad_sms(n1)=nad_sms(n1)+1
924 lt_sms(nad_sms(j)) = zero
925 lt_sms(nad_sms(n2))= zero
926 nad_sms(j) =nad_sms(j)+1
927 nad_sms(n2)=nad_sms(n2)+1
929 lt_sms(nad_sms(j)) = zero
930 lt_sms(nad_sms(n3))= zero
931 nad_sms(j) =nad_sms(j)+1
932 nad_sms(n3)=nad_sms(n3)+1
934 lt_sms(nad_sms(j)) = zero
935 lt_sms(nad_sms(n4))= zero
936 nad_sms(j) =nad_sms(j)+1
937 nad_sms(n4)=nad_sms(n4)+1
943 lt_sms(nad_sms(t2main_sms(k,i))) = half*ltij
944 lt_sms(nad_sms(t2main_sms(kk,j)))= half*ltij
945 nad_sms(t2main_sms(k,i)) =nad_sms(t2main_sms(k,i))+1
946 nad_sms(t2main_sms(kk,j))=nad_sms(t2main_sms(kk,j))+1
955 lt_sms(nad_sms(j)) = ltij
956 lt_sms(nad_sms(n1))= ltij
957 nad_sms(j) =nad_sms(j)+1
958 nad_sms(n1)=nad_sms(n1)+1
960 lt_sms(nad_sms(j)) = ltij
961 lt_sms(nad_sms(n2))= ltij
962 nad_sms(j) =nad_sms(j)+1
963 nad_sms(n2)=nad_sms(n2)+1
965 lt_sms(nad_sms(j)) = ltij
966 lt_sms(nad_sms(n3))= ltij
967 nad_sms(j) =nad_sms(j)+1
968 nad_sms(n3)=nad_sms(n3)+1
970 lt_sms(nad_sms(j)) = ltij
971 lt_sms(nad_sms(n4))= ltij
972 nad_sms(j) =nad_sms(j)+1
973 nad_sms(n4)=nad_sms(n4)+1
978 IF (t2main_sms(k,i)/=t2main_sms(kk,j))
THEN
979 lt_sms(nad_sms(t2main_sms(k,i))) = zero
980 lt_sms(nad_sms(t2main_sms(kk,j)))= zero
981 nad_sms(t2main_sms(k,i)) =nad_sms(t2main_sms(k,i))+1
982 nad_sms(t2main_sms(kk,j))=nad_sms(t2main_sms(kk,j))+1
993 DO kj=jad_sms(i),lad_sms(i)
997 IF (t2main_sms(1,j) == 1)
THEN
999 lt_sms(nad_sms(j)) = ltij
1000 lt_sms(nad_sms(n1))= ltij
1002 nad_sms(n1)=nad_sms(n1)+1
1004 lt_sms(nad_sms(j)) = ltij
1006 nad_sms(j) =nad_sms(j)+1
1007 nad_sms(n2)=nad_sms(n2)+1
1009 lt_sms(nad_sms(j)) = ltij
1010 lt_sms(nad_sms(n3))= ltij
1011 nad_sms(j) =nad_sms(j)+1
1012 nad_sms(n3)=nad_sms(n3)+1
1014 lt_sms(nad_sms(j)) = ltij
1015 lt_sms(nad_sms(n4))= ltij
1016 nad_sms(j) =nad_sms(j)+1
1017 nad_sms(n4)=nad_sms(n4)+1
1022 lt_sms(nad_sms(j)) = zero
1023 lt_sms(nad_sms(n1))= zero
1024 nad_sms(j) =nad_sms(j)+1
1025 nad_sms(n1)=nad_sms(n1)+1
1027 lt_sms(nad_sms(j)) = zero
1028 lt_sms(nad_sms(n2))= zero
1029 nad_sms(j) =nad_sms(j)+1
1030 nad_sms(n2)=nad_sms(n2)+1
1032 lt_sms(nad_sms(j)) = zero
1033 lt_sms(nad_sms(n3))= zero
1034 nad_sms(j) =nad_sms(j)+1
1035 nad_sms(n3)=nad_sms(n3)+1
1037 lt_sms(nad_sms(j)) = zero
1038 lt_sms(nad_sms(n4))= zero
1039 nad_sms(j) =nad_sms(j)+1
1040 nad_sms(n4)=nad_sms(n4)+1
1045 IF (t2main_sms(k,i)/=t2main_sms(kk,j))
THEN
1046 lt_sms(nad_sms(t2main_sms(k,i))) = half*ltij
1047 lt_sms(nad_sms(t2main_sms(kk,j)))= half*ltij
1048 nad_sms(t2main_sms(k,i)) =nad_sms(t2main_sms(k,i))+1
1049 nad_sms(t2main_sms(kk,j))=nad_sms(t2main_sms(kk,j))+1
1061 ELSEIF(nty==2.AND.ilagm==0.AND.(ilev==25.or.ilev==26))
THEN
1066 i=intbuf_tab(n)%NSV(ii)
1069 IF(weight(abs(i))/=1)cycle
1071 l=intbuf_tab(n)%IRTLM(ii)
1072 n1 = intbuf_tab(n)%IRECTM(4*(l-1)+1)
1073 n2 = intbuf_tab(n)%IRECTM(4*(l-1)+2)
1074 n3 = intbuf_tab(n)%IRECTM(4*(l-1)+3)
1075 n4 = intbuf_tab(n)%IRECTM(4*(l-1)+4)
1077 IF(nativ_sms(i)==0.AND.nativ_sms(n1)==0
1078 . .AND.nativ_sms(n2)==0
1079 . .AND.nativ_sms(n3)==0
1080 . .AND.nativ_sms(n4)==0) cycle
1084 lt_sms(nad_sms(i)) = -dmint2(1,ksn)
1085 lt_sms(nad_sms(n1))= -dmint2(1,ksn)
1086 nad_sms(i) =nad_sms(i)+1
1087 nad_sms(n1)=nad_sms(n1)+1
1090 lt_sms(nad_sms(i)) = -dmint2(2,ksn)
1091 lt_sms(nad_sms(n2))= -dmint2(2,ksn)
1092 nad_sms(i) =nad_sms(i)+1
1093 nad_sms(n2)=nad_sms(n2)+1
1095 lt_sms(nad_sms(i)) = -dmint2(3,ksn)
1096 lt_sms(nad_sms(n3))= -dmint2(3,ksn)
1097 nad_sms(i) =nad_sms(i)+1
1100 lt_sms(nad_sms(i)) = -dmint2(4,ksn)
1101 lt_sms(nad_sms(n4))= -dmint2(4,ksn)
1102 nad_sms(i) =nad_sms(i)+1
1103 nad_sms(n4)=nad_sms(n4)+1
1110 lt_sms(nad_sms(i)) = ltij
1111 lt_sms(nad_sms(n1))= ltij
1112 nad_sms(i) =nad_sms(i)+1
1113 nad_sms(n1)=nad_sms(n1)+1
1116 lt_sms(nad_sms(i)) = ltij
1117 lt_sms(nad_sms(n2))= ltij
1118 nad_sms(i) =nad_sms(i)+1
1119 nad_sms(n2)=nad_sms(n2)+1
1121 lt_sms(nad_sms(i)) = ltij
1122 lt_sms(nad_sms(n3))= ltij
1123 nad_sms(i) =nad_sms(i)+1
1124 nad_sms(n3)=nad_sms(n3)+1
1126 lt_sms(nad_sms(i)) = ltij
1127 lt_sms(nad_sms(n4))= ltij
1129 nad_sms(n4)=nad_sms(n4)+1
1133 ELSEIF(nty==2.AND.ilagm==0.AND.(ilev==27.or.ilev==28))
THEN
1138 i=intbuf_tab(n)%NSV(ii)
1141 IF (intbuf_tab(n)%IRUPT(ii)==0)
THEN
1143 l=intbuf_tab(n)%IRTLM(ii)
1144 n1 = intbuf_tab(n)%IRECTM(4*(l-1)+1)
1145 n2 = intbuf_tab(n)%IRECTM(4*(l-1)+2)
1146 n3 = intbuf_tab(n)%IRECTM(4*(l-1)+3)
1147 n4 = intbuf_tab(n)%IRECTM(4*(l-1)+4)
1148 fac_scal_i = t2fac_sms(i)
1150 IF(nativ_sms(i)==0.AND.nativ_sms(n1)==0
1151 . .AND.nativ_sms(n2)==0
1152 . .AND.nativ_sms(n3)==0
1153 . .AND.nativ_sms(n4)==0) cycle
1156 DO kj=jad_sms(i),lad_sms(i)
1160 fac_scal_j = t2fac_sms(j)
1162 IF (t2main_sms(1,j) == 1)
THEN
1164 ltij = ltij*fac_scal_i
1166 lt_sms(nad_sms(j)) = ltij
1167 lt_sms(nad_sms(n1))= ltij
1168 nad_sms(j) =nad_sms(j)+1
1169 nad_sms(n1)=nad_sms(n1)+1
1171 lt_sms(nad_sms(j)) = ltij
1174 nad_sms(n2)=nad_sms(n2)+1
1176 lt_sms(nad_sms(j)) = ltij
1177 lt_sms(nad_sms(n3))= ltij
1178 nad_sms(j) =nad_sms(j)+1
1179 nad_sms(n3)=nad_sms(n3)+1
1181 lt_sms(nad_sms(j)) = ltij
1182 lt_sms(nad_sms(n4))= ltij
1183 nad_sms(j) =nad_sms(j)+1
1184 nad_sms(n4)=nad_sms(n4)+1
1186 ELSEIF(t2main_sms(6,j)==0)
THEN
1189 ltij = ltij*
max(fac_scal_i,fac_scal_j)
1191 lt_sms(nad_sms(j)) = zero
1192 lt_sms(nad_sms(n1))= zero
1193 nad_sms(j) =nad_sms(j)+1
1194 nad_sms(n1)=nad_sms(n1)+1
1196 lt_sms(nad_sms(j)) = zero
1197 lt_sms(nad_sms(n2))= zero
1198 nad_sms(j) =nad_sms(j)+1
1199 nad_sms(n2)=nad_sms(n2)+1
1201 lt_sms(nad_sms(j)) = zero
1202 lt_sms(nad_sms(n3))= zero
1203 nad_sms(j) =nad_sms(j)+1
1204 nad_sms(n3)=nad_sms(n3)+1
1206 lt_sms(nad_sms(j)) = zero
1207 lt_sms(nad_sms(n4))= zero
1214 IF (t2main_sms(k,i)/=t2main_sms(kk,j))
THEN
1215 lt_sms(nad_sms(t2main_sms(k,i))) = half*ltij
1216 lt_sms(nad_sms(t2main_sms(kk,j)))= half*ltij
1217 nad_sms(t2main_sms(k,i)) =nad_sms(t2main_sms(k,i))+1
1218 nad_sms(t2main_sms(kk,j))=nad_sms(t2main_sms(kk,j))+1
1227 lt_sms(nad_sms(j)) = ltij
1228 lt_sms(nad_sms(n1))= ltij
1229 nad_sms(j) =nad_sms(j)+1
1230 nad_sms(n1)=nad_sms(n1)+1
1232 lt_sms(nad_sms(j)) = ltij
1234 nad_sms(j) =nad_sms(j)+1
1235 nad_sms(n2)=nad_sms(n2)+1
1237 lt_sms(nad_sms(j)) = ltij
1238 lt_sms(nad_sms(n3))= ltij
1239 nad_sms(j) =nad_sms(j)+1
1240 nad_sms(n3)=nad_sms(n3)+1
1242 lt_sms(nad_sms(j)) = ltij
1243 lt_sms(nad_sms(n4))= ltij
1244 nad_sms(j) =nad_sms(j)+1
1245 nad_sms(n4)=nad_sms(n4)+1
1250 IF (t2main_sms(k,i)/=t2main_sms(kk,j))
THEN
1251 lt_sms(nad_sms(t2main_sms(k,i))) = zero
1252 lt_sms(nad_sms(t2main_sms(kk,j)))= zero
1253 nad_sms(t2main_sms(k,i)) =nad_sms(t2main_sms
1254 nad_sms(t2main_sms(kk,j))=nad_sms(t2main_sms(kk,j))+1
1265 DO kj=jad_sms(i),lad_sms(i)
1269 IF (t2main_sms(1,j) == 1)
THEN
1271 lt_sms(nad_sms(j)) = ltij
1272 lt_sms(nad_sms(n1))= ltij
1274 nad_sms(n1)=nad_sms(n1)+1
1276 lt_sms(nad_sms(j)) = ltij
1277 lt_sms(nad_sms(n2))= ltij
1278 nad_sms(j) =nad_sms(j)+1
1279 nad_sms(n2)=nad_sms(n2)+1
1281 lt_sms(nad_sms(j)) = ltij
1282 lt_sms(nad_sms(n3))= ltij
1283 nad_sms(j) =nad_sms(j)+1
1284 nad_sms(n3)=nad_sms(n3)+1
1286 lt_sms(nad_sms(j)) = ltij
1287 lt_sms(nad_sms(n4))= ltij
1288 nad_sms(j) =nad_sms(j)+1
1289 nad_sms(n4)=nad_sms(n4)+1
1294 lt_sms(nad_sms(j)) = zero
1295 lt_sms(nad_sms(n1))= zero
1296 nad_sms(j) =nad_sms(j)+1
1297 nad_sms(n1)=nad_sms(n1)+1
1299 lt_sms(nad_sms(j)) = zero
1300 lt_sms(nad_sms(n2))= zero
1301 nad_sms(j) =nad_sms(j)+1
1302 nad_sms(n2)=nad_sms(n2)+1
1304 lt_sms(nad_sms(j)) = zero
1305 lt_sms(nad_sms(n3))= zero
1306 nad_sms(j) =nad_sms(j)+1
1307 nad_sms(n3)=nad_sms(n3)+1
1309 lt_sms(nad_sms(j)) = zero
1310 lt_sms(nad_sms(n4))= zero
1311 nad_sms(j) =nad_sms(j)+1
1312 nad_sms(n4)=nad_sms(n4)+1
1317 IF (t2main_sms(k,i)/=t2main_sms(kk,j))
THEN
1318 lt_sms(nad_sms(t2main_sms(k,i))) = half*ltij
1319 lt_sms(nad_sms(t2main_sms(kk,j)))= half*ltij
1320 nad_sms(t2main_sms(k,i)) =nad_sms(t2main_sms(k,i))+1
1321 nad_sms(t2main_sms(kk,j))=nad_sms(t2main_sms(kk,j))+1
1336 IF(weight(abs(i))/=1)cycle
1339 n1 = intbuf_tab(n)%IRECTM(4*(l-1)+1)
1340 n2 = intbuf_tab(n)%IRECTM(4*(l-1)+2)
1341 n3 = intbuf_tab(n)%IRECTM(4*(l-1)+3)
1342 n4 = intbuf_tab(n)%IRECTM(4*(l-1)+4)
1344 IF(nativ_sms(i)==0.AND.nativ_sms(n1)==0
1345 . .AND.nativ_sms(n2)==0
1346 . .AND.nativ_sms(n3)==0
1347 . .AND.nativ_sms(n4)==0) cycle
1351 lt_sms(nad_sms(i)) = -dmint2(1,ksn)
1352 lt_sms(nad_sms(n1))= -dmint2(1,ksn)
1353 nad_sms(i) =nad_sms(i)+1
1354 nad_sms(n1)=nad_sms(n1)+1
1357 lt_sms(nad_sms(i)) = -dmint2(2,ksn)
1358 lt_sms(nad_sms(n2))= -dmint2(2,ksn)
1359 nad_sms(i) =nad_sms(i)+1
1360 nad_sms(n2)=nad_sms(n2)+1
1362 lt_sms(nad_sms(i)) = -dmint2(3,ksn
1363 lt_sms(nad_sms(n3))= -dmint2(3,ksn)
1364 nad_sms(i) =nad_sms(i)+1
1365 nad_sms(n3)=nad_sms(n3)+1
1367 lt_sms(nad_sms(i)) = -dmint2(4,ksn)
1368 lt_sms(nad_sms(n4))= -dmint2(4,ksn)
1369 nad_sms(i) =nad_sms(i)+1
1370 nad_sms(n4)=nad_sms(n4)+1
1377 lt_sms(nad_sms(i)) = ltij
1378 lt_sms(nad_sms(n1))= ltij
1379 nad_sms(i) =nad_sms(i)+1
1380 nad_sms(n1)=nad_sms(n1)+1
1383 lt_sms(nad_sms(i)) = ltij
1384 lt_sms(nad_sms(n2))= ltij
1385 nad_sms(i) =nad_sms(i)+1
1386 nad_sms(n2)=nad_sms(n2)+1
1388 lt_sms(nad_sms(i)) = ltij
1389 lt_sms(nad_sms(n3))= ltij
1390 nad_sms(i) =nad_sms(i)+1
1391 nad_sms(n3)=nad_sms(n3)+1
1393 lt_sms(nad_sms(i)) = ltij
1394 lt_sms(nad_sms(n4))= ltij
1395 nad_sms(i) =nad_sms(i)+1
1396 nad_sms(n4)=nad_sms(n4)+1
1427 IF(tagmsr_rby_sms(msr) /= 0)
THEN
1435 IF(jad_sms(i+1) > jad_sms(i)) nodxi_sms(i)=1
1436 DO kj=jad_sms(i),jad_sms(i+1)-1
1439 IF(itf(kinet(j))/=0)
THEN
1443 n = tagslv_rby_sms(j)
1459 DO ij=jad_sms(i),jad_sms(i+1)-1
1463 IF(lt_sms(ij)==zero.OR.lt_sms(ji)==zero)
THEN
1468 ltij=
min(lt_sms(ij),lt_sms(ji))
1483 loc_proc = ispmd + 1
1485 DO nn=itask+1,nisky_sms,nthread
1487 IF(p/=loc_proc) cycle
1491 m = tagslv_rby_sms(i)
1492 n = tagslv_rby_sms(j)
1493 IF(m/=0.AND.n==m)
THEN
1511 IF(p/=loc_proc) cycle
1515 IF(i==0.AND.j==0) cycle
1517 nadi_sms(i)=nadi_sms(i)+1
1518 nadi_sms(j)=nadi_sms(j)+1
1524 jadi_sms(n)=jadi_sms(n-1)+nadi_sms(n-1)
1525 kadi_sms(n)=jadi_sms(n)
1530 IF(p/=loc_proc) cycle
1534 IF(i==0.AND.j==0) cycle
1538 lti_sms(kk) =-mskyi_sms(nn)
1539 kadi_sms(i) = kadi_sms(i)+1
1543 lti_sms(kk) =-mskyi_sms(nn)
1544 kadi_sms(j) = kadi_sms(j)+1
1553 CALL spmd_list_sms(iskyi_sms,fr_sms,fr_rms,list_sms,list_rms,
1554 . npby ,tagslv_rby_sms)
1563 1 itask ,nodft ,nodlt ,ms ,nodii_sms ,
1564 2 jad_sms ,jdi_sms ,lt_sms ,diag_sms ,indx1_sms ,
1565 3 indx2_sms,iad_elem,fr_elem ,npby ,lpby ,
1566 4 lad_sms ,kad_sms ,jsm_sms ,mskyi_sms,iskyi_sms ,
1567 5 jadi_sms,jdii_sms ,lti_sms ,nodxi_sms ,fr_sms ,
1568 6 fr_rms ,list_sms ,list_rms ,mskyi_fi_sms,ilink ,
1569 7 rlink ,nnlink ,lnlink ,tag_lnk_sms,ljoint,
1570 8 iadcj ,fr_cj ,itab ,weight ,imv ,
1571 9 mv ,mv6 ,mw6 ,nprw ,lprw ,
1572 a fr_wall ,nrwl_sms ,tagmsr_rby_sms,rby ,awork ,
1574 c vr ,tagslv_rby_sms,irbe2,lrbe2 ,irbe3 ,
1575 d lrbe3 ,iad_rbe3m,fr_rbe3m )
1579 DEALLOCATE(imv, mv, mv6)