33
34
35
36
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "com04_c.inc"
45#include "param_c.inc"
46
47
48
49 INTEGER PROC, LEN_AM, LWSAV_L, LPRW(*), NPRW(*),
50 . CEP(*)
52 . rwl(nrwlp,*), rwsav(*)
53
54
55
56 INTEGER NLOCAL
58
59
60
61 INTEGER I, J, K, KK, N, NN, IE, NE, ITY, IFQ, N4,
62 . ILP, NSL, NSL_L, KSAV, KSAV_L
63 my_real ,
DIMENSION(:),
ALLOCATABLE :: rwsav_l
64 my_real ,
DIMENSION(:,:),
ALLOCATABLE :: rwl_l
65
66 IF(nrwall>0) THEN
67 ALLOCATE(rwl_l(nrwlp,nrwall))
68 IF(lwsav_l>0) ALLOCATE(rwsav_l(3*lwsav_l))
69 k = 0
70 ksav = 0
71 ksav_l = 0
72 DO n = 1, nrwall
73 DO j = 1, nrwlp
74 rwl_l(j,n) = rwl(j,n)
75 ENDDO
76
77 nsl = nprw(n)
78
79 ifq = nint(rwl(15,n))
80 IF(ifq>0) THEN
81 nsl_l = 0
82 DO kk = 1, nsl
83 nn = lprw(k+kk)
84 IF(
nlocal(nn,proc+1)==1)
THEN
85 rwsav_l(ksav_l+3*nsl_l+1) = rwsav(ksav+3*(kk-1)+1)
86 rwsav_l(ksav_l+3*nsl_l+2) = rwsav(ksav+3*(kk-1)+2)
87 rwsav_l(ksav_l+3*nsl_l+3) = rwsav(ksav+3*(kk-1)+3)
88 nsl_l = nsl_l + 1
89 ENDIF
90 ENDDO
91 ksav = ksav + 3*nsl
92 ksav_l = ksav_l + 3*nsl_l
93 ENDIF
94
95 k = k + nsl
96
97 n4 = n + 3*nrwall
98 IF(nprw(n4)==-1) THEN
99
100 ne = nint(rwl(8,n))
101 IF(ne>0)THEN
102 ilp = 0
103 DO j = 1, ne
104 ie = lprw(k+j)/10
105 IF(cep(ie)==proc) THEN
106 ilp = ilp + 1
107 ENDIF
108 ENDDO
109 rwl_l(8,n) = ilp
110 k = k + ne
111 ENDIF
112 ENDIF
113 ENDDO
114
116 len_am = len_am + nrwlp*nrwall
117 DEALLOCATE(rwl_l)
118 IF(lwsav_l>0) THEN
120 len_am = len_am + lwsav_l*3
121 DEALLOCATE(rwsav_l)
122 ENDIF
123 ENDIF
124
125 RETURN
subroutine write_db(a, n)