33
34
35
36
37
38
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "com01_c.inc"
47#include "param_c.inc"
48
49
50
51 INTEGER :: ITHGRP(NITHGR,*),ITHBUF(*),IPARG(NPARG,*),DD_IAD(NSPMD
52
53
54
55 INTEGER NLOCAL
57
58
59
60 INTEGER :: P,NT,NG,I,K,NNE,IAD,ITYP,IH,NFT,ITY,NEL,N1,N2
61
62 IF(iflag==0) THEN
63
64
65
66 DO ng = 1, ngroup
67 iparg(31,ng) = iparg(3,ng)
68 ENDDO
69 ENDIF
70
71
72
73 IF (nspmd>1) THEN
74
75 DO nt = 1, nthgrp2
76 ityp=ithgrp(2,nt)
77 nne =ithgrp(4,nt)
78 iad =ithgrp(5,nt)
79 IF((ityp >= 1 .AND. ityp <= 7) .OR. ityp == 50 .OR. ityp == 51 .OR. ityp == 100)THEN
80 DO ih = 1, nne
81 k = ithbuf(iad-1+ih)
82 DO ng = 1, ngroup
83 ity = iparg(5,ng)
84 IF(ity==ityp) THEN
85 nel = iparg(2,ng)
86 nft = iparg(3,ng)
87 p = iparg(32,ng)
88 IF (k>nft.AND.k<=nft+nel) THEN
89 ithbuf(iad+nne-1+ih) = p
90 ENDIF
91 ENDIF
92 ENDDO
93 ENDDO
94 ELSEIF (ityp==0) THEN
95
96
97
98
99
100
101
102
103
104
105 ELSEIF (ityp==109) THEN
106 DO ih = 1, nne
107 k = ithbuf(iad-1+ih)
108 n1 = ixri(2,k)
109 n2 = ixri(3,k)
110 DO p = 1, nspmd
113 ithbuf(iad+nne-1+ih) = p
114 GOTO 109
115 ENDIF
116 ENDDO
117 109 CONTINUE
118 ENDDO
119 ENDIF
120 ENDDO
121 ENDIF
122
123 RETURN