32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "com01_c.inc"
40#include "sphcom.inc"
41#include "task_c.inc"
42
43
44
45 INTEGER KXSP(NISP,*),NNSPH
47 . x(3,*),spbuf(*)
48
49
50
51 INTEGER I3000
52 INTEGER N, INOD
53 INTEGER INP(NNSPH*3),CNT,LRECV
55 3 xi,yi,zi,nx,ny,nz,normn
56
57 IF (numsph+maxpjet==0) GOTO 100
58
59 i3000 = 3000
60 cnt = 0
61
62 DO 200 n=1,numsph+maxpjet
63 inod=kxsp(3,n)
64 xi =x(1,inod)
65 yi =x(2,inod)
66 zi =x(3,inod)
67 nx= one
68 ny=-one
69 nz=-one
70
71
72
73 normn=sqrt(nx**2+ny**2+nz**2)
74 IF (normn==zero) THEN
75 nx=three1000
76 ny=three1000
77 nz=three1000
78 ELSE
79 nx=three1000*nx/normn
80 ny=three1000*ny/normn
81 nz=three1000*nz/normn
82 ENDIF
83 cnt = cnt + 1
84 inp(cnt) = nint(nx)
85 cnt = cnt + 1
86 inp(cnt) = nint(ny)
87 cnt = cnt + 1
88 inp(cnt) = nint(nz)
89 nx=-one
90 ny= one
91 nz=-one
92 normn=sqrt(nx**2+ny**2+nz**2)
93 IF (normn==zero) THEN
94 nx=three1000
95 ny=three1000
96 nz=three1000
97 ELSE
98 nx=three1000*nx/normn
99 ny=three1000*ny/normn
100 nz=three1000*nz/normn
101 ENDIF
102 cnt = cnt + 1
103 inp(cnt) = nint(nx)
104 cnt = cnt + 1
105 inp(cnt) = nint(ny)
106 cnt = cnt + 1
107 inp(cnt) = nint(nz)
108 nx=-one
109 ny=-one
110 nz= one
111 normn=sqrt(nx**2+ny**2+nz**2)
112 IF (normn==zero) THEN
113 nx=three1000
114 ny=three1000
115 nz=three1000
116 ELSE
117 nx=three1000*nx/normn
118 ny=three1000*ny/normn
119 nz=three1000*nz/normn
120 ENDIF
121 cnt = cnt + 1
122 inp(cnt) = nint(nx)
123 cnt = cnt + 1
124 inp(cnt) = nint(ny)
125 cnt = cnt + 1
126 inp(cnt) = nint(nz)
127 nx= one
128 ny= one
129 nz= one
130 normn=sqrt(nx**2+ny**2+nz**2)
131 IF (normn==zero) THEN
132 nx=three1000
133 ny=three1000
134 nz=three1000
135 ELSE
136 nx=three1000*nx/normn
137 ny=three1000*ny/normn
138 nz=three1000*nz/normn
139 ENDIF
140 cnt = cnt + 1
141 inp(cnt) = nint(nx)
142 cnt = cnt + 1
143 inp(cnt) = nint(ny)
144 cnt = cnt + 1
145 inp(cnt) = nint(nz)
146 200 CONTINUE
147 100 CONTINUE
148 IF (nspmd > 1) THEN
150 ELSE
151 lrecv = cnt
152 END IF
153 IF (ispmd==0) THEN
155 ENDIF
156
157 RETURN
subroutine spmd_igath(srbuf, len, lrecv)
void write_s_c(int *w, int *len)