37
38 USE my_alloc_mod
39 use element_mod , only : nixt,nixr,nixp
40
41
42
43#include "implicit_f.inc"
44
45
46#include "com01_c.inc"
47#include "com04_c.inc"
48#include "param_c.inc"
49#include "task_c.inc"
50#include "spmd_c.inc"
51
52
53
54 INTEGER IPARG(NPARG,*),
55 . IXT(NIXT,*),IXP(NIXP,*),
56 . IXR(NIXR,*),EL2FA(*),INUM(*),
57 . NBF,IADG(NSPMD,*),INUMX1(*)
58 INTEGER DD_IAD(NSPMD+1,*), IADD(*), NBPART,
59 . NANIM1D_L,BUF
60
61 INTEGER NG, ITY, LFT, LLT, N, I,
62 . NEL, IAD, NFT,MLW,
63 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,
64 . NBF2
65 INTEGER,DIMENSION(:),ALLOCATABLE:: WA
66
67 CALL my_alloc(wa, nbf+nanim1d_l)
68
69 nn1 = 1
70 nn2 = 1
71 nn3 = 1
72 nn4 = nn3
73 nn5 = nn4
74 nn6 = nn5
75 nn7 = nn6 + numelt
76 nn8 = nn7 + numelp
77 nn9 = nn8 + numelr
78 nn10= nn9
79
80 DO 490 ng=1,ngroup
81 mlw =iparg(1,ng)
82 nel =iparg(2,ng)
83 nft =iparg(3,ng)
84 iad =iparg(4,ng)
85 ity =iparg(5,ng)
86 lft=1
87 llt=nel
88
89
90
91 IF(ity==4)THEN
92 DO i=lft,llt
93 n = i + nft
94 inum(el2fa(nn6+n)) = ixt(nixt,n)
95 ENDDO
96
97
98
99 ELSEIF(ity==5)THEN
100 DO i=lft,llt
101 n = i + nft
102 inum(el2fa(nn7+n)) = ixp(nixp,n)
103 ENDDO
104
105
106
107 ELSEIF(ity==6)THEN
108 DO i=lft,llt
109 n = i + nft
110 inum(el2fa(nn8+n)) = ixr(nixr,n)
111 IF(mlw==3)inum(el2fa(nn8+n)+1) = ixr(nixr,n)
112 ENDDO
113
114 ELSE
115 ENDIF
116 490 CONTINUE
117
118 IF (nspmd == 1) THEN
121 ELSE
122 DO i = 1, nbf
123 wa(i) = inum(i)
124 ENDDO
125 DO i=1,nanim1d_l
126 wa(nbf+i)=inumx1(i)
127 ENDDO
128 nbf2 = nbf+nanim1d_l
129 IF (ispmd==0) THEN
130 buf = nb1dg+nanim1d
131 ELSE
132 buf = 1
133 ENDIF
135 ENDIF
136
137
138 DEALLOCATE(wa)
139 RETURN
subroutine spmd_iget_partn(size, nbf_l, np, nbpart, iadg, srbuf, iflag)
void write_i_c(int *w, int *len)