37
38
39
43
44
45
46#include "implicit_f.inc"
47#include "comlock.inc"
48
49
50
51#include "com01_c.inc"
52#include "task_c.inc"
53#include "parit_c.inc"
54#include "spmd_c.inc"
55
56
57
58 INTEGER NIN,NMN,IFORM
59 INTEGER MSR_L(*),MNDD(*)
60 INTEGER CAND_E(*)
61 INTEGER II_STOK,INTTH,IRECTT(4,*)
62
63
64
65 INTEGER I, J, IP0, IP1, II,IFLAGLOADP,
66 . N,L,PP,J_STOK,IAD(NSPMD),
67 . TAG(NMN),NM(4),NODFI,PTR, IERROR1,IERROR2, IERROR3,
68 . IERROR4,LSKYFI
69
70
71
72
73
74
75
76 iflagloadp = 0
77
78 IF(nspmd > 1.AND.(intth == 2.OR.iflagloadp > 0)) THEN
80
81 tag(1:nmn)=0
82 nodfi = 0
83 nmnfi(nin)%P(1:nspmd) = 0
84 DO i=1,ii_stok
85 l = cand_e(i)
86 IF(l/=0) THEN
87 nm(1:4) = irectt(1:4,l)
88 DO j=1,4
89 ii = nm(j)
90 pp = mndd(ii)
91 IF(pp/=0.AND.tag(ii) == 0) THEN
92 nodfi = nodfi + 1
94 tag(ii)=1
95 ENDIF
96 ENDDO
97 ENDIF
98 ENDDO
99
100 IF(
ASSOCIATED(
nmvfi(nin)%P ))
DEALLOCATE(
nmvfi(nin)%P)
101 ALLOCATE(
nmvfi(nin)%P(nodfi),stat=ierror1)
102
103 iad(1)=1
104 DO i=1,nspmd-1
105 iad(i+1) = iad(i)+
nmnfi(nin)%P(i)
106 ENDDO
107
108
109 tag(1:nmn)=0
110 DO i=1,ii_stok
111 l = cand_e(i)
112 IF(l/=0) THEN
113 nm(1:4) = irectt(1:4,l)
114 DO j=1,4
115 ii=nm(j)
116 pp = mndd(ii)
117 IF(pp/=0.AND.tag(ii)==0) THEN
118 ptr = iad(pp)
119 nmvfi(nin)%P(ptr) = ii
120 tag(ii)=1
121
122 msr_l
123 ENDIF
124 ENDDO
125 ENDIF
126 ENDDO
127
128
129
130 IF(iform /= 0) THEN
131 IF(iparit==0) THEN
132 IF(nodfi>0)ALLOCATE
133 DO i = 1, nodfi*nthread
135 ENDDO
136 ELSE
138 lskyfi = nodfi*multimax
140 IF(lskyfi>0) THEN
141 ALLOCATE(
iskyfi(nin)%P(lskyfi),stat=ierror3
142 ALLOCATE(
ftheskyfi(nin)%P(lskyfi),stat=ierror4)
143 ENDIF
144 ENDIF
145 ENDIF
146
147 IF (iflagloadp > 0) THEN
148 IF(nodfi>0) THEN
150 ALLOCATE(
tagncontfi(nin)%P(nodfi),stat=ierror2)
151 DO i = 1, nodfi
153 ENDDO
154 ENDIF
155 ENDIF
156
158
159 ENDIF
160
161 RETURN
type(int_pointer), dimension(:), allocatable nmvfi
type(int_pointer), dimension(:), allocatable nmnfi
type(real_pointer), dimension(:), allocatable ftheskyfi
type(int_pointer), dimension(:), allocatable iskyfi
integer, dimension(:), allocatable nlskyfi
type(real_pointer), dimension(:), allocatable fthefi
type(int_pointer), dimension(:), allocatable tagncontfi