Line data Source code
1 : !--------------------------------------------------------------------------------------------------!
2 : ! CP2K: A general program to perform molecular dynamics simulations !
3 : ! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4 : ! !
5 : ! SPDX-License-Identifier: GPL-2.0-or-later !
6 : !--------------------------------------------------------------------------------------------------!
7 : ! **************************************************************************************************
8 : !> \brief routines to contract density matrix blocks with the for center
9 : !> integrals to yield the Kohn-Sham matrix. The specialized routines
10 : !> are about 1.2-2.0 as fast as the default one.
11 : !> \par History
12 : !> 10.2009 created [Joost VandeVondele]
13 : !> \author Joost VandeVondele
14 : ! **************************************************************************************************
15 : MODULE hfx_contract_block
16 : USE kinds, ONLY: dp
17 : #include "../base/base_uses.f90"
18 :
19 : IMPLICIT NONE
20 : PRIVATE
21 : CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'hfx_contract_block'
22 : PUBLIC :: contract_block
23 : CONTAINS
24 : ! **************************************************************************************************
25 : !> \brief ...
26 : !> \param ma_max ...
27 : !> \param mb_max ...
28 : !> \param mc_max ...
29 : !> \param md_max ...
30 : !> \param kbd ...
31 : !> \param kbc ...
32 : !> \param kad ...
33 : !> \param kac ...
34 : !> \param pbd ...
35 : !> \param pbc ...
36 : !> \param pad ...
37 : !> \param pac ...
38 : !> \param prim ...
39 : !> \param scale ...
40 : ! **************************************************************************************************
41 70316936 : SUBROUTINE contract_block(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
42 : INTEGER :: ma_max, mb_max, mc_max, md_max
43 : REAL(KIND=dp) :: kbd(mb_max*md_max), kbc(mb_max*mc_max), &
44 : kad(ma_max*md_max), kac(ma_max*mc_max), pbd(mb_max*md_max), &
45 : pbc(mb_max*mc_max), pad(ma_max*md_max), pac(ma_max*mc_max), &
46 : prim(ma_max*mb_max*mc_max*md_max), scale
47 :
48 : #if !defined (__LIBINT)
49 : MARK_USED(ma_max)
50 : MARK_USED(mb_max)
51 : MARK_USED(mc_max)
52 : MARK_USED(md_max)
53 : MARK_USED(kbd)
54 : MARK_USED(kbc)
55 : MARK_USED(kad)
56 : MARK_USED(kac)
57 : MARK_USED(pbd)
58 : MARK_USED(pbc)
59 : MARK_USED(pad)
60 : MARK_USED(pac)
61 : MARK_USED(prim)
62 : MARK_USED(scale)
63 : CPABORT("libint not compiled in")
64 : #else
65 40228613 : SELECT CASE (ma_max)
66 : CASE (1)
67 31968278 : SELECT CASE (mb_max)
68 : CASE (1)
69 16567596 : SELECT CASE (mc_max)
70 : CASE (1)
71 11928149 : SELECT CASE (md_max)
72 : CASE (1)
73 11844648 : CALL block_1_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
74 : CASE (2)
75 10391 : CALL block_1_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
76 : CASE (3)
77 4325884 : CALL block_1_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
78 : CASE (4)
79 155778 : CALL block_1_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
80 : CASE (5)
81 176853 : CALL block_1_1_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
82 : CASE (6)
83 11 : CALL block_1_1_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
84 : CASE (7)
85 23226 : CALL block_1_1_1_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
86 : CASE (9)
87 10 : CALL block_1_1_1_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
88 : CASE (10)
89 9 : CALL block_1_1_1_10(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
90 : CASE (11)
91 9 : CALL block_1_1_1_11(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
92 : CASE (15)
93 10 : CALL block_1_1_1_15(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
94 : CASE DEFAULT
95 16536829 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
96 : END SELECT
97 : CASE (2)
98 12266781 : SELECT CASE (md_max)
99 : CASE (1)
100 35441 : CALL block_1_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
101 : CASE (2)
102 5028 : CALL block_1_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
103 : CASE (3)
104 31999 : CALL block_1_1_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
105 : CASE (4)
106 7 : CALL block_1_1_2_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
107 : CASE (5)
108 10255 : CALL block_1_1_2_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
109 : CASE (6)
110 8 : CALL block_1_1_2_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
111 : CASE (7)
112 742 : CALL block_1_1_2_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
113 : CASE (9)
114 6 : CALL block_1_1_2_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
115 : CASE (10)
116 5 : CALL block_1_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
117 : CASE (11)
118 4 : CALL block_1_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
119 : CASE (15)
120 6 : CALL block_1_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
121 : CASE DEFAULT
122 83501 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
123 : END SELECT
124 : CASE (3)
125 9282200 : SELECT CASE (md_max)
126 : CASE (1)
127 7954985 : CALL block_1_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
128 : CASE (2)
129 15297 : CALL block_1_1_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
130 : CASE (3)
131 4070915 : CALL block_1_1_3_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
132 : CASE (4)
133 39352 : CALL block_1_1_3_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
134 : CASE (5)
135 126860 : CALL block_1_1_3_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
136 : CASE (6)
137 7 : CALL block_1_1_3_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
138 : CASE (7)
139 23902 : CALL block_1_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
140 : CASE (9)
141 6 : CALL block_1_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
142 : CASE (10)
143 6 : CALL block_1_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
144 : CASE (11)
145 5 : CALL block_1_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
146 : CASE (15)
147 5 : CALL block_1_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
148 : CASE DEFAULT
149 12231340 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
150 : END SELECT
151 : CASE (4)
152 1748627 : SELECT CASE (md_max)
153 : CASE (1)
154 646105 : CALL block_1_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
155 : CASE (2)
156 4 : CALL block_1_1_4_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
157 : CASE (3)
158 230078 : CALL block_1_1_4_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
159 : CASE (4)
160 318150 : CALL block_1_1_4_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
161 : CASE (5)
162 132590 : CALL block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
163 : CASE (6)
164 7 : CALL block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
165 : CASE (7)
166 264 : CALL block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
167 : CASE (9)
168 5 : CALL block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
169 : CASE (10)
170 5 : CALL block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
171 : CASE (11)
172 3 : CALL block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
173 : CASE (15)
174 4 : CALL block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
175 : CASE DEFAULT
176 1327215 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
177 : END SELECT
178 : CASE (5)
179 545976 : SELECT CASE (md_max)
180 : CASE (1)
181 545949 : CALL block_1_1_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
182 : CASE (2)
183 10248 : CALL block_1_1_5_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
184 : CASE (3)
185 284303 : CALL block_1_1_5_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
186 : CASE (4)
187 132260 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
188 : CASE (5)
189 118990 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
190 : CASE (6)
191 6 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
192 : CASE (7)
193 10752 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
194 : CASE (9)
195 4 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
196 : CASE (10)
197 4 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
198 : CASE (11)
199 3 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
200 : CASE (15)
201 3 : CALL block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
202 : CASE DEFAULT
203 1102522 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
204 : END SELECT
205 : CASE (6)
206 108102 : SELECT CASE (md_max)
207 : CASE (1)
208 5 : CALL block_1_1_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
209 : CASE (2)
210 1 : CALL block_1_1_6_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
211 : CASE (3)
212 1 : CALL block_1_1_6_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
213 : CASE (4)
214 1 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
215 : CASE (5)
216 1 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
217 : CASE (6)
218 6 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
219 : CASE (7)
220 2 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
221 : CASE (9)
222 2 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
223 : CASE (10)
224 3 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
225 : CASE (11)
226 2 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
227 : CASE (15)
228 3 : CALL block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
229 : CASE DEFAULT
230 27 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
231 : END SELECT
232 : CASE (7)
233 55748 : SELECT CASE (md_max)
234 : CASE (1)
235 55680 : CALL block_1_1_7_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
236 : CASE (2)
237 737 : CALL block_1_1_7_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
238 : CASE (3)
239 34805 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
240 : CASE (4)
241 259 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
242 : CASE (5)
243 10841 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
244 : CASE (6)
245 6 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
246 : CASE (7)
247 5725 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
248 : CASE (9)
249 12 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
250 : CASE (10)
251 11 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
252 : CASE (11)
253 11 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
254 : CASE (15)
255 10 : CALL block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
256 : CASE DEFAULT
257 108097 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
258 : END SELECT
259 : CASE (9)
260 65 : SELECT CASE (md_max)
261 : CASE (1)
262 10 : CALL block_1_1_9_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
263 : CASE (2)
264 1 : CALL block_1_1_9_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
265 : CASE (3)
266 1 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
267 : CASE (4)
268 1 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
269 : CASE (5)
270 4 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
271 : CASE (6)
272 3 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
273 : CASE (7)
274 5 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
275 : CASE (9)
276 14 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
277 : CASE (10)
278 10 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
279 : CASE (11)
280 10 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
281 : CASE (15)
282 9 : CALL block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
283 : CASE DEFAULT
284 68 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
285 : END SELECT
286 : CASE (10)
287 57 : SELECT CASE (md_max)
288 : CASE (1)
289 9 : CALL block_1_1_10_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
290 : CASE (2)
291 1 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
292 : CASE (3)
293 1 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
294 : CASE (4)
295 2 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
296 : CASE (5)
297 2 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
298 : CASE (6)
299 2 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
300 : CASE (7)
301 5 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
302 : CASE (9)
303 6 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
304 : CASE (10)
305 11 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
306 : CASE (11)
307 8 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
308 : CASE (15)
309 8 : CALL block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
310 : CASE DEFAULT
311 55 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
312 : END SELECT
313 : CASE (11)
314 57 : SELECT CASE (md_max)
315 : CASE (1)
316 9 : CALL block_1_1_11_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
317 : CASE (2)
318 1 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
319 : CASE (3)
320 2 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
321 : CASE (4)
322 2 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
323 : CASE (5)
324 2 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
325 : CASE (6)
326 2 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
327 : CASE (7)
328 5 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
329 : CASE (9)
330 4 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
331 : CASE (10)
332 4 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
333 : CASE (11)
334 10 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
335 : CASE (15)
336 7 : CALL block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
337 : CASE DEFAULT
338 48 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
339 : END SELECT
340 : CASE (15)
341 10 : SELECT CASE (md_max)
342 : CASE (1)
343 10 : CALL block_1_1_15_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
344 : CASE (2)
345 2 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
346 : CASE (3)
347 2 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
348 : CASE (4)
349 2 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
350 : CASE (5)
351 2 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
352 : CASE (6)
353 2 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
354 : CASE (7)
355 4 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
356 : CASE (9)
357 4 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
358 : CASE (10)
359 4 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
360 : CASE (11)
361 5 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
362 : CASE (15)
363 11 : CALL block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
364 : CASE DEFAULT
365 48 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
366 : END SELECT
367 : CASE DEFAULT
368 31389750 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
369 : END SELECT
370 : CASE (2)
371 7845769 : SELECT CASE (mc_max)
372 : CASE (1)
373 4665 : SELECT CASE (md_max)
374 : CASE (1)
375 1810 : CALL block_1_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
376 : CASE (2)
377 706 : CALL block_1_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
378 : CASE (3)
379 2409 : CALL block_1_2_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
380 : CASE (4)
381 4 : CALL block_1_2_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
382 : CASE (5)
383 1708 : CALL block_1_2_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
384 : CASE (6)
385 4 : CALL block_1_2_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
386 : CASE (7)
387 713 : CALL block_1_2_1_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
388 : CASE (9)
389 1 : CALL block_1_2_1_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
390 : CASE (10)
391 1 : CALL block_1_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
392 : CASE (11)
393 1 : CALL block_1_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
394 : CASE (15)
395 1 : CALL block_1_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
396 : CASE DEFAULT
397 7358 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
398 : END SELECT
399 : CASE (2)
400 10887 : SELECT CASE (md_max)
401 : CASE (1)
402 698 : CALL block_1_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
403 : CASE (2)
404 307 : CALL block_1_2_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
405 : CASE (3)
406 941 : CALL block_1_2_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
407 : CASE (4)
408 3 : CALL block_1_2_2_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
409 : CASE (5)
410 655 : CALL block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
411 : CASE (6)
412 3 : CALL block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
413 : CASE (7)
414 248 : CALL block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
415 : CASE (9)
416 0 : CALL block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
417 : CASE (10)
418 0 : CALL block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
419 : CASE (11)
420 0 : CALL block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
421 : CASE (15)
422 0 : CALL block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
423 : CASE DEFAULT
424 2855 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
425 : END SELECT
426 : CASE (3)
427 2418 : SELECT CASE (md_max)
428 : CASE (1)
429 2406 : CALL block_1_2_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
430 : CASE (2)
431 940 : CALL block_1_2_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
432 : CASE (3)
433 3509 : CALL block_1_2_3_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
434 : CASE (4)
435 4 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
436 : CASE (5)
437 2383 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
438 : CASE (6)
439 2 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
440 : CASE (7)
441 945 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
442 : CASE (9)
443 0 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
444 : CASE (10)
445 0 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
446 : CASE (11)
447 0 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
448 : CASE (15)
449 0 : CALL block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
450 : CASE DEFAULT
451 10189 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
452 : END SELECT
453 : CASE (4)
454 7231 : SELECT CASE (md_max)
455 : CASE (1)
456 2 : CALL block_1_2_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
457 : CASE (2)
458 2 : CALL block_1_2_4_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
459 : CASE (3)
460 1 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
461 : CASE (4)
462 4 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
463 : CASE (5)
464 2 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
465 : CASE (6)
466 1 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
467 : CASE (7)
468 0 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
469 : CASE (9)
470 0 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
471 : CASE (10)
472 0 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
473 : CASE (11)
474 0 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
475 : CASE (15)
476 0 : CALL block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
477 : CASE DEFAULT
478 12 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
479 : END SELECT
480 : CASE (5)
481 1708 : SELECT CASE (md_max)
482 : CASE (1)
483 1705 : CALL block_1_2_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
484 : CASE (2)
485 653 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
486 : CASE (3)
487 2381 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
488 : CASE (4)
489 0 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
490 : CASE (5)
491 1785 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
492 : CASE (6)
493 1 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
494 : CASE (7)
495 704 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
496 : CASE (9)
497 0 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
498 : CASE (10)
499 0 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
500 : CASE (11)
501 0 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
502 : CASE (15)
503 0 : CALL block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
504 : CASE DEFAULT
505 7229 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
506 : END SELECT
507 : CASE (6)
508 3098 : SELECT CASE (md_max)
509 : CASE (1)
510 1 : CALL block_1_2_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
511 : CASE (2)
512 1 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
513 : CASE (3)
514 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
515 : CASE (4)
516 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
517 : CASE (5)
518 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
519 : CASE (6)
520 1 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
521 : CASE (7)
522 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
523 : CASE (9)
524 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
525 : CASE (10)
526 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
527 : CASE (11)
528 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
529 : CASE (15)
530 0 : CALL block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
531 : CASE DEFAULT
532 3 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
533 : END SELECT
534 : CASE (7)
535 715 : SELECT CASE (md_max)
536 : CASE (1)
537 712 : CALL block_1_2_7_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
538 : CASE (2)
539 248 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
540 : CASE (3)
541 944 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
542 : CASE (4)
543 0 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
544 : CASE (5)
545 704 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
546 : CASE (6)
547 0 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
548 : CASE (7)
549 489 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
550 : CASE (9)
551 0 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
552 : CASE (10)
553 0 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
554 : CASE (11)
555 0 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
556 : CASE (15)
557 0 : CALL block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
558 : CASE DEFAULT
559 3097 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
560 : END SELECT
561 : CASE (9)
562 5 : SELECT CASE (md_max)
563 : CASE (1)
564 0 : CALL block_1_2_9_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
565 : CASE (2)
566 0 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
567 : CASE (3)
568 0 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
569 : CASE (4)
570 0 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
571 : CASE (5)
572 0 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
573 : CASE (6)
574 1 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
575 : CASE (7)
576 1 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
577 : CASE (9)
578 1 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
579 : CASE (10)
580 0 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
581 : CASE (11)
582 0 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
583 : CASE (15)
584 0 : CALL block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
585 : CASE DEFAULT
586 3 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
587 : END SELECT
588 : CASE (10)
589 5 : CALL block_1_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
590 : CASE (11)
591 7 : CALL block_1_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
592 : CASE (15)
593 9 : CALL block_1_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
594 : CASE DEFAULT
595 30767 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
596 : END SELECT
597 : CASE (3)
598 4074328 : SELECT CASE (mc_max)
599 : CASE (1)
600 1923885 : SELECT CASE (md_max)
601 : CASE (1)
602 1862854 : CALL block_1_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
603 : CASE (2)
604 8131 : CALL block_1_3_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
605 : CASE (3)
606 1547094 : CALL block_1_3_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
607 : CASE (4)
608 51641 : CALL block_1_3_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
609 : CASE (5)
610 79521 : CALL block_1_3_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
611 : CASE (6)
612 4 : CALL block_1_3_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
613 : CASE (7)
614 11913 : CALL block_1_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
615 : CASE (9)
616 1 : CALL block_1_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
617 : CASE (10)
618 1 : CALL block_1_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
619 : CASE (11)
620 1 : CALL block_1_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
621 : CASE (15)
622 1 : CALL block_1_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
623 : CASE DEFAULT
624 3561162 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
625 : END SELECT
626 : CASE (2)
627 3157427 : SELECT CASE (md_max)
628 : CASE (1)
629 24830 : CALL block_1_3_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
630 : CASE (2)
631 3861 : CALL block_1_3_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
632 : CASE (3)
633 23255 : CALL block_1_3_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
634 : CASE (4)
635 3 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
636 : CASE (5)
637 8103 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
638 : CASE (6)
639 3 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
640 : CASE (7)
641 976 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
642 : CASE (9)
643 0 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
644 : CASE (10)
645 0 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
646 : CASE (11)
647 0 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
648 : CASE (15)
649 0 : CALL block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
650 : CASE DEFAULT
651 61031 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
652 : END SELECT
653 : CASE (3)
654 2123434 : SELECT CASE (md_max)
655 : CASE (1)
656 1601478 : CALL block_1_3_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
657 : CASE (2)
658 12117 : CALL block_1_3_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
659 : CASE (3)
660 1426024 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
661 : CASE (4)
662 15399 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
663 : CASE (5)
664 64672 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
665 : CASE (6)
666 3 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
667 : CASE (7)
668 12904 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
669 : CASE (9)
670 0 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
671 : CASE (10)
672 0 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
673 : CASE (11)
674 0 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
675 : CASE (15)
676 0 : CALL block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
677 : CASE DEFAULT
678 3132597 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
679 : END SELECT
680 : CASE (4)
681 750662 : SELECT CASE (md_max)
682 : CASE (1)
683 239925 : CALL block_1_3_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
684 : CASE (2)
685 1 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
686 : CASE (3)
687 108283 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
688 : CASE (4)
689 115899 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
690 : CASE (5)
691 57738 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
692 : CASE (6)
693 2 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
694 : CASE (7)
695 108 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
696 : CASE (9)
697 0 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
698 : CASE (10)
699 0 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
700 : CASE (11)
701 0 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
702 : CASE (15)
703 0 : CALL block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
704 : CASE DEFAULT
705 521956 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
706 : END SELECT
707 : CASE (5)
708 234883 : SELECT CASE (md_max)
709 : CASE (1)
710 234879 : CALL block_1_3_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
711 : CASE (2)
712 8101 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
713 : CASE (3)
714 143898 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
715 : CASE (4)
716 57496 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
717 : CASE (5)
718 59794 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
719 : CASE (6)
720 1 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
721 : CASE (7)
722 6568 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
723 : CASE (9)
724 0 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
725 : CASE (10)
726 0 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
727 : CASE (11)
728 0 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
729 : CASE (15)
730 0 : CALL block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
731 : CASE DEFAULT
732 510737 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
733 : END SELECT
734 : CASE (6)
735 50905 : SELECT CASE (md_max)
736 : CASE (1)
737 1 : CALL block_1_3_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
738 : CASE (2)
739 1 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
740 : CASE (3)
741 1 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
742 : CASE (4)
743 0 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
744 : CASE (5)
745 0 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
746 : CASE (6)
747 1 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
748 : CASE (7)
749 0 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
750 : CASE (9)
751 0 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
752 : CASE (10)
753 0 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
754 : CASE (11)
755 0 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
756 : CASE (15)
757 0 : CALL block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
758 : CASE DEFAULT
759 4 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
760 : END SELECT
761 : CASE (7)
762 50904 : CALL block_1_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
763 : CASE (9)
764 2 : CALL block_1_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
765 : CASE (10)
766 4 : CALL block_1_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
767 : CASE (11)
768 6 : CALL block_1_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
769 : CASE (15)
770 8 : CALL block_1_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
771 : CASE DEFAULT
772 7838411 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
773 : END SELECT
774 : CASE (4)
775 616532 : SELECT CASE (mc_max)
776 : CASE (1)
777 115982 : SELECT CASE (md_max)
778 : CASE (1)
779 115956 : CALL block_1_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
780 : CASE (2)
781 8 : CALL block_1_4_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
782 : CASE (3)
783 31019 : CALL block_1_4_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
784 : CASE (4)
785 59643 : CALL block_1_4_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
786 : CASE (5)
787 17347 : CALL block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
788 : CASE (6)
789 4 : CALL block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
790 : CASE (7)
791 97 : CALL block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
792 : CASE (9)
793 1 : CALL block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
794 : CASE (10)
795 1 : CALL block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
796 : CASE (11)
797 1 : CALL block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
798 : CASE (15)
799 1 : CALL block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
800 : CASE DEFAULT
801 224078 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
802 : END SELECT
803 : CASE (2)
804 55914 : SELECT CASE (md_max)
805 : CASE (1)
806 2 : CALL block_1_4_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
807 : CASE (2)
808 8 : CALL block_1_4_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
809 : CASE (3)
810 7 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
811 : CASE (4)
812 3 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
813 : CASE (5)
814 3 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
815 : CASE (6)
816 3 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
817 : CASE (7)
818 0 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
819 : CASE (9)
820 0 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
821 : CASE (10)
822 0 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
823 : CASE (11)
824 0 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
825 : CASE (15)
826 0 : CALL block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
827 : CASE DEFAULT
828 26 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
829 : END SELECT
830 : CASE (3)
831 202220 : SELECT CASE (md_max)
832 : CASE (1)
833 27218 : CALL block_1_4_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
834 : CASE (2)
835 3 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
836 : CASE (3)
837 11767 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
838 : CASE (4)
839 11199 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
840 : CASE (5)
841 5722 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
842 : CASE (6)
843 3 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
844 : CASE (7)
845 0 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
846 : CASE (9)
847 0 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
848 : CASE (10)
849 0 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
850 : CASE (11)
851 0 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
852 : CASE (15)
853 0 : CALL block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
854 : CASE DEFAULT
855 55912 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
856 : END SELECT
857 : CASE (4)
858 122659 : SELECT CASE (md_max)
859 : CASE (1)
860 65396 : CALL block_1_4_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
861 : CASE (2)
862 1 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
863 : CASE (3)
864 16561 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
865 : CASE (4)
866 76273 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
867 : CASE (5)
868 16384 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
869 : CASE (6)
870 3 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
871 : CASE (7)
872 384 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
873 : CASE (9)
874 0 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
875 : CASE (10)
876 0 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
877 : CASE (11)
878 0 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
879 : CASE (15)
880 0 : CALL block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
881 : CASE DEFAULT
882 175002 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
883 : END SELECT
884 : CASE (5)
885 57263 : CALL block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
886 : CASE (6)
887 5 : CALL block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
888 : CASE (7)
889 864 : CALL block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
890 : CASE (9)
891 1 : CALL block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
892 : CASE (10)
893 3 : CALL block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
894 : CASE (11)
895 5 : CALL block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
896 : CASE (15)
897 7 : CALL block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
898 : CASE DEFAULT
899 513166 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
900 : END SELECT
901 : CASE (5)
902 154040 : SELECT CASE (mc_max)
903 : CASE (1)
904 76824 : SELECT CASE (md_max)
905 : CASE (1)
906 69464 : CALL block_1_5_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
907 : CASE (2)
908 1713 : CALL block_1_5_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
909 : CASE (3)
910 40158 : CALL block_1_5_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
911 : CASE (4)
912 17364 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
913 : CASE (5)
914 21695 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
915 : CASE (6)
916 4 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
917 : CASE (7)
918 3442 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
919 : CASE (9)
920 2 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
921 : CASE (10)
922 1 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
923 : CASE (11)
924 1 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
925 : CASE (15)
926 1 : CALL block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
927 : CASE DEFAULT
928 153845 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
929 : END SELECT
930 : CASE (2)
931 96588 : SELECT CASE (md_max)
932 : CASE (1)
933 1706 : CALL block_1_5_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
934 : CASE (2)
935 708 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
936 : CASE (3)
937 2403 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
938 : CASE (4)
939 7 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
940 : CASE (5)
941 1779 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
942 : CASE (6)
943 3 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
944 : CASE (7)
945 753 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
946 : CASE (9)
947 1 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
948 : CASE (10)
949 0 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
950 : CASE (11)
951 0 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
952 : CASE (15)
953 0 : CALL block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
954 : CASE DEFAULT
955 7360 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
956 : END SELECT
957 : CASE (3)
958 94309 : SELECT CASE (md_max)
959 : CASE (1)
960 38151 : CALL block_1_5_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
961 : CASE (2)
962 2400 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
963 : CASE (3)
964 29227 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
965 : CASE (4)
966 5467 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
967 : CASE (5)
968 15503 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
969 : CASE (6)
970 4 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
971 : CASE (7)
972 4129 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
973 : CASE (9)
974 1 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
975 : CASE (10)
976 0 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
977 : CASE (11)
978 0 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
979 : CASE (15)
980 0 : CALL block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
981 : CASE DEFAULT
982 94882 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
983 : END SELECT
984 : CASE (4)
985 56158 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
986 : CASE (5)
987 66645 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
988 : CASE (6)
989 7 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
990 : CASE (7)
991 13545 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
992 : CASE (9)
993 0 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
994 : CASE (10)
995 2 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
996 : CASE (11)
997 4 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
998 : CASE (15)
999 6 : CALL block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1000 : CASE DEFAULT
1001 392454 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1002 : END SELECT
1003 : CASE (6)
1004 63177 : SELECT CASE (mc_max)
1005 : CASE (1)
1006 50 : SELECT CASE (md_max)
1007 : CASE (1)
1008 10 : CALL block_1_6_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1009 : CASE (2)
1010 9 : CALL block_1_6_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1011 : CASE (3)
1012 8 : CALL block_1_6_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1013 : CASE (4)
1014 8 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1015 : CASE (5)
1016 9 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1017 : CASE (6)
1018 10 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1019 : CASE (7)
1020 3 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1021 : CASE (9)
1022 2 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1023 : CASE (10)
1024 1 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1025 : CASE (11)
1026 1 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1027 : CASE (15)
1028 1 : CALL block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1029 : CASE DEFAULT
1030 62 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1031 : END SELECT
1032 : CASE (2)
1033 40 : SELECT CASE (md_max)
1034 : CASE (1)
1035 2 : CALL block_1_6_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1036 : CASE (2)
1037 9 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1038 : CASE (3)
1039 7 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1040 : CASE (4)
1041 8 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1042 : CASE (5)
1043 9 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1044 : CASE (6)
1045 3 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1046 : CASE (7)
1047 1 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1048 : CASE (9)
1049 1 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1050 : CASE (10)
1051 0 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1052 : CASE (11)
1053 0 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1054 : CASE (15)
1055 0 : CALL block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1056 : CASE DEFAULT
1057 40 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1058 : END SELECT
1059 : CASE (3)
1060 25 : SELECT CASE (md_max)
1061 : CASE (1)
1062 3 : CALL block_1_6_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1063 : CASE (2)
1064 4 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1065 : CASE (3)
1066 9 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1067 : CASE (4)
1068 9 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1069 : CASE (5)
1070 5 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1071 : CASE (6)
1072 4 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1073 : CASE (7)
1074 2 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1075 : CASE (9)
1076 1 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1077 : CASE (10)
1078 0 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1079 : CASE (11)
1080 0 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1081 : CASE (15)
1082 1 : CALL block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1083 : CASE DEFAULT
1084 38 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1085 : END SELECT
1086 : CASE (4)
1087 22 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1088 : CASE (5)
1089 13 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1090 : CASE (6)
1091 9 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1092 : CASE (7)
1093 2 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1094 : CASE (9)
1095 0 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1096 : CASE (10)
1097 1 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1098 : CASE (11)
1099 3 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1100 : CASE (15)
1101 5 : CALL block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1102 : CASE DEFAULT
1103 195 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1104 : END SELECT
1105 : CASE (7)
1106 17580 : SELECT CASE (mc_max)
1107 : CASE (1)
1108 8341 : SELECT CASE (md_max)
1109 : CASE (1)
1110 5221 : CALL block_1_7_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1111 : CASE (2)
1112 715 : CALL block_1_7_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1113 : CASE (3)
1114 5914 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1115 : CASE (4)
1116 98 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1117 : CASE (5)
1118 3442 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1119 : CASE (6)
1120 1 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1121 : CASE (7)
1122 2069 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1123 : CASE (9)
1124 1 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1125 : CASE (10)
1126 1 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1127 : CASE (11)
1128 1 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1129 : CASE (15)
1130 1 : CALL block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1131 : CASE DEFAULT
1132 17464 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1133 : END SELECT
1134 : CASE (2)
1135 21125 : SELECT CASE (md_max)
1136 : CASE (1)
1137 712 : CALL block_1_7_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1138 : CASE (2)
1139 251 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1140 : CASE (3)
1141 961 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1142 : CASE (4)
1143 1 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1144 : CASE (5)
1145 706 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1146 : CASE (6)
1147 1 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1148 : CASE (7)
1149 488 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1150 : CASE (9)
1151 0 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1152 : CASE (10)
1153 0 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1154 : CASE (11)
1155 0 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1156 : CASE (15)
1157 0 : CALL block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1158 : CASE DEFAULT
1159 3120 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1160 : END SELECT
1161 : CASE (3)
1162 20413 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1163 : CASE (4)
1164 869 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1165 : CASE (5)
1166 13176 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1167 : CASE (6)
1168 0 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1169 : CASE (7)
1170 8043 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1171 : CASE (9)
1172 9 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1173 : CASE (10)
1174 7 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1175 : CASE (11)
1176 7 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1177 : CASE (15)
1178 7 : CALL block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1179 : CASE DEFAULT
1180 63115 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1181 : END SELECT
1182 : CASE (9)
1183 250 : SELECT CASE (mc_max)
1184 : CASE (1)
1185 18 : SELECT CASE (md_max)
1186 : CASE (1)
1187 5 : CALL block_1_9_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1188 : CASE (2)
1189 3 : CALL block_1_9_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1190 : CASE (3)
1191 2 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1192 : CASE (4)
1193 2 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1194 : CASE (5)
1195 2 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1196 : CASE (6)
1197 2 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1198 : CASE (7)
1199 4 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1200 : CASE (9)
1201 5 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1202 : CASE (10)
1203 2 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1204 : CASE (11)
1205 1 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1206 : CASE (15)
1207 1 : CALL block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1208 : CASE DEFAULT
1209 29 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1210 : END SELECT
1211 : CASE (2)
1212 18 : SELECT CASE (md_max)
1213 : CASE (1)
1214 0 : CALL block_1_9_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1215 : CASE (2)
1216 3 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1217 : CASE (3)
1218 1 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1219 : CASE (4)
1220 2 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1221 : CASE (5)
1222 2 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1223 : CASE (6)
1224 2 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1225 : CASE (7)
1226 3 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1227 : CASE (9)
1228 0 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1229 : CASE (10)
1230 0 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1231 : CASE (11)
1232 0 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1233 : CASE (15)
1234 0 : CALL block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1235 : CASE DEFAULT
1236 13 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1237 : END SELECT
1238 : CASE (3)
1239 18 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1240 : CASE (4)
1241 8 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1242 : CASE (5)
1243 3 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1244 : CASE (6)
1245 0 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1246 : CASE (7)
1247 13 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1248 : CASE (9)
1249 10 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1250 : CASE (10)
1251 8 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1252 : CASE (11)
1253 7 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1254 : CASE (15)
1255 7 : CALL block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1256 : CASE DEFAULT
1257 116 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1258 : END SELECT
1259 : CASE (10)
1260 301 : SELECT CASE (mc_max)
1261 : CASE (1)
1262 36 : SELECT CASE (md_max)
1263 : CASE (1)
1264 9 : CALL block_1_10_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1265 : CASE (2)
1266 4 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1267 : CASE (3)
1268 2 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1269 : CASE (4)
1270 2 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1271 : CASE (5)
1272 4 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1273 : CASE (6)
1274 4 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1275 : CASE (7)
1276 5 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1277 : CASE (9)
1278 4 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1279 : CASE (10)
1280 7 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1281 : CASE (11)
1282 2 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1283 : CASE (15)
1284 3 : CALL block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1285 : CASE DEFAULT
1286 46 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1287 : END SELECT
1288 : CASE (2)
1289 27 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1290 : CASE (3)
1291 35 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1292 : CASE (4)
1293 24 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1294 : CASE (5)
1295 10 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1296 : CASE (6)
1297 5 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1298 : CASE (7)
1299 27 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1300 : CASE (9)
1301 21 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1302 : CASE (10)
1303 9 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1304 : CASE (11)
1305 7 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1306 : CASE (15)
1307 10 : CALL block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1308 : CASE DEFAULT
1309 221 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1310 : END SELECT
1311 : CASE (11)
1312 215 : SELECT CASE (mc_max)
1313 : CASE (1)
1314 41 : SELECT CASE (md_max)
1315 : CASE (1)
1316 9 : CALL block_1_11_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1317 : CASE (2)
1318 4 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1319 : CASE (3)
1320 2 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1321 : CASE (4)
1322 2 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1323 : CASE (5)
1324 4 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1325 : CASE (6)
1326 4 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1327 : CASE (7)
1328 5 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1329 : CASE (9)
1330 5 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1331 : CASE (10)
1332 6 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1333 : CASE (11)
1334 7 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1335 : CASE (15)
1336 4 : CALL block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1337 : CASE DEFAULT
1338 52 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1339 : END SELECT
1340 : CASE (2)
1341 32 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1342 : CASE (3)
1343 39 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1344 : CASE (4)
1345 29 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1346 : CASE (5)
1347 15 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1348 : CASE (6)
1349 5 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1350 : CASE (7)
1351 30 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1352 : CASE (9)
1353 23 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1354 : CASE (10)
1355 11 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1356 : CASE (11)
1357 8 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1358 : CASE (15)
1359 11 : CALL block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1360 : CASE DEFAULT
1361 255 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1362 : END SELECT
1363 : CASE (15)
1364 36 : SELECT CASE (mc_max)
1365 : CASE (1)
1366 25 : SELECT CASE (md_max)
1367 : CASE (1)
1368 5 : CALL block_1_15_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1369 : CASE (2)
1370 3 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1371 : CASE (3)
1372 2 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1373 : CASE (4)
1374 2 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1375 : CASE (5)
1376 3 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1377 : CASE (6)
1378 3 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1379 : CASE (7)
1380 4 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1381 : CASE (9)
1382 4 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1383 : CASE (10)
1384 3 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1385 : CASE (11)
1386 2 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1387 : CASE (15)
1388 5 : CALL block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1389 : CASE DEFAULT
1390 36 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1391 : END SELECT
1392 : CASE (2)
1393 20 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1394 : CASE (3)
1395 25 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1396 : CASE (4)
1397 15 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1398 : CASE (5)
1399 7 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1400 : CASE (6)
1401 1 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1402 : CASE (7)
1403 19 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1404 : CASE (9)
1405 14 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1406 : CASE (10)
1407 10 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1408 : CASE (11)
1409 9 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1410 : CASE (15)
1411 7 : CALL block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1412 : CASE DEFAULT
1413 163 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1414 : END SELECT
1415 : CASE DEFAULT
1416 40228613 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1417 : END SELECT
1418 : CASE (2)
1419 23001574 : SELECT CASE (mb_max)
1420 : CASE (1)
1421 240124 : SELECT CASE (mc_max)
1422 : CASE (1)
1423 26986 : SELECT CASE (md_max)
1424 : CASE (1)
1425 14170 : CALL block_2_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1426 : CASE (2)
1427 1913 : CALL block_2_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1428 : CASE (3)
1429 12668 : CALL block_2_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1430 : CASE (4)
1431 4 : CALL block_2_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1432 : CASE (5)
1433 4061 : CALL block_2_1_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1434 : CASE (6)
1435 5 : CALL block_2_1_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1436 : CASE (7)
1437 716 : CALL block_2_1_1_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1438 : CASE (9)
1439 4 : CALL block_2_1_1_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1440 : CASE (10)
1441 3 : CALL block_2_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1442 : CASE (11)
1443 3 : CALL block_2_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1444 : CASE (15)
1445 4 : CALL block_2_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1446 : CASE DEFAULT
1447 33551 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1448 : END SELECT
1449 : CASE (2)
1450 49334 : SELECT CASE (md_max)
1451 : CASE (1)
1452 4991 : CALL block_2_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1453 : CASE (2)
1454 915 : CALL block_2_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1455 : CASE (3)
1456 4810 : CALL block_2_1_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1457 : CASE (4)
1458 3 : CALL block_2_1_2_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1459 : CASE (5)
1460 1832 : CALL block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1461 : CASE (6)
1462 4 : CALL block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1463 : CASE (7)
1464 251 : CALL block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1465 : CASE (9)
1466 3 : CALL block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1467 : CASE (10)
1468 2 : CALL block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1469 : CASE (11)
1470 2 : CALL block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1471 : CASE (15)
1472 3 : CALL block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1473 : CASE DEFAULT
1474 12816 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1475 : END SELECT
1476 : CASE (3)
1477 17827 : SELECT CASE (md_max)
1478 : CASE (1)
1479 17798 : CALL block_2_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1480 : CASE (2)
1481 2759 : CALL block_2_1_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1482 : CASE (3)
1483 16799 : CALL block_2_1_3_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1484 : CASE (4)
1485 4 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1486 : CASE (5)
1487 6020 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1488 : CASE (6)
1489 4 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1490 : CASE (7)
1491 947 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1492 : CASE (9)
1493 3 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1494 : CASE (10)
1495 3 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1496 : CASE (11)
1497 3 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1498 : CASE (15)
1499 3 : CALL block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1500 : CASE DEFAULT
1501 44343 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1502 : END SELECT
1503 : CASE (4)
1504 27094 : SELECT CASE (md_max)
1505 : CASE (1)
1506 3 : CALL block_2_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1507 : CASE (2)
1508 2 : CALL block_2_1_4_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1509 : CASE (3)
1510 1 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1511 : CASE (4)
1512 5 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1513 : CASE (5)
1514 3 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1515 : CASE (6)
1516 3 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1517 : CASE (7)
1518 3 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1519 : CASE (9)
1520 3 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1521 : CASE (10)
1522 3 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1523 : CASE (11)
1524 1 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1525 : CASE (15)
1526 2 : CALL block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1527 : CASE DEFAULT
1528 29 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1529 : END SELECT
1530 : CASE (5)
1531 10224 : SELECT CASE (md_max)
1532 : CASE (1)
1533 10213 : CALL block_2_1_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1534 : CASE (2)
1535 1829 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1536 : CASE (3)
1537 10121 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1538 : CASE (4)
1539 2 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1540 : CASE (5)
1541 4212 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1542 : CASE (6)
1543 2 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1544 : CASE (7)
1545 706 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1546 : CASE (9)
1547 2 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1548 : CASE (10)
1549 2 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1550 : CASE (11)
1551 1 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1552 : CASE (15)
1553 1 : CALL block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1554 : CASE DEFAULT
1555 27091 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1556 : END SELECT
1557 : CASE (6)
1558 3114 : SELECT CASE (md_max)
1559 : CASE (1)
1560 1 : CALL block_2_1_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1561 : CASE (2)
1562 1 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1563 : CASE (3)
1564 1 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1565 : CASE (4)
1566 1 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1567 : CASE (5)
1568 1 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1569 : CASE (6)
1570 3 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1571 : CASE (7)
1572 1 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1573 : CASE (9)
1574 1 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1575 : CASE (10)
1576 1 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1577 : CASE (11)
1578 0 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1579 : CASE (15)
1580 0 : CALL block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1581 : CASE DEFAULT
1582 11 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1583 : END SELECT
1584 : CASE (7)
1585 724 : SELECT CASE (md_max)
1586 : CASE (1)
1587 713 : CALL block_2_1_7_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1588 : CASE (2)
1589 249 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1590 : CASE (3)
1591 945 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1592 : CASE (4)
1593 1 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1594 : CASE (5)
1595 706 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1596 : CASE (6)
1597 3 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1598 : CASE (7)
1599 492 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1600 : CASE (9)
1601 2 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1602 : CASE (10)
1603 1 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1604 : CASE (11)
1605 0 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1606 : CASE (15)
1607 1 : CALL block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1608 : CASE DEFAULT
1609 3113 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1610 : END SELECT
1611 : CASE (9)
1612 10 : SELECT CASE (md_max)
1613 : CASE (1)
1614 1 : CALL block_2_1_9_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1615 : CASE (2)
1616 1 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1617 : CASE (3)
1618 1 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1619 : CASE (4)
1620 1 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1621 : CASE (5)
1622 2 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1623 : CASE (6)
1624 2 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1625 : CASE (7)
1626 1 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1627 : CASE (9)
1628 2 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1629 : CASE (10)
1630 0 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1631 : CASE (11)
1632 0 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1633 : CASE (15)
1634 0 : CALL block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1635 : CASE DEFAULT
1636 11 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1637 : END SELECT
1638 : CASE (10)
1639 9 : CALL block_2_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1640 : CASE (11)
1641 10 : CALL block_2_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1642 : CASE (15)
1643 11 : CALL block_2_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1644 : CASE DEFAULT
1645 120995 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1646 : END SELECT
1647 : CASE (2)
1648 208186 : SELECT CASE (mc_max)
1649 : CASE (1)
1650 50866 : SELECT CASE (md_max)
1651 : CASE (1)
1652 739 : CALL block_2_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1653 : CASE (2)
1654 314 : CALL block_2_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1655 : CASE (3)
1656 999 : CALL block_2_2_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1657 : CASE (4)
1658 4 : CALL block_2_2_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1659 : CASE (5)
1660 705 : CALL block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1661 : CASE (6)
1662 4 : CALL block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1663 : CASE (7)
1664 249 : CALL block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1665 : CASE (9)
1666 1 : CALL block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1667 : CASE (10)
1668 1 : CALL block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1669 : CASE (11)
1670 1 : CALL block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1671 : CASE (15)
1672 1 : CALL block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1673 : CASE DEFAULT
1674 3018 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1675 : END SELECT
1676 : CASE (2)
1677 32694 : SELECT CASE (md_max)
1678 : CASE (1)
1679 306 : CALL block_2_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1680 : CASE (2)
1681 34173 : CALL block_2_2_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1682 : CASE (3)
1683 15273 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1684 : CASE (4)
1685 3 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1686 : CASE (5)
1687 289 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1688 : CASE (6)
1689 3 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1690 : CASE (7)
1691 80 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1692 : CASE (9)
1693 0 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1694 : CASE (10)
1695 0 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1696 : CASE (11)
1697 0 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1698 : CASE (15)
1699 0 : CALL block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1700 : CASE DEFAULT
1701 50127 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1702 : END SELECT
1703 : CASE (3)
1704 1016 : SELECT CASE (md_max)
1705 : CASE (1)
1706 997 : CALL block_2_2_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1707 : CASE (2)
1708 15274 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1709 : CASE (3)
1710 14783 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1711 : CASE (4)
1712 4 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1713 : CASE (5)
1714 989 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1715 : CASE (6)
1716 3 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1717 : CASE (7)
1718 337 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1719 : CASE (9)
1720 1 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1721 : CASE (10)
1722 0 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1723 : CASE (11)
1724 0 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1725 : CASE (15)
1726 0 : CALL block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1727 : CASE DEFAULT
1728 32388 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1729 : END SELECT
1730 : CASE (4)
1731 61434 : SELECT CASE (md_max)
1732 : CASE (1)
1733 3 : CALL block_2_2_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1734 : CASE (2)
1735 3 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1736 : CASE (3)
1737 2 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1738 : CASE (4)
1739 5 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1740 : CASE (5)
1741 3 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1742 : CASE (6)
1743 2 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1744 : CASE (7)
1745 1 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1746 : CASE (9)
1747 0 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1748 : CASE (10)
1749 0 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1750 : CASE (11)
1751 0 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1752 : CASE (15)
1753 0 : CALL block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1754 : CASE DEFAULT
1755 19 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1756 : END SELECT
1757 : CASE (5)
1758 61431 : CALL block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1759 : CASE (6)
1760 10 : CALL block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1761 : CASE (7)
1762 1071 : CALL block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1763 : CASE (9)
1764 8 : CALL block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1765 : CASE (10)
1766 9 : CALL block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1767 : CASE (11)
1768 10 : CALL block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1769 : CASE (15)
1770 11 : CALL block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1771 : CASE DEFAULT
1772 206573 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1773 : END SELECT
1774 : CASE (3)
1775 27913 : SELECT CASE (mc_max)
1776 : CASE (1)
1777 49427 : SELECT CASE (md_max)
1778 : CASE (1)
1779 10667 : CALL block_2_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1780 : CASE (2)
1781 1753 : CALL block_2_3_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1782 : CASE (3)
1783 10383 : CALL block_2_3_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1784 : CASE (4)
1785 3 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1786 : CASE (5)
1787 4015 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1788 : CASE (6)
1789 3 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1790 : CASE (7)
1791 960 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1792 : CASE (9)
1793 0 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1794 : CASE (10)
1795 0 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1796 : CASE (11)
1797 0 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1798 : CASE (15)
1799 0 : CALL block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1800 : CASE DEFAULT
1801 27784 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1802 : END SELECT
1803 : CASE (2)
1804 65515 : SELECT CASE (md_max)
1805 : CASE (1)
1806 3800 : CALL block_2_3_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1807 : CASE (2)
1808 15553 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1809 : CASE (3)
1810 17276 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1811 : CASE (4)
1812 3 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1813 : CASE (5)
1814 1781 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1815 : CASE (6)
1816 3 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1817 : CASE (7)
1818 344 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1819 : CASE (9)
1820 0 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1821 : CASE (10)
1822 0 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1823 : CASE (11)
1824 0 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1825 : CASE (15)
1826 0 : CALL block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1827 : CASE DEFAULT
1828 38760 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1829 : END SELECT
1830 : CASE (3)
1831 13811 : SELECT CASE (md_max)
1832 : CASE (1)
1833 13798 : CALL block_2_3_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1834 : CASE (2)
1835 15903 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1836 : CASE (3)
1837 24741 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1838 : CASE (4)
1839 3 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1840 : CASE (5)
1841 5955 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1842 : CASE (6)
1843 3 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1844 : CASE (7)
1845 1312 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1846 : CASE (9)
1847 0 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1848 : CASE (10)
1849 0 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1850 : CASE (11)
1851 0 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1852 : CASE (15)
1853 0 : CALL block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1854 : CASE DEFAULT
1855 61715 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1856 : END SELECT
1857 : CASE (4)
1858 13 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1859 : CASE (5)
1860 48111 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1861 : CASE (6)
1862 5 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1863 : CASE (7)
1864 4264 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1865 : CASE (9)
1866 0 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1867 : CASE (10)
1868 0 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1869 : CASE (11)
1870 0 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1871 : CASE (15)
1872 0 : CALL block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1873 : CASE DEFAULT
1874 205168 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1875 : END SELECT
1876 : CASE (4)
1877 31002 : SELECT CASE (mc_max)
1878 : CASE (1)
1879 40 : SELECT CASE (md_max)
1880 : CASE (1)
1881 8 : CALL block_2_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1882 : CASE (2)
1883 8 : CALL block_2_4_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1884 : CASE (3)
1885 8 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1886 : CASE (4)
1887 8 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1888 : CASE (5)
1889 4 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1890 : CASE (6)
1891 3 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1892 : CASE (7)
1893 1 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1894 : CASE (9)
1895 0 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1896 : CASE (10)
1897 0 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1898 : CASE (11)
1899 0 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1900 : CASE (15)
1901 0 : CALL block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1902 : CASE DEFAULT
1903 40 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1904 : END SELECT
1905 : CASE (2)
1906 26 : SELECT CASE (md_max)
1907 : CASE (1)
1908 2 : CALL block_2_4_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1909 : CASE (2)
1910 8 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1911 : CASE (3)
1912 7 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1913 : CASE (4)
1914 8 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1915 : CASE (5)
1916 4 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1917 : CASE (6)
1918 3 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1919 : CASE (7)
1920 0 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1921 : CASE (9)
1922 0 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1923 : CASE (10)
1924 0 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1925 : CASE (11)
1926 0 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1927 : CASE (15)
1928 0 : CALL block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1929 : CASE DEFAULT
1930 32 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1931 : END SELECT
1932 : CASE (3)
1933 24 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1934 : CASE (4)
1935 14 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1936 : CASE (5)
1937 12 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1938 : CASE (6)
1939 7 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1940 : CASE (7)
1941 0 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1942 : CASE (9)
1943 0 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1944 : CASE (10)
1945 0 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1946 : CASE (11)
1947 0 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1948 : CASE (15)
1949 0 : CALL block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1950 : CASE DEFAULT
1951 129 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1952 : END SELECT
1953 : CASE (5)
1954 7486 : SELECT CASE (mc_max)
1955 : CASE (1)
1956 4660 : SELECT CASE (md_max)
1957 : CASE (1)
1958 1729 : CALL block_2_5_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1959 : CASE (2)
1960 661 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1961 : CASE (3)
1962 2388 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1963 : CASE (4)
1964 8 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1965 : CASE (5)
1966 1785 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1967 : CASE (6)
1968 3 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1969 : CASE (7)
1970 705 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1971 : CASE (9)
1972 1 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1973 : CASE (10)
1974 0 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1975 : CASE (11)
1976 0 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1977 : CASE (15)
1978 0 : CALL block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1979 : CASE DEFAULT
1980 7280 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1981 : END SELECT
1982 : CASE (2)
1983 2931 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1984 : CASE (3)
1985 10198 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1986 : CASE (4)
1987 22 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1988 : CASE (5)
1989 7400 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1990 : CASE (6)
1991 9 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1992 : CASE (7)
1993 3122 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1994 : CASE (9)
1995 0 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1996 : CASE (10)
1997 0 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
1998 : CASE (11)
1999 0 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2000 : CASE (15)
2001 0 : CALL block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2002 : CASE DEFAULT
2003 30962 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2004 : END SELECT
2005 : CASE (6)
2006 14103 : SELECT CASE (mc_max)
2007 : CASE (1)
2008 57 : SELECT CASE (md_max)
2009 : CASE (1)
2010 10 : CALL block_2_6_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2011 : CASE (2)
2012 9 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2013 : CASE (3)
2014 8 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2015 : CASE (4)
2016 8 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2017 : CASE (5)
2018 9 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2019 : CASE (6)
2020 9 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2021 : CASE (7)
2022 2 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2023 : CASE (9)
2024 1 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2025 : CASE (10)
2026 1 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2027 : CASE (11)
2028 0 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2029 : CASE (15)
2030 0 : CALL block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2031 : CASE DEFAULT
2032 57 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2033 : END SELECT
2034 : CASE (2)
2035 47 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2036 : CASE (3)
2037 44 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2038 : CASE (4)
2039 28 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2040 : CASE (5)
2041 16 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2042 : CASE (6)
2043 10 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2044 : CASE (7)
2045 3 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2046 : CASE (9)
2047 1 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2048 : CASE (10)
2049 0 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2050 : CASE (11)
2051 0 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2052 : CASE (15)
2053 0 : CALL block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2054 : CASE DEFAULT
2055 206 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2056 : END SELECT
2057 : CASE (7)
2058 3297 : SELECT CASE (mc_max)
2059 : CASE (1)
2060 1831 : SELECT CASE (md_max)
2061 : CASE (1)
2062 739 : CALL block_2_7_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2063 : CASE (2)
2064 251 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2065 : CASE (3)
2066 978 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2067 : CASE (4)
2068 2 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2069 : CASE (5)
2070 754 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2071 : CASE (6)
2072 2 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2073 : CASE (7)
2074 491 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2075 : CASE (9)
2076 0 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2077 : CASE (10)
2078 0 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2079 : CASE (11)
2080 0 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2081 : CASE (15)
2082 0 : CALL block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2083 : CASE DEFAULT
2084 3217 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2085 : END SELECT
2086 : CASE (2)
2087 1092 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2088 : CASE (3)
2089 4384 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2090 : CASE (4)
2091 7 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2092 : CASE (5)
2093 3242 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2094 : CASE (6)
2095 0 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2096 : CASE (7)
2097 2104 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2098 : CASE (9)
2099 0 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2100 : CASE (10)
2101 0 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2102 : CASE (11)
2103 0 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2104 : CASE (15)
2105 0 : CALL block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2106 : CASE DEFAULT
2107 14046 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2108 : END SELECT
2109 : CASE (9)
2110 131 : SELECT CASE (mc_max)
2111 : CASE (1)
2112 20 : SELECT CASE (md_max)
2113 : CASE (1)
2114 3 : CALL block_2_9_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2115 : CASE (2)
2116 3 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2117 : CASE (3)
2118 2 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2119 : CASE (4)
2120 2 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2121 : CASE (5)
2122 2 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2123 : CASE (6)
2124 2 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2125 : CASE (7)
2126 3 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2127 : CASE (9)
2128 3 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2129 : CASE (10)
2130 1 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2131 : CASE (11)
2132 0 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2133 : CASE (15)
2134 1 : CALL block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2135 : CASE DEFAULT
2136 22 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2137 : END SELECT
2138 : CASE (2)
2139 17 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2140 : CASE (3)
2141 21 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2142 : CASE (4)
2143 12 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2144 : CASE (5)
2145 6 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2146 : CASE (6)
2147 0 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2148 : CASE (7)
2149 2 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2150 : CASE (9)
2151 0 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2152 : CASE (10)
2153 0 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2154 : CASE (11)
2155 0 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2156 : CASE (15)
2157 0 : CALL block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2158 : CASE DEFAULT
2159 80 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2160 : END SELECT
2161 : CASE (10)
2162 109 : CALL block_2_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2163 : CASE (11)
2164 140 : CALL block_2_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2165 : CASE (15)
2166 120 : CALL block_2_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2167 : CASE DEFAULT
2168 578528 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2169 : END SELECT
2170 : CASE (3)
2171 18745813 : SELECT CASE (mb_max)
2172 : CASE (1)
2173 7735622 : SELECT CASE (mc_max)
2174 : CASE (1)
2175 4841872 : SELECT CASE (md_max)
2176 : CASE (1)
2177 4764201 : CALL block_3_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2178 : CASE (2)
2179 10150 : CALL block_3_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2180 : CASE (3)
2181 2657866 : CALL block_3_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2182 : CASE (4)
2183 45955 : CALL block_3_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2184 : CASE (5)
2185 95766 : CALL block_3_1_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2186 : CASE (6)
2187 5 : CALL block_3_1_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2188 : CASE (7)
2189 16716 : CALL block_3_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2190 : CASE (9)
2191 4 : CALL block_3_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2192 : CASE (10)
2193 3 : CALL block_3_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2194 : CASE (11)
2195 3 : CALL block_3_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2196 : CASE (15)
2197 3 : CALL block_3_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2198 : CASE DEFAULT
2199 7590672 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2200 : END SELECT
2201 : CASE (2)
2202 6797433 : SELECT CASE (md_max)
2203 : CASE (1)
2204 31980 : CALL block_3_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2205 : CASE (2)
2206 4869 : CALL block_3_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2207 : CASE (3)
2208 29704 : CALL block_3_1_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2209 : CASE (4)
2210 3 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2211 : CASE (5)
2212 10124 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2213 : CASE (6)
2214 3 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2215 : CASE (7)
2216 979 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2217 : CASE (9)
2218 3 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2219 : CASE (10)
2220 2 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2221 : CASE (11)
2222 2 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2223 : CASE (15)
2224 2 : CALL block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2225 : CASE DEFAULT
2226 77671 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2227 : END SELECT
2228 : CASE (3)
2229 4590523 : SELECT CASE (md_max)
2230 : CASE (1)
2231 4096262 : CALL block_3_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2232 : CASE (2)
2233 15149 : CALL block_3_1_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2234 : CASE (3)
2235 2538611 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2236 : CASE (4)
2237 13991 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2238 : CASE (5)
2239 83719 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2240 : CASE (6)
2241 4 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2242 : CASE (7)
2243 17707 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2244 : CASE (9)
2245 3 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2246 : CASE (10)
2247 2 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2248 : CASE (11)
2249 2 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2250 : CASE (15)
2251 3 : CALL block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2252 : CASE DEFAULT
2253 6765453 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2254 : END SELECT
2255 : CASE (4)
2256 822310 : SELECT CASE (md_max)
2257 : CASE (1)
2258 226628 : CALL block_3_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2259 : CASE (2)
2260 2 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2261 : CASE (3)
2262 103201 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2263 : CASE (4)
2264 109555 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2265 : CASE (5)
2266 54752 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2267 : CASE (6)
2268 4 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2269 : CASE (7)
2270 111 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2271 : CASE (9)
2272 3 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2273 : CASE (10)
2274 2 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2275 : CASE (11)
2276 1 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2277 : CASE (15)
2278 2 : CALL block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2279 : CASE DEFAULT
2280 494261 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2281 : END SELECT
2282 : CASE (5)
2283 281579 : SELECT CASE (md_max)
2284 : CASE (1)
2285 281568 : CALL block_3_1_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2286 : CASE (2)
2287 10121 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2288 : CASE (3)
2289 173300 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2290 : CASE (4)
2291 54511 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2292 : CASE (5)
2293 67684 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2294 : CASE (6)
2295 2 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2296 : CASE (7)
2297 8490 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2298 : CASE (9)
2299 2 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2300 : CASE (10)
2301 2 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2302 : CASE (11)
2303 1 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2304 : CASE (15)
2305 1 : CALL block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2306 : CASE DEFAULT
2307 595682 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2308 : END SELECT
2309 : CASE (6)
2310 72999 : SELECT CASE (md_max)
2311 : CASE (1)
2312 1 : CALL block_3_1_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2313 : CASE (2)
2314 1 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2315 : CASE (3)
2316 1 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2317 : CASE (4)
2318 1 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2319 : CASE (5)
2320 1 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2321 : CASE (6)
2322 3 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2323 : CASE (7)
2324 1 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2325 : CASE (9)
2326 1 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2327 : CASE (10)
2328 1 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2329 : CASE (11)
2330 0 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2331 : CASE (15)
2332 0 : CALL block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2333 : CASE DEFAULT
2334 11 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2335 : END SELECT
2336 : CASE (7)
2337 72998 : CALL block_3_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2338 : CASE (9)
2339 8 : CALL block_3_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2340 : CASE (10)
2341 9 : CALL block_3_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2342 : CASE (11)
2343 10 : CALL block_3_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2344 : CASE (15)
2345 11 : CALL block_3_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2346 : CASE DEFAULT
2347 15596786 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2348 : END SELECT
2349 : CASE (2)
2350 6669426 : SELECT CASE (mc_max)
2351 : CASE (1)
2352 34515 : SELECT CASE (md_max)
2353 : CASE (1)
2354 2425 : CALL block_3_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2355 : CASE (2)
2356 942 : CALL block_3_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2357 : CASE (3)
2358 3540 : CALL block_3_2_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2359 : CASE (4)
2360 2 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2361 : CASE (5)
2362 2398 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2363 : CASE (6)
2364 2 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2365 : CASE (7)
2366 961 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2367 : CASE (9)
2368 1 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2369 : CASE (10)
2370 1 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2371 : CASE (11)
2372 1 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2373 : CASE (15)
2374 1 : CALL block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2375 : CASE DEFAULT
2376 10274 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2377 : END SELECT
2378 : CASE (2)
2379 39888 : SELECT CASE (md_max)
2380 : CASE (1)
2381 939 : CALL block_3_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2382 : CASE (2)
2383 15144 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2384 : CASE (3)
2385 14690 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2386 : CASE (4)
2387 1 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2388 : CASE (5)
2389 971 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2390 : CASE (6)
2391 1 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2392 : CASE (7)
2393 344 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2394 : CASE (9)
2395 0 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2396 : CASE (10)
2397 0 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2398 : CASE (11)
2399 0 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2400 : CASE (15)
2401 0 : CALL block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2402 : CASE DEFAULT
2403 32090 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2404 : END SELECT
2405 : CASE (3)
2406 3547 : SELECT CASE (md_max)
2407 : CASE (1)
2408 3538 : CALL block_3_2_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2409 : CASE (2)
2410 14693 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2411 : CASE (3)
2412 15882 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2413 : CASE (4)
2414 2 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2415 : CASE (5)
2416 3529 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2417 : CASE (6)
2418 1 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2419 : CASE (7)
2420 1304 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2421 : CASE (9)
2422 0 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2423 : CASE (10)
2424 0 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2425 : CASE (11)
2426 0 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2427 : CASE (15)
2428 0 : CALL block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2429 : CASE DEFAULT
2430 38949 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2431 : END SELECT
2432 : CASE (4)
2433 9 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2434 : CASE (5)
2435 34805 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2436 : CASE (6)
2437 6 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2438 : CASE (7)
2439 4263 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2440 : CASE (9)
2441 8 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2442 : CASE (10)
2443 9 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2444 : CASE (11)
2445 10 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2446 : CASE (15)
2447 11 : CALL block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2448 : CASE DEFAULT
2449 144950 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2450 : END SELECT
2451 : CASE (3)
2452 3167824 : SELECT CASE (mc_max)
2453 : CASE (1)
2454 1639618 : SELECT CASE (md_max)
2455 : CASE (1)
2456 1555822 : CALL block_3_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2457 : CASE (2)
2458 8672 : CALL block_3_3_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2459 : CASE (3)
2460 1387401 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2461 : CASE (4)
2462 20366 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2463 : CASE (5)
2464 54340 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2465 : CASE (6)
2466 4 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2467 : CASE (7)
2468 10473 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2469 : CASE (9)
2470 1 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2471 : CASE (10)
2472 1 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2473 : CASE (11)
2474 1 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2475 : CASE (15)
2476 1 : CALL block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2477 : CASE DEFAULT
2478 3037082 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2479 : END SELECT
2480 : CASE (2)
2481 2905485 : SELECT CASE (md_max)
2482 : CASE (1)
2483 23222 : CALL block_3_3_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2484 : CASE (2)
2485 17236 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2486 : CASE (3)
2487 33329 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2488 : CASE (4)
2489 3 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2490 : CASE (5)
2491 8635 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2492 : CASE (6)
2493 3 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2494 : CASE (7)
2495 1368 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2496 : CASE (9)
2497 0 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2498 : CASE (10)
2499 0 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2500 : CASE (11)
2501 0 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2502 : CASE (15)
2503 0 : CALL block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2504 : CASE DEFAULT
2505 83796 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2506 : END SELECT
2507 : CASE (3)
2508 2882263 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2509 : CASE (4)
2510 238307 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2511 : CASE (5)
2512 350146 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2513 : CASE (6)
2514 13 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2515 : CASE (7)
2516 42511 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2517 : CASE (9)
2518 488 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2519 : CASE (10)
2520 9 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2521 : CASE (11)
2522 10 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2523 : CASE (15)
2524 11 : CALL block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2525 : CASE DEFAULT
2526 6659152 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2527 : END SELECT
2528 : CASE (4)
2529 332319 : SELECT CASE (mc_max)
2530 : CASE (1)
2531 30345 : SELECT CASE (md_max)
2532 : CASE (1)
2533 30314 : CALL block_3_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2534 : CASE (2)
2535 8 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2536 : CASE (3)
2537 11426 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2538 : CASE (4)
2539 11939 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2540 : CASE (5)
2541 5666 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2542 : CASE (6)
2543 3 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2544 : CASE (7)
2545 0 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2546 : CASE (9)
2547 0 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2548 : CASE (10)
2549 0 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2550 : CASE (11)
2551 0 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2552 : CASE (15)
2553 0 : CALL block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2554 : CASE DEFAULT
2555 59356 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2556 : END SELECT
2557 : CASE (2)
2558 31 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2559 : CASE (3)
2560 20214 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2561 : CASE (4)
2562 34305 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2563 : CASE (5)
2564 16827 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2565 : CASE (6)
2566 9 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2567 : CASE (7)
2568 0 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2569 : CASE (9)
2570 0 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2571 : CASE (10)
2572 0 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2573 : CASE (11)
2574 0 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2575 : CASE (15)
2576 0 : CALL block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2577 : CASE DEFAULT
2578 130742 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2579 : END SELECT
2580 : CASE (5)
2581 98007 : SELECT CASE (mc_max)
2582 : CASE (1)
2583 50446 : SELECT CASE (md_max)
2584 : CASE (1)
2585 40121 : CALL block_3_5_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2586 : CASE (2)
2587 2389 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2588 : CASE (3)
2589 29493 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2590 : CASE (4)
2591 6040 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2592 : CASE (5)
2593 15642 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2594 : CASE (6)
2595 7 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2596 : CASE (7)
2597 4113 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2598 : CASE (9)
2599 0 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2600 : CASE (10)
2601 0 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2602 : CASE (11)
2603 0 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2604 : CASE (15)
2605 0 : CALL block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2606 : CASE DEFAULT
2607 97805 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2608 : END SELECT
2609 : CASE (2)
2610 10325 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2611 : CASE (3)
2612 80793 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2613 : CASE (4)
2614 17871 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2615 : CASE (5)
2616 50135 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2617 : CASE (6)
2618 10 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2619 : CASE (7)
2620 16024 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2621 : CASE (9)
2622 0 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2623 : CASE (10)
2624 0 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2625 : CASE (11)
2626 0 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2627 : CASE (15)
2628 0 : CALL block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2629 : CASE DEFAULT
2630 272963 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2631 : END SELECT
2632 : CASE (6)
2633 75352 : SELECT CASE (mc_max)
2634 : CASE (1)
2635 54 : SELECT CASE (md_max)
2636 : CASE (1)
2637 11 : CALL block_3_6_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2638 : CASE (2)
2639 10 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2640 : CASE (3)
2641 8 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2642 : CASE (4)
2643 8 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2644 : CASE (5)
2645 8 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2646 : CASE (6)
2647 8 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2648 : CASE (7)
2649 3 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2650 : CASE (9)
2651 1 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2652 : CASE (10)
2653 0 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2654 : CASE (11)
2655 0 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2656 : CASE (15)
2657 0 : CALL block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2658 : CASE DEFAULT
2659 57 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2660 : END SELECT
2661 : CASE (2)
2662 43 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2663 : CASE (3)
2664 46 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2665 : CASE (4)
2666 29 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2667 : CASE (5)
2668 16 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2669 : CASE (6)
2670 11 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2671 : CASE (7)
2672 0 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2673 : CASE (9)
2674 0 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2675 : CASE (10)
2676 0 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2677 : CASE (11)
2678 0 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2679 : CASE (15)
2680 0 : CALL block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2681 : CASE DEFAULT
2682 202 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2683 : END SELECT
2684 : CASE (7)
2685 75295 : CALL block_3_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2686 : CASE (9)
2687 165 : CALL block_3_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2688 : CASE (10)
2689 94 : CALL block_3_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2690 : CASE (11)
2691 123 : CALL block_3_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2692 : CASE (15)
2693 107 : CALL block_3_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2694 : CASE DEFAULT
2695 22880579 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2696 : END SELECT
2697 : CASE (4)
2698 4470384 : SELECT CASE (mb_max)
2699 : CASE (1)
2700 458794 : SELECT CASE (mc_max)
2701 : CASE (1)
2702 256044 : SELECT CASE (md_max)
2703 : CASE (1)
2704 256011 : CALL block_4_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2705 : CASE (2)
2706 6 : CALL block_4_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2707 : CASE (3)
2708 87533 : CALL block_4_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2709 : CASE (4)
2710 84912 : CALL block_4_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2711 : CASE (5)
2712 30101 : CALL block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2713 : CASE (6)
2714 5 : CALL block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2715 : CASE (7)
2716 100 : CALL block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2717 : CASE (9)
2718 4 : CALL block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2719 : CASE (10)
2720 3 : CALL block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2721 : CASE (11)
2722 3 : CALL block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2723 : CASE (15)
2724 4 : CALL block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2725 : CASE DEFAULT
2726 458682 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2727 : END SELECT
2728 : CASE (2)
2729 136797 : SELECT CASE (md_max)
2730 : CASE (1)
2731 3 : CALL block_4_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2732 : CASE (2)
2733 5 : CALL block_4_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2734 : CASE (3)
2735 2 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2736 : CASE (4)
2737 3 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2738 : CASE (5)
2739 4 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2740 : CASE (6)
2741 4 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2742 : CASE (7)
2743 3 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2744 : CASE (9)
2745 3 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2746 : CASE (10)
2747 2 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2748 : CASE (11)
2749 2 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2750 : CASE (15)
2751 2 : CALL block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2752 : CASE DEFAULT
2753 33 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2754 : END SELECT
2755 : CASE (3)
2756 779508 : SELECT CASE (md_max)
2757 : CASE (1)
2758 76067 : CALL block_4_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2759 : CASE (2)
2760 3 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2761 : CASE (3)
2762 35471 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2763 : CASE (4)
2764 16766 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2765 : CASE (5)
2766 8470 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2767 : CASE (6)
2768 4 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2769 : CASE (7)
2770 3 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2771 : CASE (9)
2772 3 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2773 : CASE (10)
2774 2 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2775 : CASE (11)
2776 2 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2777 : CASE (15)
2778 3 : CALL block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2779 : CASE DEFAULT
2780 136794 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2781 : END SELECT
2782 : CASE (4)
2783 606334 : SELECT CASE (md_max)
2784 : CASE (1)
2785 311129 : CALL block_4_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2786 : CASE (2)
2787 2 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2788 : CASE (3)
2789 108809 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2790 : CASE (4)
2791 208292 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2792 : CASE (5)
2793 74700 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2794 : CASE (6)
2795 4 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2796 : CASE (7)
2797 495 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2798 : CASE (9)
2799 3 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2800 : CASE (10)
2801 2 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2802 : CASE (11)
2803 2 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2804 : CASE (15)
2805 3 : CALL block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2806 : CASE DEFAULT
2807 703441 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2808 : END SELECT
2809 : CASE (5)
2810 295205 : CALL block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2811 : CASE (6)
2812 15 : CALL block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2813 : CASE (7)
2814 1423 : CALL block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2815 : CASE (9)
2816 10 : CALL block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2817 : CASE (10)
2818 11 : CALL block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2819 : CASE (11)
2820 10 : CALL block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2821 : CASE (15)
2822 11 : CALL block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2823 : CASE DEFAULT
2824 1595635 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2825 : END SELECT
2826 : CASE (2)
2827 613214 : SELECT CASE (mc_max)
2828 : CASE (1)
2829 13 : SELECT CASE (md_max)
2830 : CASE (1)
2831 5 : CALL block_4_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2832 : CASE (2)
2833 3 : CALL block_4_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2834 : CASE (3)
2835 3 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2836 : CASE (4)
2837 3 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2838 : CASE (5)
2839 2 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2840 : CASE (6)
2841 2 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2842 : CASE (7)
2843 1 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2844 : CASE (9)
2845 1 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2846 : CASE (10)
2847 1 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2848 : CASE (11)
2849 1 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2850 : CASE (15)
2851 1 : CALL block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2852 : CASE DEFAULT
2853 23 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2854 : END SELECT
2855 : CASE (2)
2856 12 : SELECT CASE (md_max)
2857 : CASE (1)
2858 1 : CALL block_4_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2859 : CASE (2)
2860 2 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2861 : CASE (3)
2862 2 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2863 : CASE (4)
2864 1 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2865 : CASE (5)
2866 1 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2867 : CASE (6)
2868 1 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2869 : CASE (7)
2870 0 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2871 : CASE (9)
2872 0 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2873 : CASE (10)
2874 0 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2875 : CASE (11)
2876 0 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2877 : CASE (15)
2878 0 : CALL block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2879 : CASE DEFAULT
2880 8 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2881 : END SELECT
2882 : CASE (3)
2883 11 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2884 : CASE (4)
2885 11 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2886 : CASE (5)
2887 7 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2888 : CASE (6)
2889 7 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2890 : CASE (7)
2891 7 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2892 : CASE (9)
2893 8 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2894 : CASE (10)
2895 9 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2896 : CASE (11)
2897 10 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2898 : CASE (15)
2899 11 : CALL block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2900 : CASE DEFAULT
2901 112 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2902 : END SELECT
2903 : CASE (3)
2904 863331 : SELECT CASE (mc_max)
2905 : CASE (1)
2906 92674 : SELECT CASE (md_max)
2907 : CASE (1)
2908 92665 : CALL block_4_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2909 : CASE (2)
2910 3 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2911 : CASE (3)
2912 39290 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2913 : CASE (4)
2914 22676 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2915 : CASE (5)
2916 10930 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2917 : CASE (6)
2918 2 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2919 : CASE (7)
2920 1 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2921 : CASE (9)
2922 1 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2923 : CASE (10)
2924 1 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2925 : CASE (11)
2926 1 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2927 : CASE (15)
2928 1 : CALL block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2929 : CASE DEFAULT
2930 165571 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2931 : END SELECT
2932 : CASE (2)
2933 9 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2934 : CASE (3)
2935 60262 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2936 : CASE (4)
2937 258622 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2938 : CASE (5)
2939 128315 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2940 : CASE (6)
2941 7 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2942 : CASE (7)
2943 367 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2944 : CASE (9)
2945 8 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2946 : CASE (10)
2947 9 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2948 : CASE (11)
2949 10 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2950 : CASE (15)
2951 11 : CALL block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2952 : CASE DEFAULT
2953 613191 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2954 : END SELECT
2955 : CASE (4)
2956 413859 : SELECT CASE (mc_max)
2957 : CASE (1)
2958 74596 : SELECT CASE (md_max)
2959 : CASE (1)
2960 74559 : CALL block_4_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2961 : CASE (2)
2962 9 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2963 : CASE (3)
2964 17355 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2965 : CASE (4)
2966 74682 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2967 : CASE (5)
2968 13309 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2969 : CASE (6)
2970 9 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2971 : CASE (7)
2972 386 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2973 : CASE (9)
2974 1 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2975 : CASE (10)
2976 2 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2977 : CASE (11)
2978 1 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2979 : CASE (15)
2980 1 : CALL block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2981 : CASE DEFAULT
2982 180314 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2983 : END SELECT
2984 : CASE (2)
2985 37 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2986 : CASE (3)
2987 30500 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2988 : CASE (4)
2989 378561 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2990 : CASE (5)
2991 104726 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2992 : CASE (6)
2993 14 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2994 : CASE (7)
2995 3570 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2996 : CASE (9)
2997 8 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
2998 : CASE (10)
2999 9 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3000 : CASE (11)
3001 10 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3002 : CASE (15)
3003 11 : CALL block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3004 : CASE DEFAULT
3005 697760 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3006 : END SELECT
3007 : CASE (5)
3008 233545 : CALL block_4_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3009 : CASE (6)
3010 234 : CALL block_4_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3011 : CASE (7)
3012 8056 : CALL block_4_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3013 : CASE (9)
3014 93 : CALL block_4_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3015 : CASE (10)
3016 118 : CALL block_4_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3017 : CASE (11)
3018 151 : CALL block_4_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3019 : CASE (15)
3020 132 : CALL block_4_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3021 : CASE DEFAULT
3022 3149027 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3023 : END SELECT
3024 : CASE (5)
3025 1373550 : SELECT CASE (mb_max)
3026 : CASE (1)
3027 580499 : SELECT CASE (mc_max)
3028 : CASE (1)
3029 271261 : SELECT CASE (md_max)
3030 : CASE (1)
3031 243939 : CALL block_5_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3032 : CASE (2)
3033 4134 : CALL block_5_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3034 : CASE (3)
3035 125691 : CALL block_5_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3036 : CASE (4)
3037 30104 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3038 : CASE (5)
3039 42111 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3040 : CASE (6)
3041 5 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3042 : CASE (7)
3043 6324 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3044 : CASE (9)
3045 4 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3046 : CASE (10)
3047 4 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3048 : CASE (11)
3049 4 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3050 : CASE (15)
3051 4 : CALL block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3052 : CASE DEFAULT
3053 452324 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3054 : END SELECT
3055 : CASE (2)
3056 316784 : SELECT CASE (md_max)
3057 : CASE (1)
3058 10288 : CALL block_5_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3059 : CASE (2)
3060 1917 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3061 : CASE (3)
3062 10139 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3063 : CASE (4)
3064 3 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3065 : CASE (5)
3066 4204 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3067 : CASE (6)
3068 4 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3069 : CASE (7)
3070 755 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3071 : CASE (9)
3072 3 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3073 : CASE (10)
3074 3 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3075 : CASE (11)
3076 3 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3077 : CASE (15)
3078 3 : CALL block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3079 : CASE DEFAULT
3080 27322 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3081 : END SELECT
3082 : CASE (3)
3083 448238 : SELECT CASE (md_max)
3084 : CASE (1)
3085 154159 : CALL block_5_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3086 : CASE (2)
3087 6035 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3088 : CASE (3)
3089 98719 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3090 : CASE (4)
3091 8212 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3092 : CASE (5)
3093 32344 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3094 : CASE (6)
3095 4 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3096 : CASE (7)
3097 7011 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3098 : CASE (9)
3099 3 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3100 : CASE (10)
3101 3 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3102 : CASE (11)
3103 3 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3104 : CASE (15)
3105 3 : CALL block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3106 : CASE DEFAULT
3107 306496 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3108 : END SELECT
3109 : CASE (4)
3110 294079 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3111 : CASE (5)
3112 264323 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3113 : CASE (6)
3114 18 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3115 : CASE (7)
3116 27175 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3117 : CASE (9)
3118 15 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3119 : CASE (10)
3120 10 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3121 : CASE (11)
3122 10 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3123 : CASE (15)
3124 11 : CALL block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3125 : CASE DEFAULT
3126 1371783 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3127 : END SELECT
3128 : CASE (2)
3129 775477 : SELECT CASE (mc_max)
3130 : CASE (1)
3131 9532 : SELECT CASE (md_max)
3132 : CASE (1)
3133 1724 : CALL block_5_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3134 : CASE (2)
3135 655 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3136 : CASE (3)
3137 2383 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3138 : CASE (4)
3139 3 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3140 : CASE (5)
3141 1779 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3142 : CASE (6)
3143 2 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3144 : CASE (7)
3145 705 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3146 : CASE (9)
3147 1 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3148 : CASE (10)
3149 1 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3150 : CASE (11)
3151 1 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3152 : CASE (15)
3153 1 : CALL block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3154 : CASE DEFAULT
3155 7255 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3156 : END SELECT
3157 : CASE (2)
3158 7808 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3159 : CASE (3)
3160 12125 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3161 : CASE (4)
3162 7 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3163 : CASE (5)
3164 52602 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3165 : CASE (6)
3166 7 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3167 : CASE (7)
3168 3127 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3169 : CASE (9)
3170 8 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3171 : CASE (10)
3172 9 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3173 : CASE (11)
3174 10 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3175 : CASE (15)
3176 11 : CALL block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3177 : CASE DEFAULT
3178 128175 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3179 : END SELECT
3180 : CASE (3)
3181 455383 : SELECT CASE (mc_max)
3182 : CASE (1)
3183 135406 : SELECT CASE (md_max)
3184 : CASE (1)
3185 109846 : CALL block_5_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3186 : CASE (2)
3187 3999 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3188 : CASE (3)
3189 69150 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3190 : CASE (4)
3191 11332 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3192 : CASE (5)
3193 24410 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3194 : CASE (6)
3195 3 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3196 : CASE (7)
3197 5073 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3198 : CASE (9)
3199 1 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3200 : CASE (10)
3201 1 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3202 : CASE (11)
3203 1 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3204 : CASE (15)
3205 1 : CALL block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3206 : CASE DEFAULT
3207 223817 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3208 : END SELECT
3209 : CASE (2)
3210 25560 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3211 : CASE (3)
3212 179218 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3213 : CASE (4)
3214 129356 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3215 : CASE (5)
3216 167224 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3217 : CASE (6)
3218 7 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3219 : CASE (7)
3220 20694 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3221 : CASE (9)
3222 8 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3223 : CASE (10)
3224 9 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3225 : CASE (11)
3226 10 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3227 : CASE (15)
3228 11 : CALL block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3229 : CASE DEFAULT
3230 768222 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3231 : END SELECT
3232 : CASE (4)
3233 231566 : CALL block_5_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3234 : CASE (5)
3235 283576 : CALL block_5_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3236 : CASE (6)
3237 267 : CALL block_5_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3238 : CASE (7)
3239 55006 : CALL block_5_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3240 : CASE (9)
3241 77 : CALL block_5_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3242 : CASE (10)
3243 143 : CALL block_5_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3244 : CASE (11)
3245 172 : CALL block_5_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3246 : CASE (15)
3247 158 : CALL block_5_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3248 : CASE DEFAULT
3249 2874749 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3250 : END SELECT
3251 : CASE (6)
3252 378604 : SELECT CASE (mb_max)
3253 : CASE (1)
3254 166 : SELECT CASE (mc_max)
3255 : CASE (1)
3256 49 : SELECT CASE (md_max)
3257 : CASE (1)
3258 10 : CALL block_6_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3259 : CASE (2)
3260 6 : CALL block_6_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3261 : CASE (3)
3262 5 : CALL block_6_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3263 : CASE (4)
3264 5 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3265 : CASE (5)
3266 6 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3267 : CASE (6)
3268 5 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3269 : CASE (7)
3270 4 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3271 : CASE (9)
3272 4 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3273 : CASE (10)
3274 4 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3275 : CASE (11)
3276 4 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3277 : CASE (15)
3278 4 : CALL block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3279 : CASE DEFAULT
3280 57 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3281 : END SELECT
3282 : CASE (2)
3283 44 : SELECT CASE (md_max)
3284 : CASE (1)
3285 4 : CALL block_6_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3286 : CASE (2)
3287 5 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3288 : CASE (3)
3289 3 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3290 : CASE (4)
3291 4 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3292 : CASE (5)
3293 4 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3294 : CASE (6)
3295 4 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3296 : CASE (7)
3297 3 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3298 : CASE (9)
3299 3 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3300 : CASE (10)
3301 3 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3302 : CASE (11)
3303 3 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3304 : CASE (15)
3305 3 : CALL block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3306 : CASE DEFAULT
3307 39 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3308 : END SELECT
3309 : CASE (3)
3310 40 : SELECT CASE (md_max)
3311 : CASE (1)
3312 5 : CALL block_6_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3313 : CASE (2)
3314 3 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3315 : CASE (3)
3316 5 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3317 : CASE (4)
3318 4 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3319 : CASE (5)
3320 4 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3321 : CASE (6)
3322 4 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3323 : CASE (7)
3324 3 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3325 : CASE (9)
3326 3 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3327 : CASE (10)
3328 3 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3329 : CASE (11)
3330 3 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3331 : CASE (15)
3332 3 : CALL block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3333 : CASE DEFAULT
3334 40 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3335 : END SELECT
3336 : CASE (4)
3337 35 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3338 : CASE (5)
3339 28 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3340 : CASE (6)
3341 24 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3342 : CASE (7)
3343 27 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3344 : CASE (9)
3345 19 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3346 : CASE (10)
3347 14 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3348 : CASE (11)
3349 10 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3350 : CASE (15)
3351 12 : CALL block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3352 : CASE DEFAULT
3353 305 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3354 : END SELECT
3355 : CASE (2)
3356 135 : SELECT CASE (mc_max)
3357 : CASE (1)
3358 15 : SELECT CASE (md_max)
3359 : CASE (1)
3360 5 : CALL block_6_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3361 : CASE (2)
3362 3 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3363 : CASE (3)
3364 3 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3365 : CASE (4)
3366 3 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3367 : CASE (5)
3368 3 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3369 : CASE (6)
3370 3 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3371 : CASE (7)
3372 1 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3373 : CASE (9)
3374 1 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3375 : CASE (10)
3376 1 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3377 : CASE (11)
3378 1 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3379 : CASE (15)
3380 1 : CALL block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3381 : CASE DEFAULT
3382 25 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3383 : END SELECT
3384 : CASE (2)
3385 10 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3386 : CASE (3)
3387 8 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3388 : CASE (4)
3389 7 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3390 : CASE (5)
3391 7 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3392 : CASE (6)
3393 8 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3394 : CASE (7)
3395 6 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3396 : CASE (9)
3397 8 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3398 : CASE (10)
3399 9 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3400 : CASE (11)
3401 10 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3402 : CASE (15)
3403 11 : CALL block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3404 : CASE DEFAULT
3405 109 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3406 : END SELECT
3407 : CASE (3)
3408 137 : SELECT CASE (mc_max)
3409 : CASE (1)
3410 16 : SELECT CASE (md_max)
3411 : CASE (1)
3412 5 : CALL block_6_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3413 : CASE (2)
3414 4 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3415 : CASE (3)
3416 3 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3417 : CASE (4)
3418 3 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3419 : CASE (5)
3420 3 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3421 : CASE (6)
3422 3 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3423 : CASE (7)
3424 1 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3425 : CASE (9)
3426 1 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3427 : CASE (10)
3428 1 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3429 : CASE (11)
3430 1 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3431 : CASE (15)
3432 1 : CALL block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3433 : CASE DEFAULT
3434 26 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3435 : END SELECT
3436 : CASE (2)
3437 11 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3438 : CASE (3)
3439 9 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3440 : CASE (4)
3441 7 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3442 : CASE (5)
3443 7 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3444 : CASE (6)
3445 8 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3446 : CASE (7)
3447 5 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3448 : CASE (9)
3449 7 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3450 : CASE (10)
3451 9 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3452 : CASE (11)
3453 10 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3454 : CASE (15)
3455 11 : CALL block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3456 : CASE DEFAULT
3457 110 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3458 : END SELECT
3459 : CASE (4)
3460 111 : CALL block_6_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3461 : CASE (5)
3462 110 : CALL block_6_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3463 : CASE (6)
3464 346 : CALL block_6_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3465 : CASE (7)
3466 37 : CALL block_6_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3467 : CASE (9)
3468 99 : CALL block_6_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3469 : CASE (10)
3470 167 : CALL block_6_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3471 : CASE (11)
3472 193 : CALL block_6_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3473 : CASE (15)
3474 180 : CALL block_6_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3475 : CASE DEFAULT
3476 1767 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3477 : END SELECT
3478 : CASE (7)
3479 161247 : SELECT CASE (mb_max)
3480 : CASE (1)
3481 70823 : SELECT CASE (mc_max)
3482 : CASE (1)
3483 30957 : SELECT CASE (md_max)
3484 : CASE (1)
3485 27817 : CALL block_7_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3486 : CASE (2)
3487 716 : CALL block_7_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3488 : CASE (3)
3489 18263 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3490 : CASE (4)
3491 99 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3492 : CASE (5)
3493 6342 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3494 : CASE (6)
3495 4 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3496 : CASE (7)
3497 3510 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3498 : CASE (9)
3499 5 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3500 : CASE (10)
3501 5 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3502 : CASE (11)
3503 4 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3504 : CASE (15)
3505 5 : CALL block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3506 : CASE DEFAULT
3507 56770 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3508 : END SELECT
3509 : CASE (2)
3510 56356 : SELECT CASE (md_max)
3511 : CASE (1)
3512 715 : CALL block_7_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3513 : CASE (2)
3514 251 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3515 : CASE (3)
3516 961 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3517 : CASE (4)
3518 2 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3519 : CASE (5)
3520 707 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3521 : CASE (6)
3522 3 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3523 : CASE (7)
3524 491 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3525 : CASE (9)
3526 3 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3527 : CASE (10)
3528 2 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3529 : CASE (11)
3530 2 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3531 : CASE (15)
3532 3 : CALL block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3533 : CASE DEFAULT
3534 3140 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3535 : END SELECT
3536 : CASE (3)
3537 55641 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3538 : CASE (4)
3539 1433 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3540 : CASE (5)
3541 26842 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3542 : CASE (6)
3543 17 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3544 : CASE (7)
3545 14898 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3546 : CASE (9)
3547 46 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3548 : CASE (10)
3549 36 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3550 : CASE (11)
3551 25 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3552 : CASE (15)
3553 23 : CALL block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3554 : CASE DEFAULT
3555 158871 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3556 : END SELECT
3557 : CASE (2)
3558 110740 : SELECT CASE (mc_max)
3559 : CASE (1)
3560 1818 : SELECT CASE (md_max)
3561 : CASE (1)
3562 738 : CALL block_7_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3563 : CASE (2)
3564 249 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3565 : CASE (3)
3566 977 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3567 : CASE (4)
3568 1 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3569 : CASE (5)
3570 753 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3571 : CASE (6)
3572 1 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3573 : CASE (7)
3574 489 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3575 : CASE (9)
3576 1 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3577 : CASE (10)
3578 1 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3579 : CASE (11)
3580 1 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3581 : CASE (15)
3582 1 : CALL block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3583 : CASE DEFAULT
3584 3212 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3585 : END SELECT
3586 : CASE (2)
3587 1080 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3588 : CASE (3)
3589 4368 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3590 : CASE (4)
3591 0 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3592 : CASE (5)
3593 3242 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3594 : CASE (6)
3595 4 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3596 : CASE (7)
3597 2110 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3598 : CASE (9)
3599 7 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3600 : CASE (10)
3601 9 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3602 : CASE (11)
3603 10 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3604 : CASE (15)
3605 11 : CALL block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3606 : CASE DEFAULT
3607 14053 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3608 : END SELECT
3609 : CASE (3)
3610 107528 : CALL block_7_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3611 : CASE (4)
3612 8042 : CALL block_7_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3613 : CASE (5)
3614 55460 : CALL block_7_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3615 : CASE (6)
3616 112 : CALL block_7_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3617 : CASE (7)
3618 33242 : CALL block_7_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3619 : CASE (9)
3620 196 : CALL block_7_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3621 : CASE (10)
3622 240 : CALL block_7_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3623 : CASE (11)
3624 279 : CALL block_7_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3625 : CASE (15)
3626 276 : CALL block_7_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3627 : CASE DEFAULT
3628 378299 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3629 : END SELECT
3630 : CASE (9)
3631 1999 : SELECT CASE (mb_max)
3632 : CASE (1)
3633 113 : SELECT CASE (mc_max)
3634 : CASE (1)
3635 40 : SELECT CASE (md_max)
3636 : CASE (1)
3637 11 : CALL block_9_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3638 : CASE (2)
3639 4 : CALL block_9_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3640 : CASE (3)
3641 3 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3642 : CASE (4)
3643 3 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3644 : CASE (5)
3645 4 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3646 : CASE (6)
3647 4 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3648 : CASE (7)
3649 6 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3650 : CASE (9)
3651 6 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3652 : CASE (10)
3653 5 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3654 : CASE (11)
3655 5 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3656 : CASE (15)
3657 5 : CALL block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3658 : CASE DEFAULT
3659 56 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3660 : END SELECT
3661 : CASE (2)
3662 36 : SELECT CASE (md_max)
3663 : CASE (1)
3664 3 : CALL block_9_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3665 : CASE (2)
3666 3 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3667 : CASE (3)
3668 1 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3669 : CASE (4)
3670 2 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3671 : CASE (5)
3672 3 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3673 : CASE (6)
3674 3 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3675 : CASE (7)
3676 3 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3677 : CASE (9)
3678 3 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3679 : CASE (10)
3680 3 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3681 : CASE (11)
3682 2 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3683 : CASE (15)
3684 3 : CALL block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3685 : CASE DEFAULT
3686 29 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3687 : END SELECT
3688 : CASE (3)
3689 33 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3690 : CASE (4)
3691 28 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3692 : CASE (5)
3693 22 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3694 : CASE (6)
3695 18 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3696 : CASE (7)
3697 62 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3698 : CASE (9)
3699 54 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3700 : CASE (10)
3701 42 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3702 : CASE (11)
3703 29 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3704 : CASE (15)
3705 26 : CALL block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3706 : CASE DEFAULT
3707 399 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3708 : END SELECT
3709 : CASE (2)
3710 519 : SELECT CASE (mc_max)
3711 : CASE (1)
3712 2 : SELECT CASE (md_max)
3713 : CASE (1)
3714 2 : CALL block_9_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3715 : CASE (2)
3716 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3717 : CASE (3)
3718 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3719 : CASE (4)
3720 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3721 : CASE (5)
3722 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3723 : CASE (6)
3724 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3725 : CASE (7)
3726 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3727 : CASE (9)
3728 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3729 : CASE (10)
3730 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3731 : CASE (11)
3732 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3733 : CASE (15)
3734 1 : CALL block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3735 : CASE DEFAULT
3736 12 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3737 : END SELECT
3738 : CASE (2)
3739 0 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3740 : CASE (3)
3741 0 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3742 : CASE (4)
3743 0 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3744 : CASE (5)
3745 1 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3746 : CASE (6)
3747 3 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3748 : CASE (7)
3749 5 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3750 : CASE (9)
3751 7 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3752 : CASE (10)
3753 8 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3754 : CASE (11)
3755 10 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3756 : CASE (15)
3757 11 : CALL block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3758 : CASE DEFAULT
3759 57 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3760 : END SELECT
3761 : CASE (3)
3762 507 : CALL block_9_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3763 : CASE (4)
3764 45 : CALL block_9_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3765 : CASE (5)
3766 75 : CALL block_9_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3767 : CASE (6)
3768 76 : CALL block_9_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3769 : CASE (7)
3770 45 : CALL block_9_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3771 : CASE (9)
3772 346 : CALL block_9_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3773 : CASE (10)
3774 213 : CALL block_9_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3775 : CASE (11)
3776 308 : CALL block_9_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3777 : CASE (15)
3778 305 : CALL block_9_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3779 : CASE DEFAULT
3780 2376 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3781 : END SELECT
3782 : CASE (10)
3783 1598 : SELECT CASE (mb_max)
3784 : CASE (1)
3785 99 : SELECT CASE (mc_max)
3786 : CASE (1)
3787 30 : SELECT CASE (md_max)
3788 : CASE (1)
3789 9 : CALL block_10_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3790 : CASE (2)
3791 3 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3792 : CASE (3)
3793 3 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3794 : CASE (4)
3795 3 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3796 : CASE (5)
3797 3 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3798 : CASE (6)
3799 3 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3800 : CASE (7)
3801 5 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3802 : CASE (9)
3803 5 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3804 : CASE (10)
3805 5 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3806 : CASE (11)
3807 4 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3808 : CASE (15)
3809 4 : CALL block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3810 : CASE DEFAULT
3811 47 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3812 : END SELECT
3813 : CASE (2)
3814 21 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3815 : CASE (3)
3816 21 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3817 : CASE (4)
3818 17 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3819 : CASE (5)
3820 18 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3821 : CASE (6)
3822 16 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3823 : CASE (7)
3824 57 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3825 : CASE (9)
3826 47 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3827 : CASE (10)
3828 46 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3829 : CASE (11)
3830 33 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3831 : CASE (15)
3832 26 : CALL block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3833 : CASE DEFAULT
3834 349 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3835 : END SELECT
3836 : CASE (2)
3837 52 : CALL block_10_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3838 : CASE (3)
3839 46 : CALL block_10_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3840 : CASE (4)
3841 39 : CALL block_10_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3842 : CASE (5)
3843 33 : CALL block_10_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3844 : CASE (6)
3845 27 : CALL block_10_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3846 : CASE (7)
3847 45 : CALL block_10_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3848 : CASE (9)
3849 104 : CALL block_10_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3850 : CASE (10)
3851 309 : CALL block_10_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3852 : CASE (11)
3853 329 : CALL block_10_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3854 : CASE (15)
3855 267 : CALL block_10_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3856 : CASE DEFAULT
3857 1600 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3858 : END SELECT
3859 : CASE (11)
3860 1730 : SELECT CASE (mb_max)
3861 : CASE (1)
3862 95 : SELECT CASE (mc_max)
3863 : CASE (1)
3864 30 : SELECT CASE (md_max)
3865 : CASE (1)
3866 9 : CALL block_11_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3867 : CASE (2)
3868 3 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3869 : CASE (3)
3870 3 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3871 : CASE (4)
3872 3 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3873 : CASE (5)
3874 3 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3875 : CASE (6)
3876 3 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3877 : CASE (7)
3878 5 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3879 : CASE (9)
3880 5 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3881 : CASE (10)
3882 5 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3883 : CASE (11)
3884 5 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3885 : CASE (15)
3886 4 : CALL block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3887 : CASE DEFAULT
3888 48 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3889 : END SELECT
3890 : CASE (2)
3891 21 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3892 : CASE (3)
3893 21 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3894 : CASE (4)
3895 17 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3896 : CASE (5)
3897 17 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3898 : CASE (6)
3899 15 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3900 : CASE (7)
3901 58 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3902 : CASE (9)
3903 49 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3904 : CASE (10)
3905 45 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3906 : CASE (11)
3907 39 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3908 : CASE (15)
3909 32 : CALL block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3910 : CASE DEFAULT
3911 362 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3912 : END SELECT
3913 : CASE (2)
3914 47 : CALL block_11_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3915 : CASE (3)
3916 40 : CALL block_11_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3917 : CASE (4)
3918 34 : CALL block_11_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3919 : CASE (5)
3920 28 : CALL block_11_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3921 : CASE (6)
3922 23 : CALL block_11_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3923 : CASE (7)
3924 45 : CALL block_11_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3925 : CASE (9)
3926 47 : CALL block_11_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3927 : CASE (10)
3928 49 : CALL block_11_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3929 : CASE (11)
3930 359 : CALL block_11_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3931 : CASE (15)
3932 215 : CALL block_11_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3933 : CASE DEFAULT
3934 1249 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3935 : END SELECT
3936 : CASE (15)
3937 219214 : SELECT CASE (mb_max)
3938 : CASE (1)
3939 100 : SELECT CASE (mc_max)
3940 : CASE (1)
3941 41 : SELECT CASE (md_max)
3942 : CASE (1)
3943 11 : CALL block_15_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3944 : CASE (2)
3945 4 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3946 : CASE (3)
3947 3 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3948 : CASE (4)
3949 3 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3950 : CASE (5)
3951 4 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3952 : CASE (6)
3953 4 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3954 : CASE (7)
3955 6 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3956 : CASE (9)
3957 6 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3958 : CASE (10)
3959 6 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3960 : CASE (11)
3961 6 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3962 : CASE (15)
3963 6 : CALL block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3964 : CASE DEFAULT
3965 59 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3966 : END SELECT
3967 : CASE (2)
3968 30 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3969 : CASE (3)
3970 33 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3971 : CASE (4)
3972 28 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3973 : CASE (5)
3974 22 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3975 : CASE (6)
3976 17 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3977 : CASE (7)
3978 67 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3979 : CASE (9)
3980 57 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3981 : CASE (10)
3982 45 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3983 : CASE (11)
3984 37 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3985 : CASE (15)
3986 38 : CALL block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3987 : CASE DEFAULT
3988 433 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3989 : END SELECT
3990 : CASE (2)
3991 41 : CALL block_15_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3992 : CASE (3)
3993 35 : CALL block_15_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3994 : CASE (4)
3995 29 : CALL block_15_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3996 : CASE (5)
3997 24 : CALL block_15_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
3998 : CASE (6)
3999 19 : CALL block_15_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4000 : CASE (7)
4001 47 : CALL block_15_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4002 : CASE (9)
4003 49 : CALL block_15_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4004 : CASE (10)
4005 124 : CALL block_15_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4006 : CASE (11)
4007 203 : CALL block_15_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4008 : CASE (15)
4009 364 : CALL block_15_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4010 : CASE DEFAULT
4011 1368 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4012 : END SELECT
4013 : CASE DEFAULT
4014 70316936 : CALL block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4015 : END SELECT
4016 : #endif
4017 70316936 : END SUBROUTINE contract_block
4018 :
4019 : #if defined (__LIBINT)
4020 : ! **************************************************************************************************
4021 : !> \brief ...
4022 : !> \param ma_max ...
4023 : !> \param mb_max ...
4024 : !> \param mc_max ...
4025 : !> \param md_max ...
4026 : !> \param kbd ...
4027 : !> \param kbc ...
4028 : !> \param kad ...
4029 : !> \param kac ...
4030 : !> \param pbd ...
4031 : !> \param pbc ...
4032 : !> \param pad ...
4033 : !> \param pac ...
4034 : !> \param prim ...
4035 : !> \param scale ...
4036 : ! **************************************************************************************************
4037 453918 : SUBROUTINE block_default(ma_max, mb_max, mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4038 : INTEGER :: ma_max, mb_max, mc_max, md_max
4039 : REAL(KIND=dp) :: kbd(mb_max*md_max), kbc(mb_max*mc_max), kad(ma_max*md_max), &
4040 : kac(ma_max*mc_max), pbd(mb_max*md_max), pbc(mb_max*mc_max), pad(ma_max*md_max), &
4041 : pac(ma_max*mc_max), prim(ma_max*mb_max*mc_max*md_max), scale
4042 :
4043 : INTEGER :: ma, mb, mc, md, p_index
4044 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4045 :
4046 8970150 : kbd(1:mb_max*md_max) = 0.0_dp
4047 11298354 : kbc(1:mb_max*mc_max) = 0.0_dp
4048 13432284 : kad(1:ma_max*md_max) = 0.0_dp
4049 17859306 : kac(1:ma_max*mc_max) = 0.0_dp
4050 : p_index = 0
4051 2674317 : DO md = 1, md_max
4052 18329922 : DO mc = 1, mc_max
4053 76240083 : DO mb = 1, mb_max
4054 58364079 : ks_bd = 0.0_dp
4055 58364079 : ks_bc = 0.0_dp
4056 58364079 : p_bd = pbd((md - 1)*mb_max + mb)
4057 58364079 : p_bc = pbc((mc - 1)*mb_max + mb)
4058 412463889 : DO ma = 1, ma_max
4059 354099810 : p_index = p_index + 1
4060 354099810 : tmp = scale*prim(p_index)
4061 354099810 : ks_bc = ks_bc + tmp*pad((md - 1)*ma_max + ma)
4062 354099810 : ks_bd = ks_bd + tmp*pac((mc - 1)*ma_max + ma)
4063 354099810 : kad((md - 1)*ma_max + ma) = kad((md - 1)*ma_max + ma) - tmp*p_bc
4064 412463889 : kac((mc - 1)*ma_max + ma) = kac((mc - 1)*ma_max + ma) - tmp*p_bd
4065 : END DO
4066 58364079 : kbd((md - 1)*mb_max + mb) = kbd((md - 1)*mb_max + mb) - ks_bd
4067 74019684 : kbc((mc - 1)*mb_max + mb) = kbc((mc - 1)*mb_max + mb) - ks_bc
4068 : END DO
4069 : END DO
4070 : END DO
4071 453918 : END SUBROUTINE block_default
4072 : ! **************************************************************************************************
4073 : !> \brief ...
4074 : !> \param kbd ...
4075 : !> \param kbc ...
4076 : !> \param kad ...
4077 : !> \param kac ...
4078 : !> \param pbd ...
4079 : !> \param pbc ...
4080 : !> \param pad ...
4081 : !> \param pac ...
4082 : !> \param prim ...
4083 : !> \param scale ...
4084 : ! **************************************************************************************************
4085 11844648 : SUBROUTINE block_1_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4086 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(1*1), kac(1*1), &
4087 : pbd(1*1), pbc(1*1), pad(1*1), &
4088 : pac(1*1), prim(1*1*1*1), scale
4089 :
4090 : INTEGER :: ma, mb, mc, md, p_index
4091 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4092 :
4093 11844648 : kbd(1:1*1) = 0.0_dp
4094 11844648 : kbc(1:1*1) = 0.0_dp
4095 11844648 : kad(1:1*1) = 0.0_dp
4096 11844648 : kac(1:1*1) = 0.0_dp
4097 11844648 : p_index = 0
4098 23689296 : DO md = 1, 1
4099 35533944 : DO mc = 1, 1
4100 35533944 : DO mb = 1, 1
4101 11844648 : ks_bd = 0.0_dp
4102 11844648 : ks_bc = 0.0_dp
4103 11844648 : p_bd = pbd((md - 1)*1 + mb)
4104 11844648 : p_bc = pbc((mc - 1)*1 + mb)
4105 23689296 : DO ma = 1, 1
4106 11844648 : p_index = p_index + 1
4107 11844648 : tmp = scale*prim(p_index)
4108 11844648 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4109 11844648 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4110 11844648 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4111 23689296 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4112 : END DO
4113 11844648 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4114 23689296 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4115 : END DO
4116 : END DO
4117 : END DO
4118 11844648 : END SUBROUTINE block_1_1_1_1
4119 : ! **************************************************************************************************
4120 : !> \brief ...
4121 : !> \param kbd ...
4122 : !> \param kbc ...
4123 : !> \param kad ...
4124 : !> \param kac ...
4125 : !> \param pbd ...
4126 : !> \param pbc ...
4127 : !> \param pad ...
4128 : !> \param pac ...
4129 : !> \param prim ...
4130 : !> \param scale ...
4131 : ! **************************************************************************************************
4132 10391 : SUBROUTINE block_1_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4133 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(1*2), kac(1*1), &
4134 : pbd(1*2), pbc(1*1), pad(1*2), &
4135 : pac(1*1), prim(1*1*1*2), scale
4136 :
4137 : INTEGER :: ma, mb, mc, md, p_index
4138 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4139 :
4140 10391 : kbd(1:1*2) = 0.0_dp
4141 10391 : kbc(1:1*1) = 0.0_dp
4142 10391 : kad(1:1*2) = 0.0_dp
4143 10391 : kac(1:1*1) = 0.0_dp
4144 10391 : p_index = 0
4145 31173 : DO md = 1, 2
4146 51955 : DO mc = 1, 1
4147 62346 : DO mb = 1, 1
4148 20782 : ks_bd = 0.0_dp
4149 20782 : ks_bc = 0.0_dp
4150 20782 : p_bd = pbd((md - 1)*1 + mb)
4151 20782 : p_bc = pbc((mc - 1)*1 + mb)
4152 41564 : DO ma = 1, 1
4153 20782 : p_index = p_index + 1
4154 20782 : tmp = scale*prim(p_index)
4155 20782 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4156 20782 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4157 20782 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4158 41564 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4159 : END DO
4160 20782 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4161 41564 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4162 : END DO
4163 : END DO
4164 : END DO
4165 10391 : END SUBROUTINE block_1_1_1_2
4166 : ! **************************************************************************************************
4167 : !> \brief ...
4168 : !> \param kbd ...
4169 : !> \param kbc ...
4170 : !> \param kad ...
4171 : !> \param kac ...
4172 : !> \param pbd ...
4173 : !> \param pbc ...
4174 : !> \param pad ...
4175 : !> \param pac ...
4176 : !> \param prim ...
4177 : !> \param scale ...
4178 : ! **************************************************************************************************
4179 4325884 : SUBROUTINE block_1_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4180 : REAL(KIND=dp) :: kbd(1*3), kbc(1*1), kad(1*3), kac(1*1), &
4181 : pbd(1*3), pbc(1*1), pad(1*3), &
4182 : pac(1*1), prim(1*1*1*3), scale
4183 :
4184 : INTEGER :: ma, mb, mc, md, p_index
4185 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4186 :
4187 4325884 : kbd(1:1*3) = 0.0_dp
4188 4325884 : kbc(1:1*1) = 0.0_dp
4189 4325884 : kad(1:1*3) = 0.0_dp
4190 4325884 : kac(1:1*1) = 0.0_dp
4191 4325884 : p_index = 0
4192 17303536 : DO md = 1, 3
4193 30281188 : DO mc = 1, 1
4194 38932956 : DO mb = 1, 1
4195 12977652 : ks_bd = 0.0_dp
4196 12977652 : ks_bc = 0.0_dp
4197 12977652 : p_bd = pbd((md - 1)*1 + mb)
4198 12977652 : p_bc = pbc((mc - 1)*1 + mb)
4199 25955304 : DO ma = 1, 1
4200 12977652 : p_index = p_index + 1
4201 12977652 : tmp = scale*prim(p_index)
4202 12977652 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4203 12977652 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4204 12977652 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4205 25955304 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4206 : END DO
4207 12977652 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4208 25955304 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4209 : END DO
4210 : END DO
4211 : END DO
4212 4325884 : END SUBROUTINE block_1_1_1_3
4213 : ! **************************************************************************************************
4214 : !> \brief ...
4215 : !> \param kbd ...
4216 : !> \param kbc ...
4217 : !> \param kad ...
4218 : !> \param kac ...
4219 : !> \param pbd ...
4220 : !> \param pbc ...
4221 : !> \param pad ...
4222 : !> \param pac ...
4223 : !> \param prim ...
4224 : !> \param scale ...
4225 : ! **************************************************************************************************
4226 155778 : SUBROUTINE block_1_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4227 : REAL(KIND=dp) :: kbd(1*4), kbc(1*1), kad(1*4), kac(1*1), &
4228 : pbd(1*4), pbc(1*1), pad(1*4), &
4229 : pac(1*1), prim(1*1*1*4), scale
4230 :
4231 : INTEGER :: ma, mb, mc, md, p_index
4232 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4233 :
4234 155778 : kbd(1:1*4) = 0.0_dp
4235 155778 : kbc(1:1*1) = 0.0_dp
4236 155778 : kad(1:1*4) = 0.0_dp
4237 155778 : kac(1:1*1) = 0.0_dp
4238 155778 : p_index = 0
4239 778890 : DO md = 1, 4
4240 1402002 : DO mc = 1, 1
4241 1869336 : DO mb = 1, 1
4242 623112 : ks_bd = 0.0_dp
4243 623112 : ks_bc = 0.0_dp
4244 623112 : p_bd = pbd((md - 1)*1 + mb)
4245 623112 : p_bc = pbc((mc - 1)*1 + mb)
4246 1246224 : DO ma = 1, 1
4247 623112 : p_index = p_index + 1
4248 623112 : tmp = scale*prim(p_index)
4249 623112 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4250 623112 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4251 623112 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4252 1246224 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4253 : END DO
4254 623112 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4255 1246224 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4256 : END DO
4257 : END DO
4258 : END DO
4259 155778 : END SUBROUTINE block_1_1_1_4
4260 : ! **************************************************************************************************
4261 : !> \brief ...
4262 : !> \param kbd ...
4263 : !> \param kbc ...
4264 : !> \param kad ...
4265 : !> \param kac ...
4266 : !> \param pbd ...
4267 : !> \param pbc ...
4268 : !> \param pad ...
4269 : !> \param pac ...
4270 : !> \param prim ...
4271 : !> \param scale ...
4272 : ! **************************************************************************************************
4273 176853 : SUBROUTINE block_1_1_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4274 : REAL(KIND=dp) :: kbd(1*5), kbc(1*1), kad(1*5), kac(1*1), &
4275 : pbd(1*5), pbc(1*1), pad(1*5), &
4276 : pac(1*1), prim(1*1*1*5), scale
4277 :
4278 : INTEGER :: ma, mb, mc, md, p_index
4279 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4280 :
4281 176853 : kbd(1:1*5) = 0.0_dp
4282 176853 : kbc(1:1*1) = 0.0_dp
4283 176853 : kad(1:1*5) = 0.0_dp
4284 176853 : kac(1:1*1) = 0.0_dp
4285 176853 : p_index = 0
4286 1061118 : DO md = 1, 5
4287 1945383 : DO mc = 1, 1
4288 2652795 : DO mb = 1, 1
4289 884265 : ks_bd = 0.0_dp
4290 884265 : ks_bc = 0.0_dp
4291 884265 : p_bd = pbd((md - 1)*1 + mb)
4292 884265 : p_bc = pbc((mc - 1)*1 + mb)
4293 1768530 : DO ma = 1, 1
4294 884265 : p_index = p_index + 1
4295 884265 : tmp = scale*prim(p_index)
4296 884265 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4297 884265 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4298 884265 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4299 1768530 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4300 : END DO
4301 884265 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4302 1768530 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4303 : END DO
4304 : END DO
4305 : END DO
4306 176853 : END SUBROUTINE block_1_1_1_5
4307 : ! **************************************************************************************************
4308 : !> \brief ...
4309 : !> \param kbd ...
4310 : !> \param kbc ...
4311 : !> \param kad ...
4312 : !> \param kac ...
4313 : !> \param pbd ...
4314 : !> \param pbc ...
4315 : !> \param pad ...
4316 : !> \param pac ...
4317 : !> \param prim ...
4318 : !> \param scale ...
4319 : ! **************************************************************************************************
4320 11 : SUBROUTINE block_1_1_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4321 : REAL(KIND=dp) :: kbd(1*6), kbc(1*1), kad(1*6), kac(1*1), &
4322 : pbd(1*6), pbc(1*1), pad(1*6), &
4323 : pac(1*1), prim(1*1*1*6), scale
4324 :
4325 : INTEGER :: ma, mb, mc, md, p_index
4326 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4327 :
4328 11 : kbd(1:1*6) = 0.0_dp
4329 11 : kbc(1:1*1) = 0.0_dp
4330 11 : kad(1:1*6) = 0.0_dp
4331 11 : kac(1:1*1) = 0.0_dp
4332 11 : p_index = 0
4333 77 : DO md = 1, 6
4334 143 : DO mc = 1, 1
4335 198 : DO mb = 1, 1
4336 66 : ks_bd = 0.0_dp
4337 66 : ks_bc = 0.0_dp
4338 66 : p_bd = pbd((md - 1)*1 + mb)
4339 66 : p_bc = pbc((mc - 1)*1 + mb)
4340 132 : DO ma = 1, 1
4341 66 : p_index = p_index + 1
4342 66 : tmp = scale*prim(p_index)
4343 66 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4344 66 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4345 66 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4346 132 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4347 : END DO
4348 66 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4349 132 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4350 : END DO
4351 : END DO
4352 : END DO
4353 11 : END SUBROUTINE block_1_1_1_6
4354 : ! **************************************************************************************************
4355 : !> \brief ...
4356 : !> \param kbd ...
4357 : !> \param kbc ...
4358 : !> \param kad ...
4359 : !> \param kac ...
4360 : !> \param pbd ...
4361 : !> \param pbc ...
4362 : !> \param pad ...
4363 : !> \param pac ...
4364 : !> \param prim ...
4365 : !> \param scale ...
4366 : ! **************************************************************************************************
4367 23226 : SUBROUTINE block_1_1_1_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4368 : REAL(KIND=dp) :: kbd(1*7), kbc(1*1), kad(1*7), kac(1*1), &
4369 : pbd(1*7), pbc(1*1), pad(1*7), &
4370 : pac(1*1), prim(1*1*1*7), scale
4371 :
4372 : INTEGER :: ma, mb, mc, md, p_index
4373 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4374 :
4375 23226 : kbd(1:1*7) = 0.0_dp
4376 23226 : kbc(1:1*1) = 0.0_dp
4377 23226 : kad(1:1*7) = 0.0_dp
4378 23226 : kac(1:1*1) = 0.0_dp
4379 23226 : p_index = 0
4380 185808 : DO md = 1, 7
4381 348390 : DO mc = 1, 1
4382 487746 : DO mb = 1, 1
4383 162582 : ks_bd = 0.0_dp
4384 162582 : ks_bc = 0.0_dp
4385 162582 : p_bd = pbd((md - 1)*1 + mb)
4386 162582 : p_bc = pbc((mc - 1)*1 + mb)
4387 325164 : DO ma = 1, 1
4388 162582 : p_index = p_index + 1
4389 162582 : tmp = scale*prim(p_index)
4390 162582 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4391 162582 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4392 162582 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4393 325164 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4394 : END DO
4395 162582 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4396 325164 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4397 : END DO
4398 : END DO
4399 : END DO
4400 23226 : END SUBROUTINE block_1_1_1_7
4401 : ! **************************************************************************************************
4402 : !> \brief ...
4403 : !> \param kbd ...
4404 : !> \param kbc ...
4405 : !> \param kad ...
4406 : !> \param kac ...
4407 : !> \param pbd ...
4408 : !> \param pbc ...
4409 : !> \param pad ...
4410 : !> \param pac ...
4411 : !> \param prim ...
4412 : !> \param scale ...
4413 : ! **************************************************************************************************
4414 10 : SUBROUTINE block_1_1_1_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4415 : REAL(KIND=dp) :: kbd(1*9), kbc(1*1), kad(1*9), kac(1*1), &
4416 : pbd(1*9), pbc(1*1), pad(1*9), &
4417 : pac(1*1), prim(1*1*1*9), scale
4418 :
4419 : INTEGER :: ma, mb, mc, md, p_index
4420 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4421 :
4422 10 : kbd(1:1*9) = 0.0_dp
4423 10 : kbc(1:1*1) = 0.0_dp
4424 10 : kad(1:1*9) = 0.0_dp
4425 10 : kac(1:1*1) = 0.0_dp
4426 10 : p_index = 0
4427 100 : DO md = 1, 9
4428 190 : DO mc = 1, 1
4429 270 : DO mb = 1, 1
4430 90 : ks_bd = 0.0_dp
4431 90 : ks_bc = 0.0_dp
4432 90 : p_bd = pbd((md - 1)*1 + mb)
4433 90 : p_bc = pbc((mc - 1)*1 + mb)
4434 180 : DO ma = 1, 1
4435 90 : p_index = p_index + 1
4436 90 : tmp = scale*prim(p_index)
4437 90 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4438 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4439 90 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4440 180 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4441 : END DO
4442 90 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4443 180 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4444 : END DO
4445 : END DO
4446 : END DO
4447 10 : END SUBROUTINE block_1_1_1_9
4448 : ! **************************************************************************************************
4449 : !> \brief ...
4450 : !> \param kbd ...
4451 : !> \param kbc ...
4452 : !> \param kad ...
4453 : !> \param kac ...
4454 : !> \param pbd ...
4455 : !> \param pbc ...
4456 : !> \param pad ...
4457 : !> \param pac ...
4458 : !> \param prim ...
4459 : !> \param scale ...
4460 : ! **************************************************************************************************
4461 9 : SUBROUTINE block_1_1_1_10(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4462 : REAL(KIND=dp) :: kbd(1*10), kbc(1*1), kad(1*10), &
4463 : kac(1*1), pbd(1*10), pbc(1*1), &
4464 : pad(1*10), pac(1*1), prim(1*1*1*10), &
4465 : scale
4466 :
4467 : INTEGER :: ma, mb, mc, md, p_index
4468 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4469 :
4470 9 : kbd(1:1*10) = 0.0_dp
4471 9 : kbc(1:1*1) = 0.0_dp
4472 9 : kad(1:1*10) = 0.0_dp
4473 9 : kac(1:1*1) = 0.0_dp
4474 9 : p_index = 0
4475 99 : DO md = 1, 10
4476 189 : DO mc = 1, 1
4477 270 : DO mb = 1, 1
4478 90 : ks_bd = 0.0_dp
4479 90 : ks_bc = 0.0_dp
4480 90 : p_bd = pbd((md - 1)*1 + mb)
4481 90 : p_bc = pbc((mc - 1)*1 + mb)
4482 180 : DO ma = 1, 1
4483 90 : p_index = p_index + 1
4484 90 : tmp = scale*prim(p_index)
4485 90 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4486 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4487 90 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4488 180 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4489 : END DO
4490 90 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4491 180 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4492 : END DO
4493 : END DO
4494 : END DO
4495 9 : END SUBROUTINE block_1_1_1_10
4496 : ! **************************************************************************************************
4497 : !> \brief ...
4498 : !> \param kbd ...
4499 : !> \param kbc ...
4500 : !> \param kad ...
4501 : !> \param kac ...
4502 : !> \param pbd ...
4503 : !> \param pbc ...
4504 : !> \param pad ...
4505 : !> \param pac ...
4506 : !> \param prim ...
4507 : !> \param scale ...
4508 : ! **************************************************************************************************
4509 9 : SUBROUTINE block_1_1_1_11(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4510 : REAL(KIND=dp) :: kbd(1*11), kbc(1*1), kad(1*11), &
4511 : kac(1*1), pbd(1*11), pbc(1*1), &
4512 : pad(1*11), pac(1*1), prim(1*1*1*11), &
4513 : scale
4514 :
4515 : INTEGER :: ma, mb, mc, md, p_index
4516 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4517 :
4518 9 : kbd(1:1*11) = 0.0_dp
4519 9 : kbc(1:1*1) = 0.0_dp
4520 9 : kad(1:1*11) = 0.0_dp
4521 9 : kac(1:1*1) = 0.0_dp
4522 9 : p_index = 0
4523 108 : DO md = 1, 11
4524 207 : DO mc = 1, 1
4525 297 : DO mb = 1, 1
4526 99 : ks_bd = 0.0_dp
4527 99 : ks_bc = 0.0_dp
4528 99 : p_bd = pbd((md - 1)*1 + mb)
4529 99 : p_bc = pbc((mc - 1)*1 + mb)
4530 198 : DO ma = 1, 1
4531 99 : p_index = p_index + 1
4532 99 : tmp = scale*prim(p_index)
4533 99 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4534 99 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4535 99 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4536 198 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4537 : END DO
4538 99 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4539 198 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4540 : END DO
4541 : END DO
4542 : END DO
4543 9 : END SUBROUTINE block_1_1_1_11
4544 : ! **************************************************************************************************
4545 : !> \brief ...
4546 : !> \param kbd ...
4547 : !> \param kbc ...
4548 : !> \param kad ...
4549 : !> \param kac ...
4550 : !> \param pbd ...
4551 : !> \param pbc ...
4552 : !> \param pad ...
4553 : !> \param pac ...
4554 : !> \param prim ...
4555 : !> \param scale ...
4556 : ! **************************************************************************************************
4557 10 : SUBROUTINE block_1_1_1_15(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4558 : REAL(KIND=dp) :: kbd(1*15), kbc(1*1), kad(1*15), &
4559 : kac(1*1), pbd(1*15), pbc(1*1), &
4560 : pad(1*15), pac(1*1), prim(1*1*1*15), &
4561 : scale
4562 :
4563 : INTEGER :: ma, mb, mc, md, p_index
4564 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4565 :
4566 10 : kbd(1:1*15) = 0.0_dp
4567 10 : kbc(1:1*1) = 0.0_dp
4568 10 : kad(1:1*15) = 0.0_dp
4569 10 : kac(1:1*1) = 0.0_dp
4570 10 : p_index = 0
4571 160 : DO md = 1, 15
4572 310 : DO mc = 1, 1
4573 450 : DO mb = 1, 1
4574 150 : ks_bd = 0.0_dp
4575 150 : ks_bc = 0.0_dp
4576 150 : p_bd = pbd((md - 1)*1 + mb)
4577 150 : p_bc = pbc((mc - 1)*1 + mb)
4578 300 : DO ma = 1, 1
4579 150 : p_index = p_index + 1
4580 150 : tmp = scale*prim(p_index)
4581 150 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4582 150 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4583 150 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4584 300 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4585 : END DO
4586 150 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4587 300 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4588 : END DO
4589 : END DO
4590 : END DO
4591 10 : END SUBROUTINE block_1_1_1_15
4592 : ! **************************************************************************************************
4593 : !> \brief ...
4594 : !> \param kbd ...
4595 : !> \param kbc ...
4596 : !> \param kad ...
4597 : !> \param kac ...
4598 : !> \param pbd ...
4599 : !> \param pbc ...
4600 : !> \param pad ...
4601 : !> \param pac ...
4602 : !> \param prim ...
4603 : !> \param scale ...
4604 : ! **************************************************************************************************
4605 35441 : SUBROUTINE block_1_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4606 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(1*1), kac(1*2), &
4607 : pbd(1*1), pbc(1*2), pad(1*1), &
4608 : pac(1*2), prim(1*1*2*1), scale
4609 :
4610 : INTEGER :: ma, mb, mc, md, p_index
4611 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4612 :
4613 35441 : kbd(1:1*1) = 0.0_dp
4614 35441 : kbc(1:1*2) = 0.0_dp
4615 35441 : kad(1:1*1) = 0.0_dp
4616 35441 : kac(1:1*2) = 0.0_dp
4617 35441 : p_index = 0
4618 70882 : DO md = 1, 1
4619 141764 : DO mc = 1, 2
4620 177205 : DO mb = 1, 1
4621 70882 : ks_bd = 0.0_dp
4622 70882 : ks_bc = 0.0_dp
4623 70882 : p_bd = pbd((md - 1)*1 + mb)
4624 70882 : p_bc = pbc((mc - 1)*1 + mb)
4625 141764 : DO ma = 1, 1
4626 70882 : p_index = p_index + 1
4627 70882 : tmp = scale*prim(p_index)
4628 70882 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4629 70882 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4630 70882 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4631 141764 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4632 : END DO
4633 70882 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4634 141764 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4635 : END DO
4636 : END DO
4637 : END DO
4638 35441 : END SUBROUTINE block_1_1_2_1
4639 : ! **************************************************************************************************
4640 : !> \brief ...
4641 : !> \param kbd ...
4642 : !> \param kbc ...
4643 : !> \param kad ...
4644 : !> \param kac ...
4645 : !> \param pbd ...
4646 : !> \param pbc ...
4647 : !> \param pad ...
4648 : !> \param pac ...
4649 : !> \param prim ...
4650 : !> \param scale ...
4651 : ! **************************************************************************************************
4652 5028 : SUBROUTINE block_1_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4653 : REAL(KIND=dp) :: kbd(1*2), kbc(1*2), kad(1*2), kac(1*2), &
4654 : pbd(1*2), pbc(1*2), pad(1*2), &
4655 : pac(1*2), prim(1*1*2*2), scale
4656 :
4657 : INTEGER :: ma, mb, mc, md, p_index
4658 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4659 :
4660 5028 : kbd(1:1*2) = 0.0_dp
4661 5028 : kbc(1:1*2) = 0.0_dp
4662 5028 : kad(1:1*2) = 0.0_dp
4663 5028 : kac(1:1*2) = 0.0_dp
4664 5028 : p_index = 0
4665 15084 : DO md = 1, 2
4666 35196 : DO mc = 1, 2
4667 50280 : DO mb = 1, 1
4668 20112 : ks_bd = 0.0_dp
4669 20112 : ks_bc = 0.0_dp
4670 20112 : p_bd = pbd((md - 1)*1 + mb)
4671 20112 : p_bc = pbc((mc - 1)*1 + mb)
4672 40224 : DO ma = 1, 1
4673 20112 : p_index = p_index + 1
4674 20112 : tmp = scale*prim(p_index)
4675 20112 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4676 20112 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4677 20112 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4678 40224 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4679 : END DO
4680 20112 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4681 40224 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4682 : END DO
4683 : END DO
4684 : END DO
4685 5028 : END SUBROUTINE block_1_1_2_2
4686 : ! **************************************************************************************************
4687 : !> \brief ...
4688 : !> \param kbd ...
4689 : !> \param kbc ...
4690 : !> \param kad ...
4691 : !> \param kac ...
4692 : !> \param pbd ...
4693 : !> \param pbc ...
4694 : !> \param pad ...
4695 : !> \param pac ...
4696 : !> \param prim ...
4697 : !> \param scale ...
4698 : ! **************************************************************************************************
4699 31999 : SUBROUTINE block_1_1_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4700 : REAL(KIND=dp) :: kbd(1*3), kbc(1*2), kad(1*3), kac(1*2), &
4701 : pbd(1*3), pbc(1*2), pad(1*3), &
4702 : pac(1*2), prim(1*1*2*3), scale
4703 :
4704 : INTEGER :: ma, mb, mc, md, p_index
4705 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4706 :
4707 31999 : kbd(1:1*3) = 0.0_dp
4708 31999 : kbc(1:1*2) = 0.0_dp
4709 31999 : kad(1:1*3) = 0.0_dp
4710 31999 : kac(1:1*2) = 0.0_dp
4711 31999 : p_index = 0
4712 127996 : DO md = 1, 3
4713 319990 : DO mc = 1, 2
4714 479985 : DO mb = 1, 1
4715 191994 : ks_bd = 0.0_dp
4716 191994 : ks_bc = 0.0_dp
4717 191994 : p_bd = pbd((md - 1)*1 + mb)
4718 191994 : p_bc = pbc((mc - 1)*1 + mb)
4719 383988 : DO ma = 1, 1
4720 191994 : p_index = p_index + 1
4721 191994 : tmp = scale*prim(p_index)
4722 191994 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4723 191994 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4724 191994 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4725 383988 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4726 : END DO
4727 191994 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4728 383988 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4729 : END DO
4730 : END DO
4731 : END DO
4732 31999 : END SUBROUTINE block_1_1_2_3
4733 : ! **************************************************************************************************
4734 : !> \brief ...
4735 : !> \param kbd ...
4736 : !> \param kbc ...
4737 : !> \param kad ...
4738 : !> \param kac ...
4739 : !> \param pbd ...
4740 : !> \param pbc ...
4741 : !> \param pad ...
4742 : !> \param pac ...
4743 : !> \param prim ...
4744 : !> \param scale ...
4745 : ! **************************************************************************************************
4746 7 : SUBROUTINE block_1_1_2_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4747 : REAL(KIND=dp) :: kbd(1*4), kbc(1*2), kad(1*4), kac(1*2), &
4748 : pbd(1*4), pbc(1*2), pad(1*4), &
4749 : pac(1*2), prim(1*1*2*4), scale
4750 :
4751 : INTEGER :: ma, mb, mc, md, p_index
4752 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4753 :
4754 7 : kbd(1:1*4) = 0.0_dp
4755 7 : kbc(1:1*2) = 0.0_dp
4756 7 : kad(1:1*4) = 0.0_dp
4757 7 : kac(1:1*2) = 0.0_dp
4758 7 : p_index = 0
4759 35 : DO md = 1, 4
4760 91 : DO mc = 1, 2
4761 140 : DO mb = 1, 1
4762 56 : ks_bd = 0.0_dp
4763 56 : ks_bc = 0.0_dp
4764 56 : p_bd = pbd((md - 1)*1 + mb)
4765 56 : p_bc = pbc((mc - 1)*1 + mb)
4766 112 : DO ma = 1, 1
4767 56 : p_index = p_index + 1
4768 56 : tmp = scale*prim(p_index)
4769 56 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4770 56 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4771 56 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4772 112 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4773 : END DO
4774 56 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4775 112 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4776 : END DO
4777 : END DO
4778 : END DO
4779 7 : END SUBROUTINE block_1_1_2_4
4780 : ! **************************************************************************************************
4781 : !> \brief ...
4782 : !> \param kbd ...
4783 : !> \param kbc ...
4784 : !> \param kad ...
4785 : !> \param kac ...
4786 : !> \param pbd ...
4787 : !> \param pbc ...
4788 : !> \param pad ...
4789 : !> \param pac ...
4790 : !> \param prim ...
4791 : !> \param scale ...
4792 : ! **************************************************************************************************
4793 10255 : SUBROUTINE block_1_1_2_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4794 : REAL(KIND=dp) :: kbd(1*5), kbc(1*2), kad(1*5), kac(1*2), &
4795 : pbd(1*5), pbc(1*2), pad(1*5), &
4796 : pac(1*2), prim(1*1*2*5), scale
4797 :
4798 : INTEGER :: ma, mb, mc, md, p_index
4799 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4800 :
4801 10255 : kbd(1:1*5) = 0.0_dp
4802 10255 : kbc(1:1*2) = 0.0_dp
4803 10255 : kad(1:1*5) = 0.0_dp
4804 10255 : kac(1:1*2) = 0.0_dp
4805 10255 : p_index = 0
4806 61530 : DO md = 1, 5
4807 164080 : DO mc = 1, 2
4808 256375 : DO mb = 1, 1
4809 102550 : ks_bd = 0.0_dp
4810 102550 : ks_bc = 0.0_dp
4811 102550 : p_bd = pbd((md - 1)*1 + mb)
4812 102550 : p_bc = pbc((mc - 1)*1 + mb)
4813 205100 : DO ma = 1, 1
4814 102550 : p_index = p_index + 1
4815 102550 : tmp = scale*prim(p_index)
4816 102550 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4817 102550 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4818 102550 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4819 205100 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4820 : END DO
4821 102550 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4822 205100 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4823 : END DO
4824 : END DO
4825 : END DO
4826 10255 : END SUBROUTINE block_1_1_2_5
4827 : ! **************************************************************************************************
4828 : !> \brief ...
4829 : !> \param kbd ...
4830 : !> \param kbc ...
4831 : !> \param kad ...
4832 : !> \param kac ...
4833 : !> \param pbd ...
4834 : !> \param pbc ...
4835 : !> \param pad ...
4836 : !> \param pac ...
4837 : !> \param prim ...
4838 : !> \param scale ...
4839 : ! **************************************************************************************************
4840 8 : SUBROUTINE block_1_1_2_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4841 : REAL(KIND=dp) :: kbd(1*6), kbc(1*2), kad(1*6), kac(1*2), &
4842 : pbd(1*6), pbc(1*2), pad(1*6), &
4843 : pac(1*2), prim(1*1*2*6), scale
4844 :
4845 : INTEGER :: ma, mb, mc, md, p_index
4846 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4847 :
4848 8 : kbd(1:1*6) = 0.0_dp
4849 8 : kbc(1:1*2) = 0.0_dp
4850 8 : kad(1:1*6) = 0.0_dp
4851 8 : kac(1:1*2) = 0.0_dp
4852 8 : p_index = 0
4853 56 : DO md = 1, 6
4854 152 : DO mc = 1, 2
4855 240 : DO mb = 1, 1
4856 96 : ks_bd = 0.0_dp
4857 96 : ks_bc = 0.0_dp
4858 96 : p_bd = pbd((md - 1)*1 + mb)
4859 96 : p_bc = pbc((mc - 1)*1 + mb)
4860 192 : DO ma = 1, 1
4861 96 : p_index = p_index + 1
4862 96 : tmp = scale*prim(p_index)
4863 96 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4864 96 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4865 96 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4866 192 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4867 : END DO
4868 96 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4869 192 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4870 : END DO
4871 : END DO
4872 : END DO
4873 8 : END SUBROUTINE block_1_1_2_6
4874 : ! **************************************************************************************************
4875 : !> \brief ...
4876 : !> \param kbd ...
4877 : !> \param kbc ...
4878 : !> \param kad ...
4879 : !> \param kac ...
4880 : !> \param pbd ...
4881 : !> \param pbc ...
4882 : !> \param pad ...
4883 : !> \param pac ...
4884 : !> \param prim ...
4885 : !> \param scale ...
4886 : ! **************************************************************************************************
4887 742 : SUBROUTINE block_1_1_2_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4888 : REAL(KIND=dp) :: kbd(1*7), kbc(1*2), kad(1*7), kac(1*2), &
4889 : pbd(1*7), pbc(1*2), pad(1*7), &
4890 : pac(1*2), prim(1*1*2*7), scale
4891 :
4892 : INTEGER :: ma, mb, mc, md, p_index
4893 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4894 :
4895 742 : kbd(1:1*7) = 0.0_dp
4896 742 : kbc(1:1*2) = 0.0_dp
4897 742 : kad(1:1*7) = 0.0_dp
4898 742 : kac(1:1*2) = 0.0_dp
4899 742 : p_index = 0
4900 5936 : DO md = 1, 7
4901 16324 : DO mc = 1, 2
4902 25970 : DO mb = 1, 1
4903 10388 : ks_bd = 0.0_dp
4904 10388 : ks_bc = 0.0_dp
4905 10388 : p_bd = pbd((md - 1)*1 + mb)
4906 10388 : p_bc = pbc((mc - 1)*1 + mb)
4907 20776 : DO ma = 1, 1
4908 10388 : p_index = p_index + 1
4909 10388 : tmp = scale*prim(p_index)
4910 10388 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4911 10388 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4912 10388 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4913 20776 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4914 : END DO
4915 10388 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4916 20776 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4917 : END DO
4918 : END DO
4919 : END DO
4920 742 : END SUBROUTINE block_1_1_2_7
4921 : ! **************************************************************************************************
4922 : !> \brief ...
4923 : !> \param kbd ...
4924 : !> \param kbc ...
4925 : !> \param kad ...
4926 : !> \param kac ...
4927 : !> \param pbd ...
4928 : !> \param pbc ...
4929 : !> \param pad ...
4930 : !> \param pac ...
4931 : !> \param prim ...
4932 : !> \param scale ...
4933 : ! **************************************************************************************************
4934 6 : SUBROUTINE block_1_1_2_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4935 : REAL(KIND=dp) :: kbd(1*9), kbc(1*2), kad(1*9), kac(1*2), &
4936 : pbd(1*9), pbc(1*2), pad(1*9), &
4937 : pac(1*2), prim(1*1*2*9), scale
4938 :
4939 : INTEGER :: ma, mb, mc, md, p_index
4940 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4941 :
4942 6 : kbd(1:1*9) = 0.0_dp
4943 6 : kbc(1:1*2) = 0.0_dp
4944 6 : kad(1:1*9) = 0.0_dp
4945 6 : kac(1:1*2) = 0.0_dp
4946 6 : p_index = 0
4947 60 : DO md = 1, 9
4948 168 : DO mc = 1, 2
4949 270 : DO mb = 1, 1
4950 108 : ks_bd = 0.0_dp
4951 108 : ks_bc = 0.0_dp
4952 108 : p_bd = pbd((md - 1)*1 + mb)
4953 108 : p_bc = pbc((mc - 1)*1 + mb)
4954 216 : DO ma = 1, 1
4955 108 : p_index = p_index + 1
4956 108 : tmp = scale*prim(p_index)
4957 108 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
4958 108 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
4959 108 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
4960 216 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
4961 : END DO
4962 108 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
4963 216 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
4964 : END DO
4965 : END DO
4966 : END DO
4967 6 : END SUBROUTINE block_1_1_2_9
4968 : ! **************************************************************************************************
4969 : !> \brief ...
4970 : !> \param md_max ...
4971 : !> \param kbd ...
4972 : !> \param kbc ...
4973 : !> \param kad ...
4974 : !> \param kac ...
4975 : !> \param pbd ...
4976 : !> \param pbc ...
4977 : !> \param pad ...
4978 : !> \param pac ...
4979 : !> \param prim ...
4980 : !> \param scale ...
4981 : ! **************************************************************************************************
4982 15 : SUBROUTINE block_1_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
4983 : INTEGER :: md_max
4984 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(1*md_max), kac(1*2), pbd(1*md_max), pbc(1*2), &
4985 : pad(1*md_max), pac(1*2), prim(1*1*2*md_max), scale
4986 :
4987 : INTEGER :: ma, mb, mc, md, p_index
4988 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
4989 :
4990 199 : kbd(1:1*md_max) = 0.0_dp
4991 15 : kbc(1:1*2) = 0.0_dp
4992 199 : kad(1:1*md_max) = 0.0_dp
4993 15 : kac(1:1*2) = 0.0_dp
4994 15 : p_index = 0
4995 199 : DO md = 1, md_max
4996 567 : DO mc = 1, 2
4997 920 : DO mb = 1, 1
4998 368 : ks_bd = 0.0_dp
4999 368 : ks_bc = 0.0_dp
5000 368 : p_bd = pbd((md - 1)*1 + mb)
5001 368 : p_bc = pbc((mc - 1)*1 + mb)
5002 736 : DO ma = 1, 1
5003 368 : p_index = p_index + 1
5004 368 : tmp = scale*prim(p_index)
5005 368 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5006 368 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5007 368 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5008 736 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5009 : END DO
5010 368 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5011 736 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5012 : END DO
5013 : END DO
5014 : END DO
5015 15 : END SUBROUTINE block_1_1_2
5016 : ! **************************************************************************************************
5017 : !> \brief ...
5018 : !> \param kbd ...
5019 : !> \param kbc ...
5020 : !> \param kad ...
5021 : !> \param kac ...
5022 : !> \param pbd ...
5023 : !> \param pbc ...
5024 : !> \param pad ...
5025 : !> \param pac ...
5026 : !> \param prim ...
5027 : !> \param scale ...
5028 : ! **************************************************************************************************
5029 7954985 : SUBROUTINE block_1_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5030 : REAL(KIND=dp) :: kbd(1*1), kbc(1*3), kad(1*1), kac(1*3), &
5031 : pbd(1*1), pbc(1*3), pad(1*1), &
5032 : pac(1*3), prim(1*1*3*1), scale
5033 :
5034 : INTEGER :: ma, mb, mc, md, p_index
5035 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5036 :
5037 7954985 : kbd(1:1*1) = 0.0_dp
5038 7954985 : kbc(1:1*3) = 0.0_dp
5039 7954985 : kad(1:1*1) = 0.0_dp
5040 7954985 : kac(1:1*3) = 0.0_dp
5041 7954985 : p_index = 0
5042 15909970 : DO md = 1, 1
5043 39774925 : DO mc = 1, 3
5044 55684895 : DO mb = 1, 1
5045 23864955 : ks_bd = 0.0_dp
5046 23864955 : ks_bc = 0.0_dp
5047 23864955 : p_bd = pbd((md - 1)*1 + mb)
5048 23864955 : p_bc = pbc((mc - 1)*1 + mb)
5049 47729910 : DO ma = 1, 1
5050 23864955 : p_index = p_index + 1
5051 23864955 : tmp = scale*prim(p_index)
5052 23864955 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5053 23864955 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5054 23864955 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5055 47729910 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5056 : END DO
5057 23864955 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5058 47729910 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5059 : END DO
5060 : END DO
5061 : END DO
5062 7954985 : END SUBROUTINE block_1_1_3_1
5063 : ! **************************************************************************************************
5064 : !> \brief ...
5065 : !> \param kbd ...
5066 : !> \param kbc ...
5067 : !> \param kad ...
5068 : !> \param kac ...
5069 : !> \param pbd ...
5070 : !> \param pbc ...
5071 : !> \param pad ...
5072 : !> \param pac ...
5073 : !> \param prim ...
5074 : !> \param scale ...
5075 : ! **************************************************************************************************
5076 15297 : SUBROUTINE block_1_1_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5077 : REAL(KIND=dp) :: kbd(1*2), kbc(1*3), kad(1*2), kac(1*3), &
5078 : pbd(1*2), pbc(1*3), pad(1*2), &
5079 : pac(1*3), prim(1*1*3*2), scale
5080 :
5081 : INTEGER :: ma, mb, mc, md, p_index
5082 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5083 :
5084 15297 : kbd(1:1*2) = 0.0_dp
5085 15297 : kbc(1:1*3) = 0.0_dp
5086 15297 : kad(1:1*2) = 0.0_dp
5087 15297 : kac(1:1*3) = 0.0_dp
5088 15297 : p_index = 0
5089 45891 : DO md = 1, 2
5090 137673 : DO mc = 1, 3
5091 214158 : DO mb = 1, 1
5092 91782 : ks_bd = 0.0_dp
5093 91782 : ks_bc = 0.0_dp
5094 91782 : p_bd = pbd((md - 1)*1 + mb)
5095 91782 : p_bc = pbc((mc - 1)*1 + mb)
5096 183564 : DO ma = 1, 1
5097 91782 : p_index = p_index + 1
5098 91782 : tmp = scale*prim(p_index)
5099 91782 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5100 91782 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5101 91782 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5102 183564 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5103 : END DO
5104 91782 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5105 183564 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5106 : END DO
5107 : END DO
5108 : END DO
5109 15297 : END SUBROUTINE block_1_1_3_2
5110 : ! **************************************************************************************************
5111 : !> \brief ...
5112 : !> \param kbd ...
5113 : !> \param kbc ...
5114 : !> \param kad ...
5115 : !> \param kac ...
5116 : !> \param pbd ...
5117 : !> \param pbc ...
5118 : !> \param pad ...
5119 : !> \param pac ...
5120 : !> \param prim ...
5121 : !> \param scale ...
5122 : ! **************************************************************************************************
5123 4070915 : SUBROUTINE block_1_1_3_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5124 : REAL(KIND=dp) :: kbd(1*3), kbc(1*3), kad(1*3), kac(1*3), &
5125 : pbd(1*3), pbc(1*3), pad(1*3), &
5126 : pac(1*3), prim(1*1*3*3), scale
5127 :
5128 : INTEGER :: ma, mb, mc, md, p_index
5129 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5130 :
5131 4070915 : kbd(1:1*3) = 0.0_dp
5132 4070915 : kbc(1:1*3) = 0.0_dp
5133 4070915 : kad(1:1*3) = 0.0_dp
5134 4070915 : kac(1:1*3) = 0.0_dp
5135 4070915 : p_index = 0
5136 16283660 : DO md = 1, 3
5137 52921895 : DO mc = 1, 3
5138 85489215 : DO mb = 1, 1
5139 36638235 : ks_bd = 0.0_dp
5140 36638235 : ks_bc = 0.0_dp
5141 36638235 : p_bd = pbd((md - 1)*1 + mb)
5142 36638235 : p_bc = pbc((mc - 1)*1 + mb)
5143 73276470 : DO ma = 1, 1
5144 36638235 : p_index = p_index + 1
5145 36638235 : tmp = scale*prim(p_index)
5146 36638235 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5147 36638235 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5148 36638235 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5149 73276470 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5150 : END DO
5151 36638235 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5152 73276470 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5153 : END DO
5154 : END DO
5155 : END DO
5156 4070915 : END SUBROUTINE block_1_1_3_3
5157 : ! **************************************************************************************************
5158 : !> \brief ...
5159 : !> \param kbd ...
5160 : !> \param kbc ...
5161 : !> \param kad ...
5162 : !> \param kac ...
5163 : !> \param pbd ...
5164 : !> \param pbc ...
5165 : !> \param pad ...
5166 : !> \param pac ...
5167 : !> \param prim ...
5168 : !> \param scale ...
5169 : ! **************************************************************************************************
5170 39352 : SUBROUTINE block_1_1_3_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5171 : REAL(KIND=dp) :: kbd(1*4), kbc(1*3), kad(1*4), kac(1*3), &
5172 : pbd(1*4), pbc(1*3), pad(1*4), &
5173 : pac(1*3), prim(1*1*3*4), scale
5174 :
5175 : INTEGER :: ma, mb, mc, md, p_index
5176 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5177 :
5178 39352 : kbd(1:1*4) = 0.0_dp
5179 39352 : kbc(1:1*3) = 0.0_dp
5180 39352 : kad(1:1*4) = 0.0_dp
5181 39352 : kac(1:1*3) = 0.0_dp
5182 39352 : p_index = 0
5183 196760 : DO md = 1, 4
5184 668984 : DO mc = 1, 3
5185 1101856 : DO mb = 1, 1
5186 472224 : ks_bd = 0.0_dp
5187 472224 : ks_bc = 0.0_dp
5188 472224 : p_bd = pbd((md - 1)*1 + mb)
5189 472224 : p_bc = pbc((mc - 1)*1 + mb)
5190 944448 : DO ma = 1, 1
5191 472224 : p_index = p_index + 1
5192 472224 : tmp = scale*prim(p_index)
5193 472224 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5194 472224 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5195 472224 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5196 944448 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5197 : END DO
5198 472224 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5199 944448 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5200 : END DO
5201 : END DO
5202 : END DO
5203 39352 : END SUBROUTINE block_1_1_3_4
5204 : ! **************************************************************************************************
5205 : !> \brief ...
5206 : !> \param kbd ...
5207 : !> \param kbc ...
5208 : !> \param kad ...
5209 : !> \param kac ...
5210 : !> \param pbd ...
5211 : !> \param pbc ...
5212 : !> \param pad ...
5213 : !> \param pac ...
5214 : !> \param prim ...
5215 : !> \param scale ...
5216 : ! **************************************************************************************************
5217 126860 : SUBROUTINE block_1_1_3_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5218 : REAL(KIND=dp) :: kbd(1*5), kbc(1*3), kad(1*5), kac(1*3), &
5219 : pbd(1*5), pbc(1*3), pad(1*5), &
5220 : pac(1*3), prim(1*1*3*5), scale
5221 :
5222 : INTEGER :: ma, mb, mc, md, p_index
5223 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5224 :
5225 126860 : kbd(1:1*5) = 0.0_dp
5226 126860 : kbc(1:1*3) = 0.0_dp
5227 126860 : kad(1:1*5) = 0.0_dp
5228 126860 : kac(1:1*3) = 0.0_dp
5229 126860 : p_index = 0
5230 761160 : DO md = 1, 5
5231 2664060 : DO mc = 1, 3
5232 4440100 : DO mb = 1, 1
5233 1902900 : ks_bd = 0.0_dp
5234 1902900 : ks_bc = 0.0_dp
5235 1902900 : p_bd = pbd((md - 1)*1 + mb)
5236 1902900 : p_bc = pbc((mc - 1)*1 + mb)
5237 3805800 : DO ma = 1, 1
5238 1902900 : p_index = p_index + 1
5239 1902900 : tmp = scale*prim(p_index)
5240 1902900 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5241 1902900 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5242 1902900 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5243 3805800 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5244 : END DO
5245 1902900 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5246 3805800 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5247 : END DO
5248 : END DO
5249 : END DO
5250 126860 : END SUBROUTINE block_1_1_3_5
5251 : ! **************************************************************************************************
5252 : !> \brief ...
5253 : !> \param kbd ...
5254 : !> \param kbc ...
5255 : !> \param kad ...
5256 : !> \param kac ...
5257 : !> \param pbd ...
5258 : !> \param pbc ...
5259 : !> \param pad ...
5260 : !> \param pac ...
5261 : !> \param prim ...
5262 : !> \param scale ...
5263 : ! **************************************************************************************************
5264 7 : SUBROUTINE block_1_1_3_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5265 : REAL(KIND=dp) :: kbd(1*6), kbc(1*3), kad(1*6), kac(1*3), &
5266 : pbd(1*6), pbc(1*3), pad(1*6), &
5267 : pac(1*3), prim(1*1*3*6), scale
5268 :
5269 : INTEGER :: ma, mb, mc, md, p_index
5270 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5271 :
5272 7 : kbd(1:1*6) = 0.0_dp
5273 7 : kbc(1:1*3) = 0.0_dp
5274 7 : kad(1:1*6) = 0.0_dp
5275 7 : kac(1:1*3) = 0.0_dp
5276 7 : p_index = 0
5277 49 : DO md = 1, 6
5278 175 : DO mc = 1, 3
5279 294 : DO mb = 1, 1
5280 126 : ks_bd = 0.0_dp
5281 126 : ks_bc = 0.0_dp
5282 126 : p_bd = pbd((md - 1)*1 + mb)
5283 126 : p_bc = pbc((mc - 1)*1 + mb)
5284 252 : DO ma = 1, 1
5285 126 : p_index = p_index + 1
5286 126 : tmp = scale*prim(p_index)
5287 126 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5288 126 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5289 126 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5290 252 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5291 : END DO
5292 126 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5293 252 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5294 : END DO
5295 : END DO
5296 : END DO
5297 7 : END SUBROUTINE block_1_1_3_6
5298 : ! **************************************************************************************************
5299 : !> \brief ...
5300 : !> \param md_max ...
5301 : !> \param kbd ...
5302 : !> \param kbc ...
5303 : !> \param kad ...
5304 : !> \param kac ...
5305 : !> \param pbd ...
5306 : !> \param pbc ...
5307 : !> \param pad ...
5308 : !> \param pac ...
5309 : !> \param prim ...
5310 : !> \param scale ...
5311 : ! **************************************************************************************************
5312 23924 : SUBROUTINE block_1_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5313 : INTEGER :: md_max
5314 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*3), kad(1*md_max), kac(1*3), pbd(1*md_max), pbc(1*3), &
5315 : pad(1*md_max), pac(1*3), prim(1*1*3*md_max), scale
5316 :
5317 : INTEGER :: ma, mb, mc, md, p_index
5318 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5319 :
5320 191482 : kbd(1:1*md_max) = 0.0_dp
5321 23924 : kbc(1:1*3) = 0.0_dp
5322 191482 : kad(1:1*md_max) = 0.0_dp
5323 23924 : kac(1:1*3) = 0.0_dp
5324 23924 : p_index = 0
5325 191482 : DO md = 1, md_max
5326 694156 : DO mc = 1, 3
5327 1172906 : DO mb = 1, 1
5328 502674 : ks_bd = 0.0_dp
5329 502674 : ks_bc = 0.0_dp
5330 502674 : p_bd = pbd((md - 1)*1 + mb)
5331 502674 : p_bc = pbc((mc - 1)*1 + mb)
5332 1005348 : DO ma = 1, 1
5333 502674 : p_index = p_index + 1
5334 502674 : tmp = scale*prim(p_index)
5335 502674 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5336 502674 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5337 502674 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5338 1005348 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5339 : END DO
5340 502674 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5341 1005348 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5342 : END DO
5343 : END DO
5344 : END DO
5345 23924 : END SUBROUTINE block_1_1_3
5346 : ! **************************************************************************************************
5347 : !> \brief ...
5348 : !> \param kbd ...
5349 : !> \param kbc ...
5350 : !> \param kad ...
5351 : !> \param kac ...
5352 : !> \param pbd ...
5353 : !> \param pbc ...
5354 : !> \param pad ...
5355 : !> \param pac ...
5356 : !> \param prim ...
5357 : !> \param scale ...
5358 : ! **************************************************************************************************
5359 646105 : SUBROUTINE block_1_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5360 : REAL(KIND=dp) :: kbd(1*1), kbc(1*4), kad(1*1), kac(1*4), &
5361 : pbd(1*1), pbc(1*4), pad(1*1), &
5362 : pac(1*4), prim(1*1*4*1), scale
5363 :
5364 : INTEGER :: ma, mb, mc, md, p_index
5365 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5366 :
5367 646105 : kbd(1:1*1) = 0.0_dp
5368 646105 : kbc(1:1*4) = 0.0_dp
5369 646105 : kad(1:1*1) = 0.0_dp
5370 646105 : kac(1:1*4) = 0.0_dp
5371 646105 : p_index = 0
5372 1292210 : DO md = 1, 1
5373 3876630 : DO mc = 1, 4
5374 5814945 : DO mb = 1, 1
5375 2584420 : ks_bd = 0.0_dp
5376 2584420 : ks_bc = 0.0_dp
5377 2584420 : p_bd = pbd((md - 1)*1 + mb)
5378 2584420 : p_bc = pbc((mc - 1)*1 + mb)
5379 5168840 : DO ma = 1, 1
5380 2584420 : p_index = p_index + 1
5381 2584420 : tmp = scale*prim(p_index)
5382 2584420 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5383 2584420 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5384 2584420 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5385 5168840 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5386 : END DO
5387 2584420 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5388 5168840 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5389 : END DO
5390 : END DO
5391 : END DO
5392 646105 : END SUBROUTINE block_1_1_4_1
5393 : ! **************************************************************************************************
5394 : !> \brief ...
5395 : !> \param kbd ...
5396 : !> \param kbc ...
5397 : !> \param kad ...
5398 : !> \param kac ...
5399 : !> \param pbd ...
5400 : !> \param pbc ...
5401 : !> \param pad ...
5402 : !> \param pac ...
5403 : !> \param prim ...
5404 : !> \param scale ...
5405 : ! **************************************************************************************************
5406 4 : SUBROUTINE block_1_1_4_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5407 : REAL(KIND=dp) :: kbd(1*2), kbc(1*4), kad(1*2), kac(1*4), &
5408 : pbd(1*2), pbc(1*4), pad(1*2), &
5409 : pac(1*4), prim(1*1*4*2), scale
5410 :
5411 : INTEGER :: ma, mb, mc, md, p_index
5412 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5413 :
5414 4 : kbd(1:1*2) = 0.0_dp
5415 4 : kbc(1:1*4) = 0.0_dp
5416 4 : kad(1:1*2) = 0.0_dp
5417 4 : kac(1:1*4) = 0.0_dp
5418 4 : p_index = 0
5419 12 : DO md = 1, 2
5420 44 : DO mc = 1, 4
5421 72 : DO mb = 1, 1
5422 32 : ks_bd = 0.0_dp
5423 32 : ks_bc = 0.0_dp
5424 32 : p_bd = pbd((md - 1)*1 + mb)
5425 32 : p_bc = pbc((mc - 1)*1 + mb)
5426 64 : DO ma = 1, 1
5427 32 : p_index = p_index + 1
5428 32 : tmp = scale*prim(p_index)
5429 32 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5430 32 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5431 32 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5432 64 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5433 : END DO
5434 32 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5435 64 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5436 : END DO
5437 : END DO
5438 : END DO
5439 4 : END SUBROUTINE block_1_1_4_2
5440 : ! **************************************************************************************************
5441 : !> \brief ...
5442 : !> \param kbd ...
5443 : !> \param kbc ...
5444 : !> \param kad ...
5445 : !> \param kac ...
5446 : !> \param pbd ...
5447 : !> \param pbc ...
5448 : !> \param pad ...
5449 : !> \param pac ...
5450 : !> \param prim ...
5451 : !> \param scale ...
5452 : ! **************************************************************************************************
5453 230078 : SUBROUTINE block_1_1_4_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5454 : REAL(KIND=dp) :: kbd(1*3), kbc(1*4), kad(1*3), kac(1*4), &
5455 : pbd(1*3), pbc(1*4), pad(1*3), &
5456 : pac(1*4), prim(1*1*4*3), scale
5457 :
5458 : INTEGER :: ma, mb, mc, md, p_index
5459 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5460 :
5461 230078 : kbd(1:1*3) = 0.0_dp
5462 230078 : kbc(1:1*4) = 0.0_dp
5463 230078 : kad(1:1*3) = 0.0_dp
5464 230078 : kac(1:1*4) = 0.0_dp
5465 230078 : p_index = 0
5466 920312 : DO md = 1, 3
5467 3681248 : DO mc = 1, 4
5468 6212106 : DO mb = 1, 1
5469 2760936 : ks_bd = 0.0_dp
5470 2760936 : ks_bc = 0.0_dp
5471 2760936 : p_bd = pbd((md - 1)*1 + mb)
5472 2760936 : p_bc = pbc((mc - 1)*1 + mb)
5473 5521872 : DO ma = 1, 1
5474 2760936 : p_index = p_index + 1
5475 2760936 : tmp = scale*prim(p_index)
5476 2760936 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5477 2760936 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5478 2760936 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5479 5521872 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5480 : END DO
5481 2760936 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5482 5521872 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5483 : END DO
5484 : END DO
5485 : END DO
5486 230078 : END SUBROUTINE block_1_1_4_3
5487 : ! **************************************************************************************************
5488 : !> \brief ...
5489 : !> \param kbd ...
5490 : !> \param kbc ...
5491 : !> \param kad ...
5492 : !> \param kac ...
5493 : !> \param pbd ...
5494 : !> \param pbc ...
5495 : !> \param pad ...
5496 : !> \param pac ...
5497 : !> \param prim ...
5498 : !> \param scale ...
5499 : ! **************************************************************************************************
5500 318150 : SUBROUTINE block_1_1_4_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5501 : REAL(KIND=dp) :: kbd(1*4), kbc(1*4), kad(1*4), kac(1*4), &
5502 : pbd(1*4), pbc(1*4), pad(1*4), &
5503 : pac(1*4), prim(1*1*4*4), scale
5504 :
5505 : INTEGER :: ma, mb, mc, md, p_index
5506 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5507 :
5508 318150 : kbd(1:1*4) = 0.0_dp
5509 318150 : kbc(1:1*4) = 0.0_dp
5510 318150 : kad(1:1*4) = 0.0_dp
5511 318150 : kac(1:1*4) = 0.0_dp
5512 318150 : p_index = 0
5513 1590750 : DO md = 1, 4
5514 6681150 : DO mc = 1, 4
5515 11453400 : DO mb = 1, 1
5516 5090400 : ks_bd = 0.0_dp
5517 5090400 : ks_bc = 0.0_dp
5518 5090400 : p_bd = pbd((md - 1)*1 + mb)
5519 5090400 : p_bc = pbc((mc - 1)*1 + mb)
5520 10180800 : DO ma = 1, 1
5521 5090400 : p_index = p_index + 1
5522 5090400 : tmp = scale*prim(p_index)
5523 5090400 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5524 5090400 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5525 5090400 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5526 10180800 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5527 : END DO
5528 5090400 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5529 10180800 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5530 : END DO
5531 : END DO
5532 : END DO
5533 318150 : END SUBROUTINE block_1_1_4_4
5534 : ! **************************************************************************************************
5535 : !> \brief ...
5536 : !> \param md_max ...
5537 : !> \param kbd ...
5538 : !> \param kbc ...
5539 : !> \param kad ...
5540 : !> \param kac ...
5541 : !> \param pbd ...
5542 : !> \param pbc ...
5543 : !> \param pad ...
5544 : !> \param pac ...
5545 : !> \param prim ...
5546 : !> \param scale ...
5547 : ! **************************************************************************************************
5548 132878 : SUBROUTINE block_1_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5549 : INTEGER :: md_max
5550 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*4), kad(1*md_max), kac(1*4), pbd(1*md_max), pbc(1*4), &
5551 : pad(1*md_max), pac(1*4), prim(1*1*4*md_max), scale
5552 :
5553 : INTEGER :: ma, mb, mc, md, p_index
5554 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5555 :
5556 797906 : kbd(1:1*md_max) = 0.0_dp
5557 132878 : kbc(1:1*4) = 0.0_dp
5558 797906 : kad(1:1*md_max) = 0.0_dp
5559 132878 : kac(1:1*4) = 0.0_dp
5560 132878 : p_index = 0
5561 797906 : DO md = 1, md_max
5562 3458018 : DO mc = 1, 4
5563 5985252 : DO mb = 1, 1
5564 2660112 : ks_bd = 0.0_dp
5565 2660112 : ks_bc = 0.0_dp
5566 2660112 : p_bd = pbd((md - 1)*1 + mb)
5567 2660112 : p_bc = pbc((mc - 1)*1 + mb)
5568 5320224 : DO ma = 1, 1
5569 2660112 : p_index = p_index + 1
5570 2660112 : tmp = scale*prim(p_index)
5571 2660112 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5572 2660112 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5573 2660112 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5574 5320224 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5575 : END DO
5576 2660112 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5577 5320224 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5578 : END DO
5579 : END DO
5580 : END DO
5581 132878 : END SUBROUTINE block_1_1_4
5582 : ! **************************************************************************************************
5583 : !> \brief ...
5584 : !> \param kbd ...
5585 : !> \param kbc ...
5586 : !> \param kad ...
5587 : !> \param kac ...
5588 : !> \param pbd ...
5589 : !> \param pbc ...
5590 : !> \param pad ...
5591 : !> \param pac ...
5592 : !> \param prim ...
5593 : !> \param scale ...
5594 : ! **************************************************************************************************
5595 545949 : SUBROUTINE block_1_1_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5596 : REAL(KIND=dp) :: kbd(1*1), kbc(1*5), kad(1*1), kac(1*5), &
5597 : pbd(1*1), pbc(1*5), pad(1*1), &
5598 : pac(1*5), prim(1*1*5*1), scale
5599 :
5600 : INTEGER :: ma, mb, mc, md, p_index
5601 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5602 :
5603 545949 : kbd(1:1*1) = 0.0_dp
5604 545949 : kbc(1:1*5) = 0.0_dp
5605 545949 : kad(1:1*1) = 0.0_dp
5606 545949 : kac(1:1*5) = 0.0_dp
5607 545949 : p_index = 0
5608 1091898 : DO md = 1, 1
5609 3821643 : DO mc = 1, 5
5610 6005439 : DO mb = 1, 1
5611 2729745 : ks_bd = 0.0_dp
5612 2729745 : ks_bc = 0.0_dp
5613 2729745 : p_bd = pbd((md - 1)*1 + mb)
5614 2729745 : p_bc = pbc((mc - 1)*1 + mb)
5615 5459490 : DO ma = 1, 1
5616 2729745 : p_index = p_index + 1
5617 2729745 : tmp = scale*prim(p_index)
5618 2729745 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5619 2729745 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5620 2729745 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5621 5459490 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5622 : END DO
5623 2729745 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5624 5459490 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5625 : END DO
5626 : END DO
5627 : END DO
5628 545949 : END SUBROUTINE block_1_1_5_1
5629 : ! **************************************************************************************************
5630 : !> \brief ...
5631 : !> \param kbd ...
5632 : !> \param kbc ...
5633 : !> \param kad ...
5634 : !> \param kac ...
5635 : !> \param pbd ...
5636 : !> \param pbc ...
5637 : !> \param pad ...
5638 : !> \param pac ...
5639 : !> \param prim ...
5640 : !> \param scale ...
5641 : ! **************************************************************************************************
5642 10248 : SUBROUTINE block_1_1_5_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5643 : REAL(KIND=dp) :: kbd(1*2), kbc(1*5), kad(1*2), kac(1*5), &
5644 : pbd(1*2), pbc(1*5), pad(1*2), &
5645 : pac(1*5), prim(1*1*5*2), scale
5646 :
5647 : INTEGER :: ma, mb, mc, md, p_index
5648 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5649 :
5650 10248 : kbd(1:1*2) = 0.0_dp
5651 10248 : kbc(1:1*5) = 0.0_dp
5652 10248 : kad(1:1*2) = 0.0_dp
5653 10248 : kac(1:1*5) = 0.0_dp
5654 10248 : p_index = 0
5655 30744 : DO md = 1, 2
5656 133224 : DO mc = 1, 5
5657 225456 : DO mb = 1, 1
5658 102480 : ks_bd = 0.0_dp
5659 102480 : ks_bc = 0.0_dp
5660 102480 : p_bd = pbd((md - 1)*1 + mb)
5661 102480 : p_bc = pbc((mc - 1)*1 + mb)
5662 204960 : DO ma = 1, 1
5663 102480 : p_index = p_index + 1
5664 102480 : tmp = scale*prim(p_index)
5665 102480 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5666 102480 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5667 102480 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5668 204960 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5669 : END DO
5670 102480 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5671 204960 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5672 : END DO
5673 : END DO
5674 : END DO
5675 10248 : END SUBROUTINE block_1_1_5_2
5676 : ! **************************************************************************************************
5677 : !> \brief ...
5678 : !> \param kbd ...
5679 : !> \param kbc ...
5680 : !> \param kad ...
5681 : !> \param kac ...
5682 : !> \param pbd ...
5683 : !> \param pbc ...
5684 : !> \param pad ...
5685 : !> \param pac ...
5686 : !> \param prim ...
5687 : !> \param scale ...
5688 : ! **************************************************************************************************
5689 284303 : SUBROUTINE block_1_1_5_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5690 : REAL(KIND=dp) :: kbd(1*3), kbc(1*5), kad(1*3), kac(1*5), &
5691 : pbd(1*3), pbc(1*5), pad(1*3), &
5692 : pac(1*5), prim(1*1*5*3), scale
5693 :
5694 : INTEGER :: ma, mb, mc, md, p_index
5695 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5696 :
5697 284303 : kbd(1:1*3) = 0.0_dp
5698 284303 : kbc(1:1*5) = 0.0_dp
5699 284303 : kad(1:1*3) = 0.0_dp
5700 284303 : kac(1:1*5) = 0.0_dp
5701 284303 : p_index = 0
5702 1137212 : DO md = 1, 3
5703 5401757 : DO mc = 1, 5
5704 9381999 : DO mb = 1, 1
5705 4264545 : ks_bd = 0.0_dp
5706 4264545 : ks_bc = 0.0_dp
5707 4264545 : p_bd = pbd((md - 1)*1 + mb)
5708 4264545 : p_bc = pbc((mc - 1)*1 + mb)
5709 8529090 : DO ma = 1, 1
5710 4264545 : p_index = p_index + 1
5711 4264545 : tmp = scale*prim(p_index)
5712 4264545 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5713 4264545 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5714 4264545 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5715 8529090 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5716 : END DO
5717 4264545 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5718 8529090 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5719 : END DO
5720 : END DO
5721 : END DO
5722 284303 : END SUBROUTINE block_1_1_5_3
5723 : ! **************************************************************************************************
5724 : !> \brief ...
5725 : !> \param md_max ...
5726 : !> \param kbd ...
5727 : !> \param kbc ...
5728 : !> \param kad ...
5729 : !> \param kac ...
5730 : !> \param pbd ...
5731 : !> \param pbc ...
5732 : !> \param pad ...
5733 : !> \param pac ...
5734 : !> \param prim ...
5735 : !> \param scale ...
5736 : ! **************************************************************************************************
5737 262022 : SUBROUTINE block_1_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5738 : INTEGER :: md_max
5739 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*5), kad(1*md_max), kac(1*5), pbd(1*md_max), pbc(1*5), &
5740 : pad(1*md_max), pac(1*5), prim(1*1*5*md_max), scale
5741 :
5742 : INTEGER :: ma, mb, mc, md, p_index
5743 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5744 :
5745 1461466 : kbd(1:1*md_max) = 0.0_dp
5746 262022 : kbc(1:1*5) = 0.0_dp
5747 1461466 : kad(1:1*md_max) = 0.0_dp
5748 262022 : kac(1:1*5) = 0.0_dp
5749 262022 : p_index = 0
5750 1461466 : DO md = 1, md_max
5751 7458686 : DO mc = 1, 5
5752 13193884 : DO mb = 1, 1
5753 5997220 : ks_bd = 0.0_dp
5754 5997220 : ks_bc = 0.0_dp
5755 5997220 : p_bd = pbd((md - 1)*1 + mb)
5756 5997220 : p_bc = pbc((mc - 1)*1 + mb)
5757 11994440 : DO ma = 1, 1
5758 5997220 : p_index = p_index + 1
5759 5997220 : tmp = scale*prim(p_index)
5760 5997220 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5761 5997220 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5762 5997220 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5763 11994440 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5764 : END DO
5765 5997220 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5766 11994440 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5767 : END DO
5768 : END DO
5769 : END DO
5770 262022 : END SUBROUTINE block_1_1_5
5771 : ! **************************************************************************************************
5772 : !> \brief ...
5773 : !> \param kbd ...
5774 : !> \param kbc ...
5775 : !> \param kad ...
5776 : !> \param kac ...
5777 : !> \param pbd ...
5778 : !> \param pbc ...
5779 : !> \param pad ...
5780 : !> \param pac ...
5781 : !> \param prim ...
5782 : !> \param scale ...
5783 : ! **************************************************************************************************
5784 5 : SUBROUTINE block_1_1_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5785 : REAL(KIND=dp) :: kbd(1*1), kbc(1*6), kad(1*1), kac(1*6), &
5786 : pbd(1*1), pbc(1*6), pad(1*1), &
5787 : pac(1*6), prim(1*1*6*1), scale
5788 :
5789 : INTEGER :: ma, mb, mc, md, p_index
5790 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5791 :
5792 5 : kbd(1:1*1) = 0.0_dp
5793 5 : kbc(1:1*6) = 0.0_dp
5794 5 : kad(1:1*1) = 0.0_dp
5795 5 : kac(1:1*6) = 0.0_dp
5796 5 : p_index = 0
5797 10 : DO md = 1, 1
5798 40 : DO mc = 1, 6
5799 65 : DO mb = 1, 1
5800 30 : ks_bd = 0.0_dp
5801 30 : ks_bc = 0.0_dp
5802 30 : p_bd = pbd((md - 1)*1 + mb)
5803 30 : p_bc = pbc((mc - 1)*1 + mb)
5804 60 : DO ma = 1, 1
5805 30 : p_index = p_index + 1
5806 30 : tmp = scale*prim(p_index)
5807 30 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5808 30 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5809 30 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5810 60 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5811 : END DO
5812 30 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5813 60 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5814 : END DO
5815 : END DO
5816 : END DO
5817 5 : END SUBROUTINE block_1_1_6_1
5818 : ! **************************************************************************************************
5819 : !> \brief ...
5820 : !> \param kbd ...
5821 : !> \param kbc ...
5822 : !> \param kad ...
5823 : !> \param kac ...
5824 : !> \param pbd ...
5825 : !> \param pbc ...
5826 : !> \param pad ...
5827 : !> \param pac ...
5828 : !> \param prim ...
5829 : !> \param scale ...
5830 : ! **************************************************************************************************
5831 1 : SUBROUTINE block_1_1_6_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5832 : REAL(KIND=dp) :: kbd(1*2), kbc(1*6), kad(1*2), kac(1*6), &
5833 : pbd(1*2), pbc(1*6), pad(1*2), &
5834 : pac(1*6), prim(1*1*6*2), scale
5835 :
5836 : INTEGER :: ma, mb, mc, md, p_index
5837 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5838 :
5839 1 : kbd(1:1*2) = 0.0_dp
5840 1 : kbc(1:1*6) = 0.0_dp
5841 1 : kad(1:1*2) = 0.0_dp
5842 1 : kac(1:1*6) = 0.0_dp
5843 1 : p_index = 0
5844 3 : DO md = 1, 2
5845 15 : DO mc = 1, 6
5846 26 : DO mb = 1, 1
5847 12 : ks_bd = 0.0_dp
5848 12 : ks_bc = 0.0_dp
5849 12 : p_bd = pbd((md - 1)*1 + mb)
5850 12 : p_bc = pbc((mc - 1)*1 + mb)
5851 24 : DO ma = 1, 1
5852 12 : p_index = p_index + 1
5853 12 : tmp = scale*prim(p_index)
5854 12 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5855 12 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5856 12 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5857 24 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5858 : END DO
5859 12 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5860 24 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5861 : END DO
5862 : END DO
5863 : END DO
5864 1 : END SUBROUTINE block_1_1_6_2
5865 : ! **************************************************************************************************
5866 : !> \brief ...
5867 : !> \param kbd ...
5868 : !> \param kbc ...
5869 : !> \param kad ...
5870 : !> \param kac ...
5871 : !> \param pbd ...
5872 : !> \param pbc ...
5873 : !> \param pad ...
5874 : !> \param pac ...
5875 : !> \param prim ...
5876 : !> \param scale ...
5877 : ! **************************************************************************************************
5878 1 : SUBROUTINE block_1_1_6_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5879 : REAL(KIND=dp) :: kbd(1*3), kbc(1*6), kad(1*3), kac(1*6), &
5880 : pbd(1*3), pbc(1*6), pad(1*3), &
5881 : pac(1*6), prim(1*1*6*3), scale
5882 :
5883 : INTEGER :: ma, mb, mc, md, p_index
5884 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5885 :
5886 1 : kbd(1:1*3) = 0.0_dp
5887 1 : kbc(1:1*6) = 0.0_dp
5888 1 : kad(1:1*3) = 0.0_dp
5889 1 : kac(1:1*6) = 0.0_dp
5890 1 : p_index = 0
5891 4 : DO md = 1, 3
5892 22 : DO mc = 1, 6
5893 39 : DO mb = 1, 1
5894 18 : ks_bd = 0.0_dp
5895 18 : ks_bc = 0.0_dp
5896 18 : p_bd = pbd((md - 1)*1 + mb)
5897 18 : p_bc = pbc((mc - 1)*1 + mb)
5898 36 : DO ma = 1, 1
5899 18 : p_index = p_index + 1
5900 18 : tmp = scale*prim(p_index)
5901 18 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5902 18 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5903 18 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5904 36 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5905 : END DO
5906 18 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5907 36 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5908 : END DO
5909 : END DO
5910 : END DO
5911 1 : END SUBROUTINE block_1_1_6_3
5912 : ! **************************************************************************************************
5913 : !> \brief ...
5914 : !> \param md_max ...
5915 : !> \param kbd ...
5916 : !> \param kbc ...
5917 : !> \param kad ...
5918 : !> \param kac ...
5919 : !> \param pbd ...
5920 : !> \param pbc ...
5921 : !> \param pad ...
5922 : !> \param pac ...
5923 : !> \param prim ...
5924 : !> \param scale ...
5925 : ! **************************************************************************************************
5926 20 : SUBROUTINE block_1_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5927 : INTEGER :: md_max
5928 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*6), kad(1*md_max), kac(1*6), pbd(1*md_max), pbc(1*6), &
5929 : pad(1*md_max), pac(1*6), prim(1*1*6*md_max), scale
5930 :
5931 : INTEGER :: ma, mb, mc, md, p_index
5932 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5933 :
5934 194 : kbd(1:1*md_max) = 0.0_dp
5935 20 : kbc(1:1*6) = 0.0_dp
5936 194 : kad(1:1*md_max) = 0.0_dp
5937 20 : kac(1:1*6) = 0.0_dp
5938 20 : p_index = 0
5939 194 : DO md = 1, md_max
5940 1238 : DO mc = 1, 6
5941 2262 : DO mb = 1, 1
5942 1044 : ks_bd = 0.0_dp
5943 1044 : ks_bc = 0.0_dp
5944 1044 : p_bd = pbd((md - 1)*1 + mb)
5945 1044 : p_bc = pbc((mc - 1)*1 + mb)
5946 2088 : DO ma = 1, 1
5947 1044 : p_index = p_index + 1
5948 1044 : tmp = scale*prim(p_index)
5949 1044 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5950 1044 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5951 1044 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5952 2088 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
5953 : END DO
5954 1044 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
5955 2088 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
5956 : END DO
5957 : END DO
5958 : END DO
5959 20 : END SUBROUTINE block_1_1_6
5960 : ! **************************************************************************************************
5961 : !> \brief ...
5962 : !> \param kbd ...
5963 : !> \param kbc ...
5964 : !> \param kad ...
5965 : !> \param kac ...
5966 : !> \param pbd ...
5967 : !> \param pbc ...
5968 : !> \param pad ...
5969 : !> \param pac ...
5970 : !> \param prim ...
5971 : !> \param scale ...
5972 : ! **************************************************************************************************
5973 55680 : SUBROUTINE block_1_1_7_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
5974 : REAL(KIND=dp) :: kbd(1*1), kbc(1*7), kad(1*1), kac(1*7), &
5975 : pbd(1*1), pbc(1*7), pad(1*1), &
5976 : pac(1*7), prim(1*1*7*1), scale
5977 :
5978 : INTEGER :: ma, mb, mc, md, p_index
5979 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
5980 :
5981 55680 : kbd(1:1*1) = 0.0_dp
5982 55680 : kbc(1:1*7) = 0.0_dp
5983 55680 : kad(1:1*1) = 0.0_dp
5984 55680 : kac(1:1*7) = 0.0_dp
5985 55680 : p_index = 0
5986 111360 : DO md = 1, 1
5987 501120 : DO mc = 1, 7
5988 835200 : DO mb = 1, 1
5989 389760 : ks_bd = 0.0_dp
5990 389760 : ks_bc = 0.0_dp
5991 389760 : p_bd = pbd((md - 1)*1 + mb)
5992 389760 : p_bc = pbc((mc - 1)*1 + mb)
5993 779520 : DO ma = 1, 1
5994 389760 : p_index = p_index + 1
5995 389760 : tmp = scale*prim(p_index)
5996 389760 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
5997 389760 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
5998 389760 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
5999 779520 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6000 : END DO
6001 389760 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6002 779520 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6003 : END DO
6004 : END DO
6005 : END DO
6006 55680 : END SUBROUTINE block_1_1_7_1
6007 : ! **************************************************************************************************
6008 : !> \brief ...
6009 : !> \param kbd ...
6010 : !> \param kbc ...
6011 : !> \param kad ...
6012 : !> \param kac ...
6013 : !> \param pbd ...
6014 : !> \param pbc ...
6015 : !> \param pad ...
6016 : !> \param pac ...
6017 : !> \param prim ...
6018 : !> \param scale ...
6019 : ! **************************************************************************************************
6020 737 : SUBROUTINE block_1_1_7_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6021 : REAL(KIND=dp) :: kbd(1*2), kbc(1*7), kad(1*2), kac(1*7), &
6022 : pbd(1*2), pbc(1*7), pad(1*2), &
6023 : pac(1*7), prim(1*1*7*2), scale
6024 :
6025 : INTEGER :: ma, mb, mc, md, p_index
6026 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6027 :
6028 737 : kbd(1:1*2) = 0.0_dp
6029 737 : kbc(1:1*7) = 0.0_dp
6030 737 : kad(1:1*2) = 0.0_dp
6031 737 : kac(1:1*7) = 0.0_dp
6032 737 : p_index = 0
6033 2211 : DO md = 1, 2
6034 12529 : DO mc = 1, 7
6035 22110 : DO mb = 1, 1
6036 10318 : ks_bd = 0.0_dp
6037 10318 : ks_bc = 0.0_dp
6038 10318 : p_bd = pbd((md - 1)*1 + mb)
6039 10318 : p_bc = pbc((mc - 1)*1 + mb)
6040 20636 : DO ma = 1, 1
6041 10318 : p_index = p_index + 1
6042 10318 : tmp = scale*prim(p_index)
6043 10318 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6044 10318 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6045 10318 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6046 20636 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6047 : END DO
6048 10318 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6049 20636 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6050 : END DO
6051 : END DO
6052 : END DO
6053 737 : END SUBROUTINE block_1_1_7_2
6054 : ! **************************************************************************************************
6055 : !> \brief ...
6056 : !> \param md_max ...
6057 : !> \param kbd ...
6058 : !> \param kbc ...
6059 : !> \param kad ...
6060 : !> \param kac ...
6061 : !> \param pbd ...
6062 : !> \param pbc ...
6063 : !> \param pad ...
6064 : !> \param pac ...
6065 : !> \param prim ...
6066 : !> \param scale ...
6067 : ! **************************************************************************************************
6068 51680 : SUBROUTINE block_1_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6069 : INTEGER :: md_max
6070 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*7), kad(1*md_max), kac(1*7), pbd(1*md_max), pbc(1*7), &
6071 : pad(1*md_max), pac(1*7), prim(1*1*7*md_max), scale
6072 :
6073 : INTEGER :: ma, mb, mc, md, p_index
6074 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6075 :
6076 251936 : kbd(1:1*md_max) = 0.0_dp
6077 51680 : kbc(1:1*7) = 0.0_dp
6078 251936 : kad(1:1*md_max) = 0.0_dp
6079 51680 : kac(1:1*7) = 0.0_dp
6080 51680 : p_index = 0
6081 251936 : DO md = 1, md_max
6082 1653728 : DO mc = 1, 7
6083 3003840 : DO mb = 1, 1
6084 1401792 : ks_bd = 0.0_dp
6085 1401792 : ks_bc = 0.0_dp
6086 1401792 : p_bd = pbd((md - 1)*1 + mb)
6087 1401792 : p_bc = pbc((mc - 1)*1 + mb)
6088 2803584 : DO ma = 1, 1
6089 1401792 : p_index = p_index + 1
6090 1401792 : tmp = scale*prim(p_index)
6091 1401792 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6092 1401792 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6093 1401792 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6094 2803584 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6095 : END DO
6096 1401792 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6097 2803584 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6098 : END DO
6099 : END DO
6100 : END DO
6101 51680 : END SUBROUTINE block_1_1_7
6102 : ! **************************************************************************************************
6103 : !> \brief ...
6104 : !> \param kbd ...
6105 : !> \param kbc ...
6106 : !> \param kad ...
6107 : !> \param kac ...
6108 : !> \param pbd ...
6109 : !> \param pbc ...
6110 : !> \param pad ...
6111 : !> \param pac ...
6112 : !> \param prim ...
6113 : !> \param scale ...
6114 : ! **************************************************************************************************
6115 10 : SUBROUTINE block_1_1_9_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6116 : REAL(KIND=dp) :: kbd(1*1), kbc(1*9), kad(1*1), kac(1*9), &
6117 : pbd(1*1), pbc(1*9), pad(1*1), &
6118 : pac(1*9), prim(1*1*9*1), scale
6119 :
6120 : INTEGER :: ma, mb, mc, md, p_index
6121 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6122 :
6123 10 : kbd(1:1*1) = 0.0_dp
6124 10 : kbc(1:1*9) = 0.0_dp
6125 10 : kad(1:1*1) = 0.0_dp
6126 10 : kac(1:1*9) = 0.0_dp
6127 10 : p_index = 0
6128 20 : DO md = 1, 1
6129 110 : DO mc = 1, 9
6130 190 : DO mb = 1, 1
6131 90 : ks_bd = 0.0_dp
6132 90 : ks_bc = 0.0_dp
6133 90 : p_bd = pbd((md - 1)*1 + mb)
6134 90 : p_bc = pbc((mc - 1)*1 + mb)
6135 180 : DO ma = 1, 1
6136 90 : p_index = p_index + 1
6137 90 : tmp = scale*prim(p_index)
6138 90 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6139 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6140 90 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6141 180 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6142 : END DO
6143 90 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6144 180 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6145 : END DO
6146 : END DO
6147 : END DO
6148 10 : END SUBROUTINE block_1_1_9_1
6149 : ! **************************************************************************************************
6150 : !> \brief ...
6151 : !> \param kbd ...
6152 : !> \param kbc ...
6153 : !> \param kad ...
6154 : !> \param kac ...
6155 : !> \param pbd ...
6156 : !> \param pbc ...
6157 : !> \param pad ...
6158 : !> \param pac ...
6159 : !> \param prim ...
6160 : !> \param scale ...
6161 : ! **************************************************************************************************
6162 1 : SUBROUTINE block_1_1_9_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6163 : REAL(KIND=dp) :: kbd(1*2), kbc(1*9), kad(1*2), kac(1*9), &
6164 : pbd(1*2), pbc(1*9), pad(1*2), &
6165 : pac(1*9), prim(1*1*9*2), scale
6166 :
6167 : INTEGER :: ma, mb, mc, md, p_index
6168 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6169 :
6170 1 : kbd(1:1*2) = 0.0_dp
6171 1 : kbc(1:1*9) = 0.0_dp
6172 1 : kad(1:1*2) = 0.0_dp
6173 1 : kac(1:1*9) = 0.0_dp
6174 1 : p_index = 0
6175 3 : DO md = 1, 2
6176 21 : DO mc = 1, 9
6177 38 : DO mb = 1, 1
6178 18 : ks_bd = 0.0_dp
6179 18 : ks_bc = 0.0_dp
6180 18 : p_bd = pbd((md - 1)*1 + mb)
6181 18 : p_bc = pbc((mc - 1)*1 + mb)
6182 36 : DO ma = 1, 1
6183 18 : p_index = p_index + 1
6184 18 : tmp = scale*prim(p_index)
6185 18 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6186 18 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6187 18 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6188 36 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6189 : END DO
6190 18 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6191 36 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6192 : END DO
6193 : END DO
6194 : END DO
6195 1 : END SUBROUTINE block_1_1_9_2
6196 : ! **************************************************************************************************
6197 : !> \brief ...
6198 : !> \param md_max ...
6199 : !> \param kbd ...
6200 : !> \param kbc ...
6201 : !> \param kad ...
6202 : !> \param kac ...
6203 : !> \param pbd ...
6204 : !> \param pbc ...
6205 : !> \param pad ...
6206 : !> \param pac ...
6207 : !> \param prim ...
6208 : !> \param scale ...
6209 : ! **************************************************************************************************
6210 57 : SUBROUTINE block_1_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6211 : INTEGER :: md_max
6212 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*9), kad(1*md_max), kac(1*9), pbd(1*md_max), pbc(1*9), &
6213 : pad(1*md_max), pac(1*9), prim(1*1*9*md_max), scale
6214 :
6215 : INTEGER :: ma, mb, mc, md, p_index
6216 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6217 :
6218 608 : kbd(1:1*md_max) = 0.0_dp
6219 57 : kbc(1:1*9) = 0.0_dp
6220 608 : kad(1:1*md_max) = 0.0_dp
6221 57 : kac(1:1*9) = 0.0_dp
6222 57 : p_index = 0
6223 608 : DO md = 1, md_max
6224 5567 : DO mc = 1, 9
6225 10469 : DO mb = 1, 1
6226 4959 : ks_bd = 0.0_dp
6227 4959 : ks_bc = 0.0_dp
6228 4959 : p_bd = pbd((md - 1)*1 + mb)
6229 4959 : p_bc = pbc((mc - 1)*1 + mb)
6230 9918 : DO ma = 1, 1
6231 4959 : p_index = p_index + 1
6232 4959 : tmp = scale*prim(p_index)
6233 4959 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6234 4959 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6235 4959 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6236 9918 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6237 : END DO
6238 4959 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6239 9918 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6240 : END DO
6241 : END DO
6242 : END DO
6243 57 : END SUBROUTINE block_1_1_9
6244 : ! **************************************************************************************************
6245 : !> \brief ...
6246 : !> \param kbd ...
6247 : !> \param kbc ...
6248 : !> \param kad ...
6249 : !> \param kac ...
6250 : !> \param pbd ...
6251 : !> \param pbc ...
6252 : !> \param pad ...
6253 : !> \param pac ...
6254 : !> \param prim ...
6255 : !> \param scale ...
6256 : ! **************************************************************************************************
6257 9 : SUBROUTINE block_1_1_10_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6258 : REAL(KIND=dp) :: kbd(1*1), kbc(1*10), kad(1*1), &
6259 : kac(1*10), pbd(1*1), pbc(1*10), &
6260 : pad(1*1), pac(1*10), prim(1*1*10*1), &
6261 : scale
6262 :
6263 : INTEGER :: ma, mb, mc, md, p_index
6264 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6265 :
6266 9 : kbd(1:1*1) = 0.0_dp
6267 9 : kbc(1:1*10) = 0.0_dp
6268 9 : kad(1:1*1) = 0.0_dp
6269 9 : kac(1:1*10) = 0.0_dp
6270 9 : p_index = 0
6271 18 : DO md = 1, 1
6272 108 : DO mc = 1, 10
6273 189 : DO mb = 1, 1
6274 90 : ks_bd = 0.0_dp
6275 90 : ks_bc = 0.0_dp
6276 90 : p_bd = pbd((md - 1)*1 + mb)
6277 90 : p_bc = pbc((mc - 1)*1 + mb)
6278 180 : DO ma = 1, 1
6279 90 : p_index = p_index + 1
6280 90 : tmp = scale*prim(p_index)
6281 90 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6282 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6283 90 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6284 180 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6285 : END DO
6286 90 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6287 180 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6288 : END DO
6289 : END DO
6290 : END DO
6291 9 : END SUBROUTINE block_1_1_10_1
6292 : ! **************************************************************************************************
6293 : !> \brief ...
6294 : !> \param md_max ...
6295 : !> \param kbd ...
6296 : !> \param kbc ...
6297 : !> \param kad ...
6298 : !> \param kac ...
6299 : !> \param pbd ...
6300 : !> \param pbc ...
6301 : !> \param pad ...
6302 : !> \param pac ...
6303 : !> \param prim ...
6304 : !> \param scale ...
6305 : ! **************************************************************************************************
6306 46 : SUBROUTINE block_1_1_10(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6307 : INTEGER :: md_max
6308 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*10), kad(1*md_max), kac(1*10), pbd(1*md_max), &
6309 : pbc(1*10), pad(1*md_max), pac(1*10), prim(1*1*10*md_max), scale
6310 :
6311 : INTEGER :: ma, mb, mc, md, p_index
6312 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6313 :
6314 488 : kbd(1:1*md_max) = 0.0_dp
6315 46 : kbc(1:1*10) = 0.0_dp
6316 488 : kad(1:1*md_max) = 0.0_dp
6317 46 : kac(1:1*10) = 0.0_dp
6318 46 : p_index = 0
6319 488 : DO md = 1, md_max
6320 4908 : DO mc = 1, 10
6321 9282 : DO mb = 1, 1
6322 4420 : ks_bd = 0.0_dp
6323 4420 : ks_bc = 0.0_dp
6324 4420 : p_bd = pbd((md - 1)*1 + mb)
6325 4420 : p_bc = pbc((mc - 1)*1 + mb)
6326 8840 : DO ma = 1, 1
6327 4420 : p_index = p_index + 1
6328 4420 : tmp = scale*prim(p_index)
6329 4420 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6330 4420 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6331 4420 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6332 8840 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6333 : END DO
6334 4420 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6335 8840 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6336 : END DO
6337 : END DO
6338 : END DO
6339 46 : END SUBROUTINE block_1_1_10
6340 : ! **************************************************************************************************
6341 : !> \brief ...
6342 : !> \param kbd ...
6343 : !> \param kbc ...
6344 : !> \param kad ...
6345 : !> \param kac ...
6346 : !> \param pbd ...
6347 : !> \param pbc ...
6348 : !> \param pad ...
6349 : !> \param pac ...
6350 : !> \param prim ...
6351 : !> \param scale ...
6352 : ! **************************************************************************************************
6353 9 : SUBROUTINE block_1_1_11_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6354 : REAL(KIND=dp) :: kbd(1*1), kbc(1*11), kad(1*1), &
6355 : kac(1*11), pbd(1*1), pbc(1*11), &
6356 : pad(1*1), pac(1*11), prim(1*1*11*1), &
6357 : scale
6358 :
6359 : INTEGER :: ma, mb, mc, md, p_index
6360 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6361 :
6362 9 : kbd(1:1*1) = 0.0_dp
6363 9 : kbc(1:1*11) = 0.0_dp
6364 9 : kad(1:1*1) = 0.0_dp
6365 9 : kac(1:1*11) = 0.0_dp
6366 9 : p_index = 0
6367 18 : DO md = 1, 1
6368 117 : DO mc = 1, 11
6369 207 : DO mb = 1, 1
6370 99 : ks_bd = 0.0_dp
6371 99 : ks_bc = 0.0_dp
6372 99 : p_bd = pbd((md - 1)*1 + mb)
6373 99 : p_bc = pbc((mc - 1)*1 + mb)
6374 198 : DO ma = 1, 1
6375 99 : p_index = p_index + 1
6376 99 : tmp = scale*prim(p_index)
6377 99 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6378 99 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6379 99 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6380 198 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6381 : END DO
6382 99 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6383 198 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6384 : END DO
6385 : END DO
6386 : END DO
6387 9 : END SUBROUTINE block_1_1_11_1
6388 : ! **************************************************************************************************
6389 : !> \brief ...
6390 : !> \param md_max ...
6391 : !> \param kbd ...
6392 : !> \param kbc ...
6393 : !> \param kad ...
6394 : !> \param kac ...
6395 : !> \param pbd ...
6396 : !> \param pbc ...
6397 : !> \param pad ...
6398 : !> \param pac ...
6399 : !> \param prim ...
6400 : !> \param scale ...
6401 : ! **************************************************************************************************
6402 39 : SUBROUTINE block_1_1_11(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6403 : INTEGER :: md_max
6404 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*11), kad(1*md_max), kac(1*11), pbd(1*md_max), &
6405 : pbc(1*11), pad(1*md_max), pac(1*11), prim(1*1*11*md_max), scale
6406 :
6407 : INTEGER :: ma, mb, mc, md, p_index
6408 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6409 :
6410 403 : kbd(1:1*md_max) = 0.0_dp
6411 39 : kbc(1:1*11) = 0.0_dp
6412 403 : kad(1:1*md_max) = 0.0_dp
6413 39 : kac(1:1*11) = 0.0_dp
6414 39 : p_index = 0
6415 403 : DO md = 1, md_max
6416 4407 : DO mc = 1, 11
6417 8372 : DO mb = 1, 1
6418 4004 : ks_bd = 0.0_dp
6419 4004 : ks_bc = 0.0_dp
6420 4004 : p_bd = pbd((md - 1)*1 + mb)
6421 4004 : p_bc = pbc((mc - 1)*1 + mb)
6422 8008 : DO ma = 1, 1
6423 4004 : p_index = p_index + 1
6424 4004 : tmp = scale*prim(p_index)
6425 4004 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6426 4004 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6427 4004 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6428 8008 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6429 : END DO
6430 4004 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6431 8008 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6432 : END DO
6433 : END DO
6434 : END DO
6435 39 : END SUBROUTINE block_1_1_11
6436 : ! **************************************************************************************************
6437 : !> \brief ...
6438 : !> \param kbd ...
6439 : !> \param kbc ...
6440 : !> \param kad ...
6441 : !> \param kac ...
6442 : !> \param pbd ...
6443 : !> \param pbc ...
6444 : !> \param pad ...
6445 : !> \param pac ...
6446 : !> \param prim ...
6447 : !> \param scale ...
6448 : ! **************************************************************************************************
6449 10 : SUBROUTINE block_1_1_15_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6450 : REAL(KIND=dp) :: kbd(1*1), kbc(1*15), kad(1*1), &
6451 : kac(1*15), pbd(1*1), pbc(1*15), &
6452 : pad(1*1), pac(1*15), prim(1*1*15*1), &
6453 : scale
6454 :
6455 : INTEGER :: ma, mb, mc, md, p_index
6456 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6457 :
6458 10 : kbd(1:1*1) = 0.0_dp
6459 10 : kbc(1:1*15) = 0.0_dp
6460 10 : kad(1:1*1) = 0.0_dp
6461 10 : kac(1:1*15) = 0.0_dp
6462 10 : p_index = 0
6463 20 : DO md = 1, 1
6464 170 : DO mc = 1, 15
6465 310 : DO mb = 1, 1
6466 150 : ks_bd = 0.0_dp
6467 150 : ks_bc = 0.0_dp
6468 150 : p_bd = pbd((md - 1)*1 + mb)
6469 150 : p_bc = pbc((mc - 1)*1 + mb)
6470 300 : DO ma = 1, 1
6471 150 : p_index = p_index + 1
6472 150 : tmp = scale*prim(p_index)
6473 150 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6474 150 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6475 150 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6476 300 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6477 : END DO
6478 150 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6479 300 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6480 : END DO
6481 : END DO
6482 : END DO
6483 10 : END SUBROUTINE block_1_1_15_1
6484 : ! **************************************************************************************************
6485 : !> \brief ...
6486 : !> \param md_max ...
6487 : !> \param kbd ...
6488 : !> \param kbc ...
6489 : !> \param kad ...
6490 : !> \param kac ...
6491 : !> \param pbd ...
6492 : !> \param pbc ...
6493 : !> \param pad ...
6494 : !> \param pac ...
6495 : !> \param prim ...
6496 : !> \param scale ...
6497 : ! **************************************************************************************************
6498 38 : SUBROUTINE block_1_1_15(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6499 : INTEGER :: md_max
6500 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*15), kad(1*md_max), kac(1*15), pbd(1*md_max), &
6501 : pbc(1*15), pad(1*md_max), pac(1*15), prim(1*1*15*md_max), scale
6502 :
6503 : INTEGER :: ma, mb, mc, md, p_index
6504 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6505 :
6506 402 : kbd(1:1*md_max) = 0.0_dp
6507 38 : kbc(1:1*15) = 0.0_dp
6508 402 : kad(1:1*md_max) = 0.0_dp
6509 38 : kac(1:1*15) = 0.0_dp
6510 38 : p_index = 0
6511 402 : DO md = 1, md_max
6512 5862 : DO mc = 1, 15
6513 11284 : DO mb = 1, 1
6514 5460 : ks_bd = 0.0_dp
6515 5460 : ks_bc = 0.0_dp
6516 5460 : p_bd = pbd((md - 1)*1 + mb)
6517 5460 : p_bc = pbc((mc - 1)*1 + mb)
6518 10920 : DO ma = 1, 1
6519 5460 : p_index = p_index + 1
6520 5460 : tmp = scale*prim(p_index)
6521 5460 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6522 5460 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6523 5460 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6524 10920 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6525 : END DO
6526 5460 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
6527 10920 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
6528 : END DO
6529 : END DO
6530 : END DO
6531 38 : END SUBROUTINE block_1_1_15
6532 : ! **************************************************************************************************
6533 : !> \brief ...
6534 : !> \param kbd ...
6535 : !> \param kbc ...
6536 : !> \param kad ...
6537 : !> \param kac ...
6538 : !> \param pbd ...
6539 : !> \param pbc ...
6540 : !> \param pad ...
6541 : !> \param pac ...
6542 : !> \param prim ...
6543 : !> \param scale ...
6544 : ! **************************************************************************************************
6545 1810 : SUBROUTINE block_1_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6546 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(1*1), kac(1*1), &
6547 : pbd(2*1), pbc(2*1), pad(1*1), &
6548 : pac(1*1), prim(1*2*1*1), scale
6549 :
6550 : INTEGER :: ma, mb, mc, md, p_index
6551 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6552 :
6553 1810 : kbd(1:2*1) = 0.0_dp
6554 1810 : kbc(1:2*1) = 0.0_dp
6555 1810 : kad(1:1*1) = 0.0_dp
6556 1810 : kac(1:1*1) = 0.0_dp
6557 1810 : p_index = 0
6558 3620 : DO md = 1, 1
6559 5430 : DO mc = 1, 1
6560 7240 : DO mb = 1, 2
6561 3620 : ks_bd = 0.0_dp
6562 3620 : ks_bc = 0.0_dp
6563 3620 : p_bd = pbd((md - 1)*2 + mb)
6564 3620 : p_bc = pbc((mc - 1)*2 + mb)
6565 7240 : DO ma = 1, 1
6566 3620 : p_index = p_index + 1
6567 3620 : tmp = scale*prim(p_index)
6568 3620 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6569 3620 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6570 3620 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6571 7240 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6572 : END DO
6573 3620 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6574 5430 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6575 : END DO
6576 : END DO
6577 : END DO
6578 1810 : END SUBROUTINE block_1_2_1_1
6579 : ! **************************************************************************************************
6580 : !> \brief ...
6581 : !> \param kbd ...
6582 : !> \param kbc ...
6583 : !> \param kad ...
6584 : !> \param kac ...
6585 : !> \param pbd ...
6586 : !> \param pbc ...
6587 : !> \param pad ...
6588 : !> \param pac ...
6589 : !> \param prim ...
6590 : !> \param scale ...
6591 : ! **************************************************************************************************
6592 706 : SUBROUTINE block_1_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6593 : REAL(KIND=dp) :: kbd(2*2), kbc(2*1), kad(1*2), kac(1*1), &
6594 : pbd(2*2), pbc(2*1), pad(1*2), &
6595 : pac(1*1), prim(1*2*1*2), scale
6596 :
6597 : INTEGER :: ma, mb, mc, md, p_index
6598 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6599 :
6600 706 : kbd(1:2*2) = 0.0_dp
6601 706 : kbc(1:2*1) = 0.0_dp
6602 706 : kad(1:1*2) = 0.0_dp
6603 706 : kac(1:1*1) = 0.0_dp
6604 706 : p_index = 0
6605 2118 : DO md = 1, 2
6606 3530 : DO mc = 1, 1
6607 5648 : DO mb = 1, 2
6608 2824 : ks_bd = 0.0_dp
6609 2824 : ks_bc = 0.0_dp
6610 2824 : p_bd = pbd((md - 1)*2 + mb)
6611 2824 : p_bc = pbc((mc - 1)*2 + mb)
6612 5648 : DO ma = 1, 1
6613 2824 : p_index = p_index + 1
6614 2824 : tmp = scale*prim(p_index)
6615 2824 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6616 2824 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6617 2824 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6618 5648 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6619 : END DO
6620 2824 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6621 4236 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6622 : END DO
6623 : END DO
6624 : END DO
6625 706 : END SUBROUTINE block_1_2_1_2
6626 : ! **************************************************************************************************
6627 : !> \brief ...
6628 : !> \param kbd ...
6629 : !> \param kbc ...
6630 : !> \param kad ...
6631 : !> \param kac ...
6632 : !> \param pbd ...
6633 : !> \param pbc ...
6634 : !> \param pad ...
6635 : !> \param pac ...
6636 : !> \param prim ...
6637 : !> \param scale ...
6638 : ! **************************************************************************************************
6639 2409 : SUBROUTINE block_1_2_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6640 : REAL(KIND=dp) :: kbd(2*3), kbc(2*1), kad(1*3), kac(1*1), &
6641 : pbd(2*3), pbc(2*1), pad(1*3), &
6642 : pac(1*1), prim(1*2*1*3), scale
6643 :
6644 : INTEGER :: ma, mb, mc, md, p_index
6645 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6646 :
6647 2409 : kbd(1:2*3) = 0.0_dp
6648 2409 : kbc(1:2*1) = 0.0_dp
6649 2409 : kad(1:1*3) = 0.0_dp
6650 2409 : kac(1:1*1) = 0.0_dp
6651 2409 : p_index = 0
6652 9636 : DO md = 1, 3
6653 16863 : DO mc = 1, 1
6654 28908 : DO mb = 1, 2
6655 14454 : ks_bd = 0.0_dp
6656 14454 : ks_bc = 0.0_dp
6657 14454 : p_bd = pbd((md - 1)*2 + mb)
6658 14454 : p_bc = pbc((mc - 1)*2 + mb)
6659 28908 : DO ma = 1, 1
6660 14454 : p_index = p_index + 1
6661 14454 : tmp = scale*prim(p_index)
6662 14454 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6663 14454 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6664 14454 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6665 28908 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6666 : END DO
6667 14454 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6668 21681 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6669 : END DO
6670 : END DO
6671 : END DO
6672 2409 : END SUBROUTINE block_1_2_1_3
6673 : ! **************************************************************************************************
6674 : !> \brief ...
6675 : !> \param kbd ...
6676 : !> \param kbc ...
6677 : !> \param kad ...
6678 : !> \param kac ...
6679 : !> \param pbd ...
6680 : !> \param pbc ...
6681 : !> \param pad ...
6682 : !> \param pac ...
6683 : !> \param prim ...
6684 : !> \param scale ...
6685 : ! **************************************************************************************************
6686 4 : SUBROUTINE block_1_2_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6687 : REAL(KIND=dp) :: kbd(2*4), kbc(2*1), kad(1*4), kac(1*1), &
6688 : pbd(2*4), pbc(2*1), pad(1*4), &
6689 : pac(1*1), prim(1*2*1*4), scale
6690 :
6691 : INTEGER :: ma, mb, mc, md, p_index
6692 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6693 :
6694 4 : kbd(1:2*4) = 0.0_dp
6695 4 : kbc(1:2*1) = 0.0_dp
6696 4 : kad(1:1*4) = 0.0_dp
6697 4 : kac(1:1*1) = 0.0_dp
6698 4 : p_index = 0
6699 20 : DO md = 1, 4
6700 36 : DO mc = 1, 1
6701 64 : DO mb = 1, 2
6702 32 : ks_bd = 0.0_dp
6703 32 : ks_bc = 0.0_dp
6704 32 : p_bd = pbd((md - 1)*2 + mb)
6705 32 : p_bc = pbc((mc - 1)*2 + mb)
6706 64 : DO ma = 1, 1
6707 32 : p_index = p_index + 1
6708 32 : tmp = scale*prim(p_index)
6709 32 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6710 32 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6711 32 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6712 64 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6713 : END DO
6714 32 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6715 48 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6716 : END DO
6717 : END DO
6718 : END DO
6719 4 : END SUBROUTINE block_1_2_1_4
6720 : ! **************************************************************************************************
6721 : !> \brief ...
6722 : !> \param kbd ...
6723 : !> \param kbc ...
6724 : !> \param kad ...
6725 : !> \param kac ...
6726 : !> \param pbd ...
6727 : !> \param pbc ...
6728 : !> \param pad ...
6729 : !> \param pac ...
6730 : !> \param prim ...
6731 : !> \param scale ...
6732 : ! **************************************************************************************************
6733 1708 : SUBROUTINE block_1_2_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6734 : REAL(KIND=dp) :: kbd(2*5), kbc(2*1), kad(1*5), kac(1*1), &
6735 : pbd(2*5), pbc(2*1), pad(1*5), &
6736 : pac(1*1), prim(1*2*1*5), scale
6737 :
6738 : INTEGER :: ma, mb, mc, md, p_index
6739 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6740 :
6741 1708 : kbd(1:2*5) = 0.0_dp
6742 1708 : kbc(1:2*1) = 0.0_dp
6743 1708 : kad(1:1*5) = 0.0_dp
6744 1708 : kac(1:1*1) = 0.0_dp
6745 1708 : p_index = 0
6746 10248 : DO md = 1, 5
6747 18788 : DO mc = 1, 1
6748 34160 : DO mb = 1, 2
6749 17080 : ks_bd = 0.0_dp
6750 17080 : ks_bc = 0.0_dp
6751 17080 : p_bd = pbd((md - 1)*2 + mb)
6752 17080 : p_bc = pbc((mc - 1)*2 + mb)
6753 34160 : DO ma = 1, 1
6754 17080 : p_index = p_index + 1
6755 17080 : tmp = scale*prim(p_index)
6756 17080 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6757 17080 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6758 17080 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6759 34160 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6760 : END DO
6761 17080 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6762 25620 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6763 : END DO
6764 : END DO
6765 : END DO
6766 1708 : END SUBROUTINE block_1_2_1_5
6767 : ! **************************************************************************************************
6768 : !> \brief ...
6769 : !> \param kbd ...
6770 : !> \param kbc ...
6771 : !> \param kad ...
6772 : !> \param kac ...
6773 : !> \param pbd ...
6774 : !> \param pbc ...
6775 : !> \param pad ...
6776 : !> \param pac ...
6777 : !> \param prim ...
6778 : !> \param scale ...
6779 : ! **************************************************************************************************
6780 4 : SUBROUTINE block_1_2_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6781 : REAL(KIND=dp) :: kbd(2*6), kbc(2*1), kad(1*6), kac(1*1), &
6782 : pbd(2*6), pbc(2*1), pad(1*6), &
6783 : pac(1*1), prim(1*2*1*6), scale
6784 :
6785 : INTEGER :: ma, mb, mc, md, p_index
6786 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6787 :
6788 4 : kbd(1:2*6) = 0.0_dp
6789 4 : kbc(1:2*1) = 0.0_dp
6790 4 : kad(1:1*6) = 0.0_dp
6791 4 : kac(1:1*1) = 0.0_dp
6792 4 : p_index = 0
6793 28 : DO md = 1, 6
6794 52 : DO mc = 1, 1
6795 96 : DO mb = 1, 2
6796 48 : ks_bd = 0.0_dp
6797 48 : ks_bc = 0.0_dp
6798 48 : p_bd = pbd((md - 1)*2 + mb)
6799 48 : p_bc = pbc((mc - 1)*2 + mb)
6800 96 : DO ma = 1, 1
6801 48 : p_index = p_index + 1
6802 48 : tmp = scale*prim(p_index)
6803 48 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6804 48 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6805 48 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6806 96 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6807 : END DO
6808 48 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6809 72 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6810 : END DO
6811 : END DO
6812 : END DO
6813 4 : END SUBROUTINE block_1_2_1_6
6814 : ! **************************************************************************************************
6815 : !> \brief ...
6816 : !> \param kbd ...
6817 : !> \param kbc ...
6818 : !> \param kad ...
6819 : !> \param kac ...
6820 : !> \param pbd ...
6821 : !> \param pbc ...
6822 : !> \param pad ...
6823 : !> \param pac ...
6824 : !> \param prim ...
6825 : !> \param scale ...
6826 : ! **************************************************************************************************
6827 713 : SUBROUTINE block_1_2_1_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6828 : REAL(KIND=dp) :: kbd(2*7), kbc(2*1), kad(1*7), kac(1*1), &
6829 : pbd(2*7), pbc(2*1), pad(1*7), &
6830 : pac(1*1), prim(1*2*1*7), scale
6831 :
6832 : INTEGER :: ma, mb, mc, md, p_index
6833 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6834 :
6835 713 : kbd(1:2*7) = 0.0_dp
6836 713 : kbc(1:2*1) = 0.0_dp
6837 713 : kad(1:1*7) = 0.0_dp
6838 713 : kac(1:1*1) = 0.0_dp
6839 713 : p_index = 0
6840 5704 : DO md = 1, 7
6841 10695 : DO mc = 1, 1
6842 19964 : DO mb = 1, 2
6843 9982 : ks_bd = 0.0_dp
6844 9982 : ks_bc = 0.0_dp
6845 9982 : p_bd = pbd((md - 1)*2 + mb)
6846 9982 : p_bc = pbc((mc - 1)*2 + mb)
6847 19964 : DO ma = 1, 1
6848 9982 : p_index = p_index + 1
6849 9982 : tmp = scale*prim(p_index)
6850 9982 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6851 9982 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6852 9982 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6853 19964 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6854 : END DO
6855 9982 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6856 14973 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6857 : END DO
6858 : END DO
6859 : END DO
6860 713 : END SUBROUTINE block_1_2_1_7
6861 : ! **************************************************************************************************
6862 : !> \brief ...
6863 : !> \param kbd ...
6864 : !> \param kbc ...
6865 : !> \param kad ...
6866 : !> \param kac ...
6867 : !> \param pbd ...
6868 : !> \param pbc ...
6869 : !> \param pad ...
6870 : !> \param pac ...
6871 : !> \param prim ...
6872 : !> \param scale ...
6873 : ! **************************************************************************************************
6874 1 : SUBROUTINE block_1_2_1_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6875 : REAL(KIND=dp) :: kbd(2*9), kbc(2*1), kad(1*9), kac(1*1), &
6876 : pbd(2*9), pbc(2*1), pad(1*9), &
6877 : pac(1*1), prim(1*2*1*9), scale
6878 :
6879 : INTEGER :: ma, mb, mc, md, p_index
6880 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6881 :
6882 1 : kbd(1:2*9) = 0.0_dp
6883 1 : kbc(1:2*1) = 0.0_dp
6884 1 : kad(1:1*9) = 0.0_dp
6885 1 : kac(1:1*1) = 0.0_dp
6886 1 : p_index = 0
6887 10 : DO md = 1, 9
6888 19 : DO mc = 1, 1
6889 36 : DO mb = 1, 2
6890 18 : ks_bd = 0.0_dp
6891 18 : ks_bc = 0.0_dp
6892 18 : p_bd = pbd((md - 1)*2 + mb)
6893 18 : p_bc = pbc((mc - 1)*2 + mb)
6894 36 : DO ma = 1, 1
6895 18 : p_index = p_index + 1
6896 18 : tmp = scale*prim(p_index)
6897 18 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6898 18 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6899 18 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6900 36 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6901 : END DO
6902 18 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6903 27 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6904 : END DO
6905 : END DO
6906 : END DO
6907 1 : END SUBROUTINE block_1_2_1_9
6908 : ! **************************************************************************************************
6909 : !> \brief ...
6910 : !> \param md_max ...
6911 : !> \param kbd ...
6912 : !> \param kbc ...
6913 : !> \param kad ...
6914 : !> \param kac ...
6915 : !> \param pbd ...
6916 : !> \param pbc ...
6917 : !> \param pad ...
6918 : !> \param pac ...
6919 : !> \param prim ...
6920 : !> \param scale ...
6921 : ! **************************************************************************************************
6922 3 : SUBROUTINE block_1_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6923 : INTEGER :: md_max
6924 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(1*md_max), kac(1*1), pbd(2*md_max), pbc(2*1), &
6925 : pad(1*md_max), pac(1*1), prim(1*2*1*md_max), scale
6926 :
6927 : INTEGER :: ma, mb, mc, md, p_index
6928 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6929 :
6930 75 : kbd(1:2*md_max) = 0.0_dp
6931 3 : kbc(1:2*1) = 0.0_dp
6932 39 : kad(1:1*md_max) = 0.0_dp
6933 3 : kac(1:1*1) = 0.0_dp
6934 3 : p_index = 0
6935 39 : DO md = 1, md_max
6936 75 : DO mc = 1, 1
6937 144 : DO mb = 1, 2
6938 72 : ks_bd = 0.0_dp
6939 72 : ks_bc = 0.0_dp
6940 72 : p_bd = pbd((md - 1)*2 + mb)
6941 72 : p_bc = pbc((mc - 1)*2 + mb)
6942 144 : DO ma = 1, 1
6943 72 : p_index = p_index + 1
6944 72 : tmp = scale*prim(p_index)
6945 72 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6946 72 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6947 72 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6948 144 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6949 : END DO
6950 72 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6951 108 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6952 : END DO
6953 : END DO
6954 : END DO
6955 3 : END SUBROUTINE block_1_2_1
6956 : ! **************************************************************************************************
6957 : !> \brief ...
6958 : !> \param kbd ...
6959 : !> \param kbc ...
6960 : !> \param kad ...
6961 : !> \param kac ...
6962 : !> \param pbd ...
6963 : !> \param pbc ...
6964 : !> \param pad ...
6965 : !> \param pac ...
6966 : !> \param prim ...
6967 : !> \param scale ...
6968 : ! **************************************************************************************************
6969 698 : SUBROUTINE block_1_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
6970 : REAL(KIND=dp) :: kbd(2*1), kbc(2*2), kad(1*1), kac(1*2), &
6971 : pbd(2*1), pbc(2*2), pad(1*1), &
6972 : pac(1*2), prim(1*2*2*1), scale
6973 :
6974 : INTEGER :: ma, mb, mc, md, p_index
6975 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
6976 :
6977 698 : kbd(1:2*1) = 0.0_dp
6978 698 : kbc(1:2*2) = 0.0_dp
6979 698 : kad(1:1*1) = 0.0_dp
6980 698 : kac(1:1*2) = 0.0_dp
6981 698 : p_index = 0
6982 1396 : DO md = 1, 1
6983 2792 : DO mc = 1, 2
6984 4886 : DO mb = 1, 2
6985 2792 : ks_bd = 0.0_dp
6986 2792 : ks_bc = 0.0_dp
6987 2792 : p_bd = pbd((md - 1)*2 + mb)
6988 2792 : p_bc = pbc((mc - 1)*2 + mb)
6989 5584 : DO ma = 1, 1
6990 2792 : p_index = p_index + 1
6991 2792 : tmp = scale*prim(p_index)
6992 2792 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
6993 2792 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
6994 2792 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
6995 5584 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
6996 : END DO
6997 2792 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
6998 4188 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
6999 : END DO
7000 : END DO
7001 : END DO
7002 698 : END SUBROUTINE block_1_2_2_1
7003 : ! **************************************************************************************************
7004 : !> \brief ...
7005 : !> \param kbd ...
7006 : !> \param kbc ...
7007 : !> \param kad ...
7008 : !> \param kac ...
7009 : !> \param pbd ...
7010 : !> \param pbc ...
7011 : !> \param pad ...
7012 : !> \param pac ...
7013 : !> \param prim ...
7014 : !> \param scale ...
7015 : ! **************************************************************************************************
7016 307 : SUBROUTINE block_1_2_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7017 : REAL(KIND=dp) :: kbd(2*2), kbc(2*2), kad(1*2), kac(1*2), &
7018 : pbd(2*2), pbc(2*2), pad(1*2), &
7019 : pac(1*2), prim(1*2*2*2), scale
7020 :
7021 : INTEGER :: ma, mb, mc, md, p_index
7022 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7023 :
7024 307 : kbd(1:2*2) = 0.0_dp
7025 307 : kbc(1:2*2) = 0.0_dp
7026 307 : kad(1:1*2) = 0.0_dp
7027 307 : kac(1:1*2) = 0.0_dp
7028 307 : p_index = 0
7029 921 : DO md = 1, 2
7030 2149 : DO mc = 1, 2
7031 4298 : DO mb = 1, 2
7032 2456 : ks_bd = 0.0_dp
7033 2456 : ks_bc = 0.0_dp
7034 2456 : p_bd = pbd((md - 1)*2 + mb)
7035 2456 : p_bc = pbc((mc - 1)*2 + mb)
7036 4912 : DO ma = 1, 1
7037 2456 : p_index = p_index + 1
7038 2456 : tmp = scale*prim(p_index)
7039 2456 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7040 2456 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7041 2456 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7042 4912 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7043 : END DO
7044 2456 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7045 3684 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7046 : END DO
7047 : END DO
7048 : END DO
7049 307 : END SUBROUTINE block_1_2_2_2
7050 : ! **************************************************************************************************
7051 : !> \brief ...
7052 : !> \param kbd ...
7053 : !> \param kbc ...
7054 : !> \param kad ...
7055 : !> \param kac ...
7056 : !> \param pbd ...
7057 : !> \param pbc ...
7058 : !> \param pad ...
7059 : !> \param pac ...
7060 : !> \param prim ...
7061 : !> \param scale ...
7062 : ! **************************************************************************************************
7063 941 : SUBROUTINE block_1_2_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7064 : REAL(KIND=dp) :: kbd(2*3), kbc(2*2), kad(1*3), kac(1*2), &
7065 : pbd(2*3), pbc(2*2), pad(1*3), &
7066 : pac(1*2), prim(1*2*2*3), scale
7067 :
7068 : INTEGER :: ma, mb, mc, md, p_index
7069 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7070 :
7071 941 : kbd(1:2*3) = 0.0_dp
7072 941 : kbc(1:2*2) = 0.0_dp
7073 941 : kad(1:1*3) = 0.0_dp
7074 941 : kac(1:1*2) = 0.0_dp
7075 941 : p_index = 0
7076 3764 : DO md = 1, 3
7077 9410 : DO mc = 1, 2
7078 19761 : DO mb = 1, 2
7079 11292 : ks_bd = 0.0_dp
7080 11292 : ks_bc = 0.0_dp
7081 11292 : p_bd = pbd((md - 1)*2 + mb)
7082 11292 : p_bc = pbc((mc - 1)*2 + mb)
7083 22584 : DO ma = 1, 1
7084 11292 : p_index = p_index + 1
7085 11292 : tmp = scale*prim(p_index)
7086 11292 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7087 11292 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7088 11292 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7089 22584 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7090 : END DO
7091 11292 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7092 16938 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7093 : END DO
7094 : END DO
7095 : END DO
7096 941 : END SUBROUTINE block_1_2_2_3
7097 : ! **************************************************************************************************
7098 : !> \brief ...
7099 : !> \param kbd ...
7100 : !> \param kbc ...
7101 : !> \param kad ...
7102 : !> \param kac ...
7103 : !> \param pbd ...
7104 : !> \param pbc ...
7105 : !> \param pad ...
7106 : !> \param pac ...
7107 : !> \param prim ...
7108 : !> \param scale ...
7109 : ! **************************************************************************************************
7110 3 : SUBROUTINE block_1_2_2_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7111 : REAL(KIND=dp) :: kbd(2*4), kbc(2*2), kad(1*4), kac(1*2), &
7112 : pbd(2*4), pbc(2*2), pad(1*4), &
7113 : pac(1*2), prim(1*2*2*4), scale
7114 :
7115 : INTEGER :: ma, mb, mc, md, p_index
7116 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7117 :
7118 3 : kbd(1:2*4) = 0.0_dp
7119 3 : kbc(1:2*2) = 0.0_dp
7120 3 : kad(1:1*4) = 0.0_dp
7121 3 : kac(1:1*2) = 0.0_dp
7122 3 : p_index = 0
7123 15 : DO md = 1, 4
7124 39 : DO mc = 1, 2
7125 84 : DO mb = 1, 2
7126 48 : ks_bd = 0.0_dp
7127 48 : ks_bc = 0.0_dp
7128 48 : p_bd = pbd((md - 1)*2 + mb)
7129 48 : p_bc = pbc((mc - 1)*2 + mb)
7130 96 : DO ma = 1, 1
7131 48 : p_index = p_index + 1
7132 48 : tmp = scale*prim(p_index)
7133 48 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7134 48 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7135 48 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7136 96 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7137 : END DO
7138 48 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7139 72 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7140 : END DO
7141 : END DO
7142 : END DO
7143 3 : END SUBROUTINE block_1_2_2_4
7144 : ! **************************************************************************************************
7145 : !> \brief ...
7146 : !> \param md_max ...
7147 : !> \param kbd ...
7148 : !> \param kbc ...
7149 : !> \param kad ...
7150 : !> \param kac ...
7151 : !> \param pbd ...
7152 : !> \param pbc ...
7153 : !> \param pad ...
7154 : !> \param pac ...
7155 : !> \param prim ...
7156 : !> \param scale ...
7157 : ! **************************************************************************************************
7158 906 : SUBROUTINE block_1_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7159 : INTEGER :: md_max
7160 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*2), kad(1*md_max), kac(1*2), pbd(2*md_max), pbc(2*2), &
7161 : pad(1*md_max), pac(1*2), prim(1*2*2*md_max), scale
7162 :
7163 : INTEGER :: ma, mb, mc, md, p_index
7164 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7165 :
7166 10964 : kbd(1:2*md_max) = 0.0_dp
7167 906 : kbc(1:2*2) = 0.0_dp
7168 5935 : kad(1:1*md_max) = 0.0_dp
7169 906 : kac(1:1*2) = 0.0_dp
7170 906 : p_index = 0
7171 5935 : DO md = 1, md_max
7172 15993 : DO mc = 1, 2
7173 35203 : DO mb = 1, 2
7174 20116 : ks_bd = 0.0_dp
7175 20116 : ks_bc = 0.0_dp
7176 20116 : p_bd = pbd((md - 1)*2 + mb)
7177 20116 : p_bc = pbc((mc - 1)*2 + mb)
7178 40232 : DO ma = 1, 1
7179 20116 : p_index = p_index + 1
7180 20116 : tmp = scale*prim(p_index)
7181 20116 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7182 20116 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7183 20116 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7184 40232 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7185 : END DO
7186 20116 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7187 30174 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7188 : END DO
7189 : END DO
7190 : END DO
7191 906 : END SUBROUTINE block_1_2_2
7192 : ! **************************************************************************************************
7193 : !> \brief ...
7194 : !> \param kbd ...
7195 : !> \param kbc ...
7196 : !> \param kad ...
7197 : !> \param kac ...
7198 : !> \param pbd ...
7199 : !> \param pbc ...
7200 : !> \param pad ...
7201 : !> \param pac ...
7202 : !> \param prim ...
7203 : !> \param scale ...
7204 : ! **************************************************************************************************
7205 2406 : SUBROUTINE block_1_2_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7206 : REAL(KIND=dp) :: kbd(2*1), kbc(2*3), kad(1*1), kac(1*3), &
7207 : pbd(2*1), pbc(2*3), pad(1*1), &
7208 : pac(1*3), prim(1*2*3*1), scale
7209 :
7210 : INTEGER :: ma, mb, mc, md, p_index
7211 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7212 :
7213 2406 : kbd(1:2*1) = 0.0_dp
7214 2406 : kbc(1:2*3) = 0.0_dp
7215 2406 : kad(1:1*1) = 0.0_dp
7216 2406 : kac(1:1*3) = 0.0_dp
7217 2406 : p_index = 0
7218 4812 : DO md = 1, 1
7219 12030 : DO mc = 1, 3
7220 24060 : DO mb = 1, 2
7221 14436 : ks_bd = 0.0_dp
7222 14436 : ks_bc = 0.0_dp
7223 14436 : p_bd = pbd((md - 1)*2 + mb)
7224 14436 : p_bc = pbc((mc - 1)*2 + mb)
7225 28872 : DO ma = 1, 1
7226 14436 : p_index = p_index + 1
7227 14436 : tmp = scale*prim(p_index)
7228 14436 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7229 14436 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7230 14436 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7231 28872 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7232 : END DO
7233 14436 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7234 21654 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7235 : END DO
7236 : END DO
7237 : END DO
7238 2406 : END SUBROUTINE block_1_2_3_1
7239 : ! **************************************************************************************************
7240 : !> \brief ...
7241 : !> \param kbd ...
7242 : !> \param kbc ...
7243 : !> \param kad ...
7244 : !> \param kac ...
7245 : !> \param pbd ...
7246 : !> \param pbc ...
7247 : !> \param pad ...
7248 : !> \param pac ...
7249 : !> \param prim ...
7250 : !> \param scale ...
7251 : ! **************************************************************************************************
7252 940 : SUBROUTINE block_1_2_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7253 : REAL(KIND=dp) :: kbd(2*2), kbc(2*3), kad(1*2), kac(1*3), &
7254 : pbd(2*2), pbc(2*3), pad(1*2), &
7255 : pac(1*3), prim(1*2*3*2), scale
7256 :
7257 : INTEGER :: ma, mb, mc, md, p_index
7258 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7259 :
7260 940 : kbd(1:2*2) = 0.0_dp
7261 940 : kbc(1:2*3) = 0.0_dp
7262 940 : kad(1:1*2) = 0.0_dp
7263 940 : kac(1:1*3) = 0.0_dp
7264 940 : p_index = 0
7265 2820 : DO md = 1, 2
7266 8460 : DO mc = 1, 3
7267 18800 : DO mb = 1, 2
7268 11280 : ks_bd = 0.0_dp
7269 11280 : ks_bc = 0.0_dp
7270 11280 : p_bd = pbd((md - 1)*2 + mb)
7271 11280 : p_bc = pbc((mc - 1)*2 + mb)
7272 22560 : DO ma = 1, 1
7273 11280 : p_index = p_index + 1
7274 11280 : tmp = scale*prim(p_index)
7275 11280 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7276 11280 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7277 11280 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7278 22560 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7279 : END DO
7280 11280 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7281 16920 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7282 : END DO
7283 : END DO
7284 : END DO
7285 940 : END SUBROUTINE block_1_2_3_2
7286 : ! **************************************************************************************************
7287 : !> \brief ...
7288 : !> \param kbd ...
7289 : !> \param kbc ...
7290 : !> \param kad ...
7291 : !> \param kac ...
7292 : !> \param pbd ...
7293 : !> \param pbc ...
7294 : !> \param pad ...
7295 : !> \param pac ...
7296 : !> \param prim ...
7297 : !> \param scale ...
7298 : ! **************************************************************************************************
7299 3509 : SUBROUTINE block_1_2_3_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7300 : REAL(KIND=dp) :: kbd(2*3), kbc(2*3), kad(1*3), kac(1*3), &
7301 : pbd(2*3), pbc(2*3), pad(1*3), &
7302 : pac(1*3), prim(1*2*3*3), scale
7303 :
7304 : INTEGER :: ma, mb, mc, md, p_index
7305 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7306 :
7307 3509 : kbd(1:2*3) = 0.0_dp
7308 3509 : kbc(1:2*3) = 0.0_dp
7309 3509 : kad(1:1*3) = 0.0_dp
7310 3509 : kac(1:1*3) = 0.0_dp
7311 3509 : p_index = 0
7312 14036 : DO md = 1, 3
7313 45617 : DO mc = 1, 3
7314 105270 : DO mb = 1, 2
7315 63162 : ks_bd = 0.0_dp
7316 63162 : ks_bc = 0.0_dp
7317 63162 : p_bd = pbd((md - 1)*2 + mb)
7318 63162 : p_bc = pbc((mc - 1)*2 + mb)
7319 126324 : DO ma = 1, 1
7320 63162 : p_index = p_index + 1
7321 63162 : tmp = scale*prim(p_index)
7322 63162 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7323 63162 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7324 63162 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7325 126324 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7326 : END DO
7327 63162 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7328 94743 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7329 : END DO
7330 : END DO
7331 : END DO
7332 3509 : END SUBROUTINE block_1_2_3_3
7333 : ! **************************************************************************************************
7334 : !> \brief ...
7335 : !> \param md_max ...
7336 : !> \param kbd ...
7337 : !> \param kbc ...
7338 : !> \param kad ...
7339 : !> \param kac ...
7340 : !> \param pbd ...
7341 : !> \param pbc ...
7342 : !> \param pad ...
7343 : !> \param pac ...
7344 : !> \param prim ...
7345 : !> \param scale ...
7346 : ! **************************************************************************************************
7347 3334 : SUBROUTINE block_1_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7348 : INTEGER :: md_max
7349 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*3), kad(1*md_max), kac(1*3), pbd(2*md_max), pbc(2*3), &
7350 : pad(1*md_max), pac(1*3), prim(1*2*3*md_max), scale
7351 :
7352 : INTEGER :: ma, mb, mc, md, p_index
7353 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7354 :
7355 40450 : kbd(1:2*md_max) = 0.0_dp
7356 3334 : kbc(1:2*3) = 0.0_dp
7357 21892 : kad(1:1*md_max) = 0.0_dp
7358 3334 : kac(1:1*3) = 0.0_dp
7359 3334 : p_index = 0
7360 21892 : DO md = 1, md_max
7361 77566 : DO mc = 1, 3
7362 185580 : DO mb = 1, 2
7363 111348 : ks_bd = 0.0_dp
7364 111348 : ks_bc = 0.0_dp
7365 111348 : p_bd = pbd((md - 1)*2 + mb)
7366 111348 : p_bc = pbc((mc - 1)*2 + mb)
7367 222696 : DO ma = 1, 1
7368 111348 : p_index = p_index + 1
7369 111348 : tmp = scale*prim(p_index)
7370 111348 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7371 111348 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7372 111348 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7373 222696 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7374 : END DO
7375 111348 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7376 167022 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7377 : END DO
7378 : END DO
7379 : END DO
7380 3334 : END SUBROUTINE block_1_2_3
7381 : ! **************************************************************************************************
7382 : !> \brief ...
7383 : !> \param kbd ...
7384 : !> \param kbc ...
7385 : !> \param kad ...
7386 : !> \param kac ...
7387 : !> \param pbd ...
7388 : !> \param pbc ...
7389 : !> \param pad ...
7390 : !> \param pac ...
7391 : !> \param prim ...
7392 : !> \param scale ...
7393 : ! **************************************************************************************************
7394 2 : SUBROUTINE block_1_2_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7395 : REAL(KIND=dp) :: kbd(2*1), kbc(2*4), kad(1*1), kac(1*4), &
7396 : pbd(2*1), pbc(2*4), pad(1*1), &
7397 : pac(1*4), prim(1*2*4*1), scale
7398 :
7399 : INTEGER :: ma, mb, mc, md, p_index
7400 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7401 :
7402 2 : kbd(1:2*1) = 0.0_dp
7403 2 : kbc(1:2*4) = 0.0_dp
7404 2 : kad(1:1*1) = 0.0_dp
7405 2 : kac(1:1*4) = 0.0_dp
7406 2 : p_index = 0
7407 4 : DO md = 1, 1
7408 12 : DO mc = 1, 4
7409 26 : DO mb = 1, 2
7410 16 : ks_bd = 0.0_dp
7411 16 : ks_bc = 0.0_dp
7412 16 : p_bd = pbd((md - 1)*2 + mb)
7413 16 : p_bc = pbc((mc - 1)*2 + mb)
7414 32 : DO ma = 1, 1
7415 16 : p_index = p_index + 1
7416 16 : tmp = scale*prim(p_index)
7417 16 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7418 16 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7419 16 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7420 32 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7421 : END DO
7422 16 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7423 24 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7424 : END DO
7425 : END DO
7426 : END DO
7427 2 : END SUBROUTINE block_1_2_4_1
7428 : ! **************************************************************************************************
7429 : !> \brief ...
7430 : !> \param kbd ...
7431 : !> \param kbc ...
7432 : !> \param kad ...
7433 : !> \param kac ...
7434 : !> \param pbd ...
7435 : !> \param pbc ...
7436 : !> \param pad ...
7437 : !> \param pac ...
7438 : !> \param prim ...
7439 : !> \param scale ...
7440 : ! **************************************************************************************************
7441 2 : SUBROUTINE block_1_2_4_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7442 : REAL(KIND=dp) :: kbd(2*2), kbc(2*4), kad(1*2), kac(1*4), &
7443 : pbd(2*2), pbc(2*4), pad(1*2), &
7444 : pac(1*4), prim(1*2*4*2), scale
7445 :
7446 : INTEGER :: ma, mb, mc, md, p_index
7447 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7448 :
7449 2 : kbd(1:2*2) = 0.0_dp
7450 2 : kbc(1:2*4) = 0.0_dp
7451 2 : kad(1:1*2) = 0.0_dp
7452 2 : kac(1:1*4) = 0.0_dp
7453 2 : p_index = 0
7454 6 : DO md = 1, 2
7455 22 : DO mc = 1, 4
7456 52 : DO mb = 1, 2
7457 32 : ks_bd = 0.0_dp
7458 32 : ks_bc = 0.0_dp
7459 32 : p_bd = pbd((md - 1)*2 + mb)
7460 32 : p_bc = pbc((mc - 1)*2 + mb)
7461 64 : DO ma = 1, 1
7462 32 : p_index = p_index + 1
7463 32 : tmp = scale*prim(p_index)
7464 32 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7465 32 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7466 32 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7467 64 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7468 : END DO
7469 32 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7470 48 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7471 : END DO
7472 : END DO
7473 : END DO
7474 2 : END SUBROUTINE block_1_2_4_2
7475 : ! **************************************************************************************************
7476 : !> \brief ...
7477 : !> \param md_max ...
7478 : !> \param kbd ...
7479 : !> \param kbc ...
7480 : !> \param kad ...
7481 : !> \param kac ...
7482 : !> \param pbd ...
7483 : !> \param pbc ...
7484 : !> \param pad ...
7485 : !> \param pac ...
7486 : !> \param prim ...
7487 : !> \param scale ...
7488 : ! **************************************************************************************************
7489 8 : SUBROUTINE block_1_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7490 : INTEGER :: md_max
7491 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*4), kad(1*md_max), kac(1*4), pbd(2*md_max), pbc(2*4), &
7492 : pad(1*md_max), pac(1*4), prim(1*2*4*md_max), scale
7493 :
7494 : INTEGER :: ma, mb, mc, md, p_index
7495 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7496 :
7497 78 : kbd(1:2*md_max) = 0.0_dp
7498 8 : kbc(1:2*4) = 0.0_dp
7499 43 : kad(1:1*md_max) = 0.0_dp
7500 8 : kac(1:1*4) = 0.0_dp
7501 8 : p_index = 0
7502 43 : DO md = 1, md_max
7503 183 : DO mc = 1, 4
7504 455 : DO mb = 1, 2
7505 280 : ks_bd = 0.0_dp
7506 280 : ks_bc = 0.0_dp
7507 280 : p_bd = pbd((md - 1)*2 + mb)
7508 280 : p_bc = pbc((mc - 1)*2 + mb)
7509 560 : DO ma = 1, 1
7510 280 : p_index = p_index + 1
7511 280 : tmp = scale*prim(p_index)
7512 280 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7513 280 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7514 280 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7515 560 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7516 : END DO
7517 280 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7518 420 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7519 : END DO
7520 : END DO
7521 : END DO
7522 8 : END SUBROUTINE block_1_2_4
7523 : ! **************************************************************************************************
7524 : !> \brief ...
7525 : !> \param kbd ...
7526 : !> \param kbc ...
7527 : !> \param kad ...
7528 : !> \param kac ...
7529 : !> \param pbd ...
7530 : !> \param pbc ...
7531 : !> \param pad ...
7532 : !> \param pac ...
7533 : !> \param prim ...
7534 : !> \param scale ...
7535 : ! **************************************************************************************************
7536 1705 : SUBROUTINE block_1_2_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7537 : REAL(KIND=dp) :: kbd(2*1), kbc(2*5), kad(1*1), kac(1*5), &
7538 : pbd(2*1), pbc(2*5), pad(1*1), &
7539 : pac(1*5), prim(1*2*5*1), scale
7540 :
7541 : INTEGER :: ma, mb, mc, md, p_index
7542 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7543 :
7544 1705 : kbd(1:2*1) = 0.0_dp
7545 1705 : kbc(1:2*5) = 0.0_dp
7546 1705 : kad(1:1*1) = 0.0_dp
7547 1705 : kac(1:1*5) = 0.0_dp
7548 1705 : p_index = 0
7549 3410 : DO md = 1, 1
7550 11935 : DO mc = 1, 5
7551 27280 : DO mb = 1, 2
7552 17050 : ks_bd = 0.0_dp
7553 17050 : ks_bc = 0.0_dp
7554 17050 : p_bd = pbd((md - 1)*2 + mb)
7555 17050 : p_bc = pbc((mc - 1)*2 + mb)
7556 34100 : DO ma = 1, 1
7557 17050 : p_index = p_index + 1
7558 17050 : tmp = scale*prim(p_index)
7559 17050 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7560 17050 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7561 17050 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7562 34100 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7563 : END DO
7564 17050 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7565 25575 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7566 : END DO
7567 : END DO
7568 : END DO
7569 1705 : END SUBROUTINE block_1_2_5_1
7570 : ! **************************************************************************************************
7571 : !> \brief ...
7572 : !> \param md_max ...
7573 : !> \param kbd ...
7574 : !> \param kbc ...
7575 : !> \param kad ...
7576 : !> \param kac ...
7577 : !> \param pbd ...
7578 : !> \param pbc ...
7579 : !> \param pad ...
7580 : !> \param pac ...
7581 : !> \param prim ...
7582 : !> \param scale ...
7583 : ! **************************************************************************************************
7584 5524 : SUBROUTINE block_1_2_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7585 : INTEGER :: md_max
7586 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*5), kad(1*md_max), kac(1*5), pbd(2*md_max), pbc(2*5), &
7587 : pad(1*md_max), pac(1*5), prim(1*2*5*md_max), scale
7588 :
7589 : INTEGER :: ma, mb, mc, md, p_index
7590 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7591 :
7592 50140 : kbd(1:2*md_max) = 0.0_dp
7593 5524 : kbc(1:2*5) = 0.0_dp
7594 27832 : kad(1:1*md_max) = 0.0_dp
7595 5524 : kac(1:1*5) = 0.0_dp
7596 5524 : p_index = 0
7597 27832 : DO md = 1, md_max
7598 139372 : DO mc = 1, 5
7599 356928 : DO mb = 1, 2
7600 223080 : ks_bd = 0.0_dp
7601 223080 : ks_bc = 0.0_dp
7602 223080 : p_bd = pbd((md - 1)*2 + mb)
7603 223080 : p_bc = pbc((mc - 1)*2 + mb)
7604 446160 : DO ma = 1, 1
7605 223080 : p_index = p_index + 1
7606 223080 : tmp = scale*prim(p_index)
7607 223080 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7608 223080 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7609 223080 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7610 446160 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7611 : END DO
7612 223080 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7613 334620 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7614 : END DO
7615 : END DO
7616 : END DO
7617 5524 : END SUBROUTINE block_1_2_5
7618 : ! **************************************************************************************************
7619 : !> \brief ...
7620 : !> \param kbd ...
7621 : !> \param kbc ...
7622 : !> \param kad ...
7623 : !> \param kac ...
7624 : !> \param pbd ...
7625 : !> \param pbc ...
7626 : !> \param pad ...
7627 : !> \param pac ...
7628 : !> \param prim ...
7629 : !> \param scale ...
7630 : ! **************************************************************************************************
7631 1 : SUBROUTINE block_1_2_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7632 : REAL(KIND=dp) :: kbd(2*1), kbc(2*6), kad(1*1), kac(1*6), &
7633 : pbd(2*1), pbc(2*6), pad(1*1), &
7634 : pac(1*6), prim(1*2*6*1), scale
7635 :
7636 : INTEGER :: ma, mb, mc, md, p_index
7637 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7638 :
7639 1 : kbd(1:2*1) = 0.0_dp
7640 1 : kbc(1:2*6) = 0.0_dp
7641 1 : kad(1:1*1) = 0.0_dp
7642 1 : kac(1:1*6) = 0.0_dp
7643 1 : p_index = 0
7644 2 : DO md = 1, 1
7645 8 : DO mc = 1, 6
7646 19 : DO mb = 1, 2
7647 12 : ks_bd = 0.0_dp
7648 12 : ks_bc = 0.0_dp
7649 12 : p_bd = pbd((md - 1)*2 + mb)
7650 12 : p_bc = pbc((mc - 1)*2 + mb)
7651 24 : DO ma = 1, 1
7652 12 : p_index = p_index + 1
7653 12 : tmp = scale*prim(p_index)
7654 12 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7655 12 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7656 12 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7657 24 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7658 : END DO
7659 12 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7660 18 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7661 : END DO
7662 : END DO
7663 : END DO
7664 1 : END SUBROUTINE block_1_2_6_1
7665 : ! **************************************************************************************************
7666 : !> \brief ...
7667 : !> \param md_max ...
7668 : !> \param kbd ...
7669 : !> \param kbc ...
7670 : !> \param kad ...
7671 : !> \param kac ...
7672 : !> \param pbd ...
7673 : !> \param pbc ...
7674 : !> \param pad ...
7675 : !> \param pac ...
7676 : !> \param prim ...
7677 : !> \param scale ...
7678 : ! **************************************************************************************************
7679 2 : SUBROUTINE block_1_2_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7680 : INTEGER :: md_max
7681 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*6), kad(1*md_max), kac(1*6), pbd(2*md_max), pbc(2*6), &
7682 : pad(1*md_max), pac(1*6), prim(1*2*6*md_max), scale
7683 :
7684 : INTEGER :: ma, mb, mc, md, p_index
7685 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7686 :
7687 18 : kbd(1:2*md_max) = 0.0_dp
7688 2 : kbc(1:2*6) = 0.0_dp
7689 10 : kad(1:1*md_max) = 0.0_dp
7690 2 : kac(1:1*6) = 0.0_dp
7691 2 : p_index = 0
7692 10 : DO md = 1, md_max
7693 58 : DO mc = 1, 6
7694 152 : DO mb = 1, 2
7695 96 : ks_bd = 0.0_dp
7696 96 : ks_bc = 0.0_dp
7697 96 : p_bd = pbd((md - 1)*2 + mb)
7698 96 : p_bc = pbc((mc - 1)*2 + mb)
7699 192 : DO ma = 1, 1
7700 96 : p_index = p_index + 1
7701 96 : tmp = scale*prim(p_index)
7702 96 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7703 96 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7704 96 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7705 192 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7706 : END DO
7707 96 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7708 144 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7709 : END DO
7710 : END DO
7711 : END DO
7712 2 : END SUBROUTINE block_1_2_6
7713 : ! **************************************************************************************************
7714 : !> \brief ...
7715 : !> \param kbd ...
7716 : !> \param kbc ...
7717 : !> \param kad ...
7718 : !> \param kac ...
7719 : !> \param pbd ...
7720 : !> \param pbc ...
7721 : !> \param pad ...
7722 : !> \param pac ...
7723 : !> \param prim ...
7724 : !> \param scale ...
7725 : ! **************************************************************************************************
7726 712 : SUBROUTINE block_1_2_7_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7727 : REAL(KIND=dp) :: kbd(2*1), kbc(2*7), kad(1*1), kac(1*7), &
7728 : pbd(2*1), pbc(2*7), pad(1*1), &
7729 : pac(1*7), prim(1*2*7*1), scale
7730 :
7731 : INTEGER :: ma, mb, mc, md, p_index
7732 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7733 :
7734 712 : kbd(1:2*1) = 0.0_dp
7735 712 : kbc(1:2*7) = 0.0_dp
7736 712 : kad(1:1*1) = 0.0_dp
7737 712 : kac(1:1*7) = 0.0_dp
7738 712 : p_index = 0
7739 1424 : DO md = 1, 1
7740 6408 : DO mc = 1, 7
7741 15664 : DO mb = 1, 2
7742 9968 : ks_bd = 0.0_dp
7743 9968 : ks_bc = 0.0_dp
7744 9968 : p_bd = pbd((md - 1)*2 + mb)
7745 9968 : p_bc = pbc((mc - 1)*2 + mb)
7746 19936 : DO ma = 1, 1
7747 9968 : p_index = p_index + 1
7748 9968 : tmp = scale*prim(p_index)
7749 9968 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7750 9968 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7751 9968 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7752 19936 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7753 : END DO
7754 9968 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7755 14952 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7756 : END DO
7757 : END DO
7758 : END DO
7759 712 : END SUBROUTINE block_1_2_7_1
7760 : ! **************************************************************************************************
7761 : !> \brief ...
7762 : !> \param md_max ...
7763 : !> \param kbd ...
7764 : !> \param kbc ...
7765 : !> \param kad ...
7766 : !> \param kac ...
7767 : !> \param pbd ...
7768 : !> \param pbc ...
7769 : !> \param pad ...
7770 : !> \param pac ...
7771 : !> \param prim ...
7772 : !> \param scale ...
7773 : ! **************************************************************************************************
7774 2385 : SUBROUTINE block_1_2_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7775 : INTEGER :: md_max
7776 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*7), kad(1*md_max), kac(1*7), pbd(2*md_max), pbc(2*7), &
7777 : pad(1*md_max), pac(1*7), prim(1*2*7*md_max), scale
7778 :
7779 : INTEGER :: ma, mb, mc, md, p_index
7780 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7781 :
7782 22927 : kbd(1:2*md_max) = 0.0_dp
7783 2385 : kbc(1:2*7) = 0.0_dp
7784 12656 : kad(1:1*md_max) = 0.0_dp
7785 2385 : kac(1:1*7) = 0.0_dp
7786 2385 : p_index = 0
7787 12656 : DO md = 1, md_max
7788 84553 : DO mc = 1, 7
7789 225962 : DO mb = 1, 2
7790 143794 : ks_bd = 0.0_dp
7791 143794 : ks_bc = 0.0_dp
7792 143794 : p_bd = pbd((md - 1)*2 + mb)
7793 143794 : p_bc = pbc((mc - 1)*2 + mb)
7794 287588 : DO ma = 1, 1
7795 143794 : p_index = p_index + 1
7796 143794 : tmp = scale*prim(p_index)
7797 143794 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7798 143794 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7799 143794 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7800 287588 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7801 : END DO
7802 143794 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7803 215691 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7804 : END DO
7805 : END DO
7806 : END DO
7807 2385 : END SUBROUTINE block_1_2_7
7808 : ! **************************************************************************************************
7809 : !> \brief ...
7810 : !> \param kbd ...
7811 : !> \param kbc ...
7812 : !> \param kad ...
7813 : !> \param kac ...
7814 : !> \param pbd ...
7815 : !> \param pbc ...
7816 : !> \param pad ...
7817 : !> \param pac ...
7818 : !> \param prim ...
7819 : !> \param scale ...
7820 : ! **************************************************************************************************
7821 0 : SUBROUTINE block_1_2_9_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7822 : REAL(KIND=dp) :: kbd(2*1), kbc(2*9), kad(1*1), kac(1*9), &
7823 : pbd(2*1), pbc(2*9), pad(1*1), &
7824 : pac(1*9), prim(1*2*9*1), scale
7825 :
7826 : INTEGER :: ma, mb, mc, md, p_index
7827 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7828 :
7829 0 : kbd(1:2*1) = 0.0_dp
7830 0 : kbc(1:2*9) = 0.0_dp
7831 0 : kad(1:1*1) = 0.0_dp
7832 0 : kac(1:1*9) = 0.0_dp
7833 0 : p_index = 0
7834 0 : DO md = 1, 1
7835 0 : DO mc = 1, 9
7836 0 : DO mb = 1, 2
7837 0 : ks_bd = 0.0_dp
7838 0 : ks_bc = 0.0_dp
7839 0 : p_bd = pbd((md - 1)*2 + mb)
7840 0 : p_bc = pbc((mc - 1)*2 + mb)
7841 0 : DO ma = 1, 1
7842 0 : p_index = p_index + 1
7843 0 : tmp = scale*prim(p_index)
7844 0 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7845 0 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7846 0 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7847 0 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7848 : END DO
7849 0 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7850 0 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7851 : END DO
7852 : END DO
7853 : END DO
7854 0 : END SUBROUTINE block_1_2_9_1
7855 : ! **************************************************************************************************
7856 : !> \brief ...
7857 : !> \param md_max ...
7858 : !> \param kbd ...
7859 : !> \param kbc ...
7860 : !> \param kad ...
7861 : !> \param kac ...
7862 : !> \param pbd ...
7863 : !> \param pbc ...
7864 : !> \param pad ...
7865 : !> \param pac ...
7866 : !> \param prim ...
7867 : !> \param scale ...
7868 : ! **************************************************************************************************
7869 3 : SUBROUTINE block_1_2_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7870 : INTEGER :: md_max
7871 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*9), kad(1*md_max), kac(1*9), pbd(2*md_max), pbc(2*9), &
7872 : pad(1*md_max), pac(1*9), prim(1*2*9*md_max), scale
7873 :
7874 : INTEGER :: ma, mb, mc, md, p_index
7875 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7876 :
7877 47 : kbd(1:2*md_max) = 0.0_dp
7878 3 : kbc(1:2*9) = 0.0_dp
7879 25 : kad(1:1*md_max) = 0.0_dp
7880 3 : kac(1:1*9) = 0.0_dp
7881 3 : p_index = 0
7882 25 : DO md = 1, md_max
7883 223 : DO mc = 1, 9
7884 616 : DO mb = 1, 2
7885 396 : ks_bd = 0.0_dp
7886 396 : ks_bc = 0.0_dp
7887 396 : p_bd = pbd((md - 1)*2 + mb)
7888 396 : p_bc = pbc((mc - 1)*2 + mb)
7889 792 : DO ma = 1, 1
7890 396 : p_index = p_index + 1
7891 396 : tmp = scale*prim(p_index)
7892 396 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7893 396 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7894 396 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7895 792 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7896 : END DO
7897 396 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7898 594 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7899 : END DO
7900 : END DO
7901 : END DO
7902 3 : END SUBROUTINE block_1_2_9
7903 : ! **************************************************************************************************
7904 : !> \brief ...
7905 : !> \param mc_max ...
7906 : !> \param md_max ...
7907 : !> \param kbd ...
7908 : !> \param kbc ...
7909 : !> \param kad ...
7910 : !> \param kac ...
7911 : !> \param pbd ...
7912 : !> \param pbc ...
7913 : !> \param pad ...
7914 : !> \param pac ...
7915 : !> \param prim ...
7916 : !> \param scale ...
7917 : ! **************************************************************************************************
7918 21 : SUBROUTINE block_1_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7919 : INTEGER :: mc_max, md_max
7920 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(1*md_max), kac(1*mc_max), pbd(2*md_max), &
7921 : pbc(2*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*2*mc_max*md_max), scale
7922 :
7923 : INTEGER :: ma, mb, mc, md, p_index
7924 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7925 :
7926 339 : kbd(1:2*md_max) = 0.0_dp
7927 545 : kbc(1:2*mc_max) = 0.0_dp
7928 180 : kad(1:1*md_max) = 0.0_dp
7929 283 : kac(1:1*mc_max) = 0.0_dp
7930 : p_index = 0
7931 180 : DO md = 1, md_max
7932 2172 : DO mc = 1, mc_max
7933 6135 : DO mb = 1, 2
7934 3984 : ks_bd = 0.0_dp
7935 3984 : ks_bc = 0.0_dp
7936 3984 : p_bd = pbd((md - 1)*2 + mb)
7937 3984 : p_bc = pbc((mc - 1)*2 + mb)
7938 7968 : DO ma = 1, 1
7939 3984 : p_index = p_index + 1
7940 3984 : tmp = scale*prim(p_index)
7941 3984 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7942 3984 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7943 3984 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7944 7968 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7945 : END DO
7946 3984 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
7947 5976 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
7948 : END DO
7949 : END DO
7950 : END DO
7951 21 : END SUBROUTINE block_1_2
7952 : ! **************************************************************************************************
7953 : !> \brief ...
7954 : !> \param kbd ...
7955 : !> \param kbc ...
7956 : !> \param kad ...
7957 : !> \param kac ...
7958 : !> \param pbd ...
7959 : !> \param pbc ...
7960 : !> \param pad ...
7961 : !> \param pac ...
7962 : !> \param prim ...
7963 : !> \param scale ...
7964 : ! **************************************************************************************************
7965 1862854 : SUBROUTINE block_1_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
7966 : REAL(KIND=dp) :: kbd(3*1), kbc(3*1), kad(1*1), kac(1*1), &
7967 : pbd(3*1), pbc(3*1), pad(1*1), &
7968 : pac(1*1), prim(1*3*1*1), scale
7969 :
7970 : INTEGER :: ma, mb, mc, md, p_index
7971 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
7972 :
7973 1862854 : kbd(1:3*1) = 0.0_dp
7974 1862854 : kbc(1:3*1) = 0.0_dp
7975 1862854 : kad(1:1*1) = 0.0_dp
7976 1862854 : kac(1:1*1) = 0.0_dp
7977 1862854 : p_index = 0
7978 3725708 : DO md = 1, 1
7979 5588562 : DO mc = 1, 1
7980 9314270 : DO mb = 1, 3
7981 5588562 : ks_bd = 0.0_dp
7982 5588562 : ks_bc = 0.0_dp
7983 5588562 : p_bd = pbd((md - 1)*3 + mb)
7984 5588562 : p_bc = pbc((mc - 1)*3 + mb)
7985 11177124 : DO ma = 1, 1
7986 5588562 : p_index = p_index + 1
7987 5588562 : tmp = scale*prim(p_index)
7988 5588562 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
7989 5588562 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
7990 5588562 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
7991 11177124 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
7992 : END DO
7993 5588562 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
7994 7451416 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
7995 : END DO
7996 : END DO
7997 : END DO
7998 1862854 : END SUBROUTINE block_1_3_1_1
7999 : ! **************************************************************************************************
8000 : !> \brief ...
8001 : !> \param kbd ...
8002 : !> \param kbc ...
8003 : !> \param kad ...
8004 : !> \param kac ...
8005 : !> \param pbd ...
8006 : !> \param pbc ...
8007 : !> \param pad ...
8008 : !> \param pac ...
8009 : !> \param prim ...
8010 : !> \param scale ...
8011 : ! **************************************************************************************************
8012 8131 : SUBROUTINE block_1_3_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8013 : REAL(KIND=dp) :: kbd(3*2), kbc(3*1), kad(1*2), kac(1*1), &
8014 : pbd(3*2), pbc(3*1), pad(1*2), &
8015 : pac(1*1), prim(1*3*1*2), scale
8016 :
8017 : INTEGER :: ma, mb, mc, md, p_index
8018 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8019 :
8020 8131 : kbd(1:3*2) = 0.0_dp
8021 8131 : kbc(1:3*1) = 0.0_dp
8022 8131 : kad(1:1*2) = 0.0_dp
8023 8131 : kac(1:1*1) = 0.0_dp
8024 8131 : p_index = 0
8025 24393 : DO md = 1, 2
8026 40655 : DO mc = 1, 1
8027 81310 : DO mb = 1, 3
8028 48786 : ks_bd = 0.0_dp
8029 48786 : ks_bc = 0.0_dp
8030 48786 : p_bd = pbd((md - 1)*3 + mb)
8031 48786 : p_bc = pbc((mc - 1)*3 + mb)
8032 97572 : DO ma = 1, 1
8033 48786 : p_index = p_index + 1
8034 48786 : tmp = scale*prim(p_index)
8035 48786 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8036 48786 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8037 48786 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8038 97572 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8039 : END DO
8040 48786 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8041 65048 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8042 : END DO
8043 : END DO
8044 : END DO
8045 8131 : END SUBROUTINE block_1_3_1_2
8046 : ! **************************************************************************************************
8047 : !> \brief ...
8048 : !> \param kbd ...
8049 : !> \param kbc ...
8050 : !> \param kad ...
8051 : !> \param kac ...
8052 : !> \param pbd ...
8053 : !> \param pbc ...
8054 : !> \param pad ...
8055 : !> \param pac ...
8056 : !> \param prim ...
8057 : !> \param scale ...
8058 : ! **************************************************************************************************
8059 1547094 : SUBROUTINE block_1_3_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8060 : REAL(KIND=dp) :: kbd(3*3), kbc(3*1), kad(1*3), kac(1*1), &
8061 : pbd(3*3), pbc(3*1), pad(1*3), &
8062 : pac(1*1), prim(1*3*1*3), scale
8063 :
8064 : INTEGER :: ma, mb, mc, md, p_index
8065 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8066 :
8067 1547094 : kbd(1:3*3) = 0.0_dp
8068 1547094 : kbc(1:3*1) = 0.0_dp
8069 1547094 : kad(1:1*3) = 0.0_dp
8070 1547094 : kac(1:1*1) = 0.0_dp
8071 1547094 : p_index = 0
8072 6188376 : DO md = 1, 3
8073 10829658 : DO mc = 1, 1
8074 23206410 : DO mb = 1, 3
8075 13923846 : ks_bd = 0.0_dp
8076 13923846 : ks_bc = 0.0_dp
8077 13923846 : p_bd = pbd((md - 1)*3 + mb)
8078 13923846 : p_bc = pbc((mc - 1)*3 + mb)
8079 27847692 : DO ma = 1, 1
8080 13923846 : p_index = p_index + 1
8081 13923846 : tmp = scale*prim(p_index)
8082 13923846 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8083 13923846 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8084 13923846 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8085 27847692 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8086 : END DO
8087 13923846 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8088 18565128 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8089 : END DO
8090 : END DO
8091 : END DO
8092 1547094 : END SUBROUTINE block_1_3_1_3
8093 : ! **************************************************************************************************
8094 : !> \brief ...
8095 : !> \param kbd ...
8096 : !> \param kbc ...
8097 : !> \param kad ...
8098 : !> \param kac ...
8099 : !> \param pbd ...
8100 : !> \param pbc ...
8101 : !> \param pad ...
8102 : !> \param pac ...
8103 : !> \param prim ...
8104 : !> \param scale ...
8105 : ! **************************************************************************************************
8106 51641 : SUBROUTINE block_1_3_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8107 : REAL(KIND=dp) :: kbd(3*4), kbc(3*1), kad(1*4), kac(1*1), &
8108 : pbd(3*4), pbc(3*1), pad(1*4), &
8109 : pac(1*1), prim(1*3*1*4), scale
8110 :
8111 : INTEGER :: ma, mb, mc, md, p_index
8112 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8113 :
8114 51641 : kbd(1:3*4) = 0.0_dp
8115 51641 : kbc(1:3*1) = 0.0_dp
8116 51641 : kad(1:1*4) = 0.0_dp
8117 51641 : kac(1:1*1) = 0.0_dp
8118 51641 : p_index = 0
8119 258205 : DO md = 1, 4
8120 464769 : DO mc = 1, 1
8121 1032820 : DO mb = 1, 3
8122 619692 : ks_bd = 0.0_dp
8123 619692 : ks_bc = 0.0_dp
8124 619692 : p_bd = pbd((md - 1)*3 + mb)
8125 619692 : p_bc = pbc((mc - 1)*3 + mb)
8126 1239384 : DO ma = 1, 1
8127 619692 : p_index = p_index + 1
8128 619692 : tmp = scale*prim(p_index)
8129 619692 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8130 619692 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8131 619692 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8132 1239384 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8133 : END DO
8134 619692 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8135 826256 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8136 : END DO
8137 : END DO
8138 : END DO
8139 51641 : END SUBROUTINE block_1_3_1_4
8140 : ! **************************************************************************************************
8141 : !> \brief ...
8142 : !> \param kbd ...
8143 : !> \param kbc ...
8144 : !> \param kad ...
8145 : !> \param kac ...
8146 : !> \param pbd ...
8147 : !> \param pbc ...
8148 : !> \param pad ...
8149 : !> \param pac ...
8150 : !> \param prim ...
8151 : !> \param scale ...
8152 : ! **************************************************************************************************
8153 79521 : SUBROUTINE block_1_3_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8154 : REAL(KIND=dp) :: kbd(3*5), kbc(3*1), kad(1*5), kac(1*1), &
8155 : pbd(3*5), pbc(3*1), pad(1*5), &
8156 : pac(1*1), prim(1*3*1*5), scale
8157 :
8158 : INTEGER :: ma, mb, mc, md, p_index
8159 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8160 :
8161 79521 : kbd(1:3*5) = 0.0_dp
8162 79521 : kbc(1:3*1) = 0.0_dp
8163 79521 : kad(1:1*5) = 0.0_dp
8164 79521 : kac(1:1*1) = 0.0_dp
8165 79521 : p_index = 0
8166 477126 : DO md = 1, 5
8167 874731 : DO mc = 1, 1
8168 1988025 : DO mb = 1, 3
8169 1192815 : ks_bd = 0.0_dp
8170 1192815 : ks_bc = 0.0_dp
8171 1192815 : p_bd = pbd((md - 1)*3 + mb)
8172 1192815 : p_bc = pbc((mc - 1)*3 + mb)
8173 2385630 : DO ma = 1, 1
8174 1192815 : p_index = p_index + 1
8175 1192815 : tmp = scale*prim(p_index)
8176 1192815 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8177 1192815 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8178 1192815 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8179 2385630 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8180 : END DO
8181 1192815 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8182 1590420 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8183 : END DO
8184 : END DO
8185 : END DO
8186 79521 : END SUBROUTINE block_1_3_1_5
8187 : ! **************************************************************************************************
8188 : !> \brief ...
8189 : !> \param kbd ...
8190 : !> \param kbc ...
8191 : !> \param kad ...
8192 : !> \param kac ...
8193 : !> \param pbd ...
8194 : !> \param pbc ...
8195 : !> \param pad ...
8196 : !> \param pac ...
8197 : !> \param prim ...
8198 : !> \param scale ...
8199 : ! **************************************************************************************************
8200 4 : SUBROUTINE block_1_3_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8201 : REAL(KIND=dp) :: kbd(3*6), kbc(3*1), kad(1*6), kac(1*1), &
8202 : pbd(3*6), pbc(3*1), pad(1*6), &
8203 : pac(1*1), prim(1*3*1*6), scale
8204 :
8205 : INTEGER :: ma, mb, mc, md, p_index
8206 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8207 :
8208 4 : kbd(1:3*6) = 0.0_dp
8209 4 : kbc(1:3*1) = 0.0_dp
8210 4 : kad(1:1*6) = 0.0_dp
8211 4 : kac(1:1*1) = 0.0_dp
8212 4 : p_index = 0
8213 28 : DO md = 1, 6
8214 52 : DO mc = 1, 1
8215 120 : DO mb = 1, 3
8216 72 : ks_bd = 0.0_dp
8217 72 : ks_bc = 0.0_dp
8218 72 : p_bd = pbd((md - 1)*3 + mb)
8219 72 : p_bc = pbc((mc - 1)*3 + mb)
8220 144 : DO ma = 1, 1
8221 72 : p_index = p_index + 1
8222 72 : tmp = scale*prim(p_index)
8223 72 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8224 72 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8225 72 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8226 144 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8227 : END DO
8228 72 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8229 96 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8230 : END DO
8231 : END DO
8232 : END DO
8233 4 : END SUBROUTINE block_1_3_1_6
8234 : ! **************************************************************************************************
8235 : !> \brief ...
8236 : !> \param md_max ...
8237 : !> \param kbd ...
8238 : !> \param kbc ...
8239 : !> \param kad ...
8240 : !> \param kac ...
8241 : !> \param pbd ...
8242 : !> \param pbc ...
8243 : !> \param pad ...
8244 : !> \param pac ...
8245 : !> \param prim ...
8246 : !> \param scale ...
8247 : ! **************************************************************************************************
8248 11917 : SUBROUTINE block_1_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8249 : INTEGER :: md_max
8250 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*1), kad(1*md_max), kac(1*1), pbd(3*md_max), pbc(3*1), &
8251 : pad(1*md_max), pac(1*1), prim(1*3*1*md_max), scale
8252 :
8253 : INTEGER :: ma, mb, mc, md, p_index
8254 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8255 :
8256 262225 : kbd(1:3*md_max) = 0.0_dp
8257 11917 : kbc(1:3*1) = 0.0_dp
8258 95353 : kad(1:1*md_max) = 0.0_dp
8259 11917 : kac(1:1*1) = 0.0_dp
8260 11917 : p_index = 0
8261 95353 : DO md = 1, md_max
8262 178789 : DO mc = 1, 1
8263 417180 : DO mb = 1, 3
8264 250308 : ks_bd = 0.0_dp
8265 250308 : ks_bc = 0.0_dp
8266 250308 : p_bd = pbd((md - 1)*3 + mb)
8267 250308 : p_bc = pbc((mc - 1)*3 + mb)
8268 500616 : DO ma = 1, 1
8269 250308 : p_index = p_index + 1
8270 250308 : tmp = scale*prim(p_index)
8271 250308 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8272 250308 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8273 250308 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8274 500616 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8275 : END DO
8276 250308 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8277 333744 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8278 : END DO
8279 : END DO
8280 : END DO
8281 11917 : END SUBROUTINE block_1_3_1
8282 : ! **************************************************************************************************
8283 : !> \brief ...
8284 : !> \param kbd ...
8285 : !> \param kbc ...
8286 : !> \param kad ...
8287 : !> \param kac ...
8288 : !> \param pbd ...
8289 : !> \param pbc ...
8290 : !> \param pad ...
8291 : !> \param pac ...
8292 : !> \param prim ...
8293 : !> \param scale ...
8294 : ! **************************************************************************************************
8295 24830 : SUBROUTINE block_1_3_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8296 : REAL(KIND=dp) :: kbd(3*1), kbc(3*2), kad(1*1), kac(1*2), &
8297 : pbd(3*1), pbc(3*2), pad(1*1), &
8298 : pac(1*2), prim(1*3*2*1), scale
8299 :
8300 : INTEGER :: ma, mb, mc, md, p_index
8301 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8302 :
8303 24830 : kbd(1:3*1) = 0.0_dp
8304 24830 : kbc(1:3*2) = 0.0_dp
8305 24830 : kad(1:1*1) = 0.0_dp
8306 24830 : kac(1:1*2) = 0.0_dp
8307 24830 : p_index = 0
8308 49660 : DO md = 1, 1
8309 99320 : DO mc = 1, 2
8310 223470 : DO mb = 1, 3
8311 148980 : ks_bd = 0.0_dp
8312 148980 : ks_bc = 0.0_dp
8313 148980 : p_bd = pbd((md - 1)*3 + mb)
8314 148980 : p_bc = pbc((mc - 1)*3 + mb)
8315 297960 : DO ma = 1, 1
8316 148980 : p_index = p_index + 1
8317 148980 : tmp = scale*prim(p_index)
8318 148980 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8319 148980 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8320 148980 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8321 297960 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8322 : END DO
8323 148980 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8324 198640 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8325 : END DO
8326 : END DO
8327 : END DO
8328 24830 : END SUBROUTINE block_1_3_2_1
8329 : ! **************************************************************************************************
8330 : !> \brief ...
8331 : !> \param kbd ...
8332 : !> \param kbc ...
8333 : !> \param kad ...
8334 : !> \param kac ...
8335 : !> \param pbd ...
8336 : !> \param pbc ...
8337 : !> \param pad ...
8338 : !> \param pac ...
8339 : !> \param prim ...
8340 : !> \param scale ...
8341 : ! **************************************************************************************************
8342 3861 : SUBROUTINE block_1_3_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8343 : REAL(KIND=dp) :: kbd(3*2), kbc(3*2), kad(1*2), kac(1*2), &
8344 : pbd(3*2), pbc(3*2), pad(1*2), &
8345 : pac(1*2), prim(1*3*2*2), scale
8346 :
8347 : INTEGER :: ma, mb, mc, md, p_index
8348 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8349 :
8350 3861 : kbd(1:3*2) = 0.0_dp
8351 3861 : kbc(1:3*2) = 0.0_dp
8352 3861 : kad(1:1*2) = 0.0_dp
8353 3861 : kac(1:1*2) = 0.0_dp
8354 3861 : p_index = 0
8355 11583 : DO md = 1, 2
8356 27027 : DO mc = 1, 2
8357 69498 : DO mb = 1, 3
8358 46332 : ks_bd = 0.0_dp
8359 46332 : ks_bc = 0.0_dp
8360 46332 : p_bd = pbd((md - 1)*3 + mb)
8361 46332 : p_bc = pbc((mc - 1)*3 + mb)
8362 92664 : DO ma = 1, 1
8363 46332 : p_index = p_index + 1
8364 46332 : tmp = scale*prim(p_index)
8365 46332 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8366 46332 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8367 46332 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8368 92664 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8369 : END DO
8370 46332 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8371 61776 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8372 : END DO
8373 : END DO
8374 : END DO
8375 3861 : END SUBROUTINE block_1_3_2_2
8376 : ! **************************************************************************************************
8377 : !> \brief ...
8378 : !> \param kbd ...
8379 : !> \param kbc ...
8380 : !> \param kad ...
8381 : !> \param kac ...
8382 : !> \param pbd ...
8383 : !> \param pbc ...
8384 : !> \param pad ...
8385 : !> \param pac ...
8386 : !> \param prim ...
8387 : !> \param scale ...
8388 : ! **************************************************************************************************
8389 23255 : SUBROUTINE block_1_3_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8390 : REAL(KIND=dp) :: kbd(3*3), kbc(3*2), kad(1*3), kac(1*2), &
8391 : pbd(3*3), pbc(3*2), pad(1*3), &
8392 : pac(1*2), prim(1*3*2*3), scale
8393 :
8394 : INTEGER :: ma, mb, mc, md, p_index
8395 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8396 :
8397 23255 : kbd(1:3*3) = 0.0_dp
8398 23255 : kbc(1:3*2) = 0.0_dp
8399 23255 : kad(1:1*3) = 0.0_dp
8400 23255 : kac(1:1*2) = 0.0_dp
8401 23255 : p_index = 0
8402 93020 : DO md = 1, 3
8403 232550 : DO mc = 1, 2
8404 627885 : DO mb = 1, 3
8405 418590 : ks_bd = 0.0_dp
8406 418590 : ks_bc = 0.0_dp
8407 418590 : p_bd = pbd((md - 1)*3 + mb)
8408 418590 : p_bc = pbc((mc - 1)*3 + mb)
8409 837180 : DO ma = 1, 1
8410 418590 : p_index = p_index + 1
8411 418590 : tmp = scale*prim(p_index)
8412 418590 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8413 418590 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8414 418590 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8415 837180 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8416 : END DO
8417 418590 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8418 558120 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8419 : END DO
8420 : END DO
8421 : END DO
8422 23255 : END SUBROUTINE block_1_3_2_3
8423 : ! **************************************************************************************************
8424 : !> \brief ...
8425 : !> \param md_max ...
8426 : !> \param kbd ...
8427 : !> \param kbc ...
8428 : !> \param kad ...
8429 : !> \param kac ...
8430 : !> \param pbd ...
8431 : !> \param pbc ...
8432 : !> \param pad ...
8433 : !> \param pac ...
8434 : !> \param prim ...
8435 : !> \param scale ...
8436 : ! **************************************************************************************************
8437 9085 : SUBROUTINE block_1_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8438 : INTEGER :: md_max
8439 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*2), kad(1*md_max), kac(1*2), pbd(3*md_max), pbc(3*2), &
8440 : pad(1*md_max), pac(1*2), prim(1*3*2*md_max), scale
8441 :
8442 : INTEGER :: ma, mb, mc, md, p_index
8443 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8444 :
8445 151216 : kbd(1:3*md_max) = 0.0_dp
8446 9085 : kbc(1:3*2) = 0.0_dp
8447 56462 : kad(1:1*md_max) = 0.0_dp
8448 9085 : kac(1:1*2) = 0.0_dp
8449 9085 : p_index = 0
8450 56462 : DO md = 1, md_max
8451 151216 : DO mc = 1, 2
8452 426393 : DO mb = 1, 3
8453 284262 : ks_bd = 0.0_dp
8454 284262 : ks_bc = 0.0_dp
8455 284262 : p_bd = pbd((md - 1)*3 + mb)
8456 284262 : p_bc = pbc((mc - 1)*3 + mb)
8457 568524 : DO ma = 1, 1
8458 284262 : p_index = p_index + 1
8459 284262 : tmp = scale*prim(p_index)
8460 284262 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8461 284262 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8462 284262 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8463 568524 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8464 : END DO
8465 284262 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8466 379016 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8467 : END DO
8468 : END DO
8469 : END DO
8470 9085 : END SUBROUTINE block_1_3_2
8471 : ! **************************************************************************************************
8472 : !> \brief ...
8473 : !> \param kbd ...
8474 : !> \param kbc ...
8475 : !> \param kad ...
8476 : !> \param kac ...
8477 : !> \param pbd ...
8478 : !> \param pbc ...
8479 : !> \param pad ...
8480 : !> \param pac ...
8481 : !> \param prim ...
8482 : !> \param scale ...
8483 : ! **************************************************************************************************
8484 1601478 : SUBROUTINE block_1_3_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8485 : REAL(KIND=dp) :: kbd(3*1), kbc(3*3), kad(1*1), kac(1*3), &
8486 : pbd(3*1), pbc(3*3), pad(1*1), &
8487 : pac(1*3), prim(1*3*3*1), scale
8488 :
8489 : INTEGER :: ma, mb, mc, md, p_index
8490 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8491 :
8492 1601478 : kbd(1:3*1) = 0.0_dp
8493 1601478 : kbc(1:3*3) = 0.0_dp
8494 1601478 : kad(1:1*1) = 0.0_dp
8495 1601478 : kac(1:1*3) = 0.0_dp
8496 1601478 : p_index = 0
8497 3202956 : DO md = 1, 1
8498 8007390 : DO mc = 1, 3
8499 20819214 : DO mb = 1, 3
8500 14413302 : ks_bd = 0.0_dp
8501 14413302 : ks_bc = 0.0_dp
8502 14413302 : p_bd = pbd((md - 1)*3 + mb)
8503 14413302 : p_bc = pbc((mc - 1)*3 + mb)
8504 28826604 : DO ma = 1, 1
8505 14413302 : p_index = p_index + 1
8506 14413302 : tmp = scale*prim(p_index)
8507 14413302 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8508 14413302 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8509 14413302 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8510 28826604 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8511 : END DO
8512 14413302 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8513 19217736 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8514 : END DO
8515 : END DO
8516 : END DO
8517 1601478 : END SUBROUTINE block_1_3_3_1
8518 : ! **************************************************************************************************
8519 : !> \brief ...
8520 : !> \param kbd ...
8521 : !> \param kbc ...
8522 : !> \param kad ...
8523 : !> \param kac ...
8524 : !> \param pbd ...
8525 : !> \param pbc ...
8526 : !> \param pad ...
8527 : !> \param pac ...
8528 : !> \param prim ...
8529 : !> \param scale ...
8530 : ! **************************************************************************************************
8531 12117 : SUBROUTINE block_1_3_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8532 : REAL(KIND=dp) :: kbd(3*2), kbc(3*3), kad(1*2), kac(1*3), &
8533 : pbd(3*2), pbc(3*3), pad(1*2), &
8534 : pac(1*3), prim(1*3*3*2), scale
8535 :
8536 : INTEGER :: ma, mb, mc, md, p_index
8537 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8538 :
8539 12117 : kbd(1:3*2) = 0.0_dp
8540 12117 : kbc(1:3*3) = 0.0_dp
8541 12117 : kad(1:1*2) = 0.0_dp
8542 12117 : kac(1:1*3) = 0.0_dp
8543 12117 : p_index = 0
8544 36351 : DO md = 1, 2
8545 109053 : DO mc = 1, 3
8546 315042 : DO mb = 1, 3
8547 218106 : ks_bd = 0.0_dp
8548 218106 : ks_bc = 0.0_dp
8549 218106 : p_bd = pbd((md - 1)*3 + mb)
8550 218106 : p_bc = pbc((mc - 1)*3 + mb)
8551 436212 : DO ma = 1, 1
8552 218106 : p_index = p_index + 1
8553 218106 : tmp = scale*prim(p_index)
8554 218106 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8555 218106 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8556 218106 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8557 436212 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8558 : END DO
8559 218106 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8560 290808 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8561 : END DO
8562 : END DO
8563 : END DO
8564 12117 : END SUBROUTINE block_1_3_3_2
8565 : ! **************************************************************************************************
8566 : !> \brief ...
8567 : !> \param md_max ...
8568 : !> \param kbd ...
8569 : !> \param kbc ...
8570 : !> \param kad ...
8571 : !> \param kac ...
8572 : !> \param pbd ...
8573 : !> \param pbc ...
8574 : !> \param pad ...
8575 : !> \param pac ...
8576 : !> \param prim ...
8577 : !> \param scale ...
8578 : ! **************************************************************************************************
8579 1519002 : SUBROUTINE block_1_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8580 : INTEGER :: md_max
8581 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*3), kad(1*md_max), kac(1*3), pbd(3*md_max), pbc(3*3), &
8582 : pad(1*md_max), pac(1*3), prim(1*3*3*md_max), scale
8583 :
8584 : INTEGER :: ma, mb, mc, md, p_index
8585 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8586 :
8587 15779124 : kbd(1:3*md_max) = 0.0_dp
8588 1519002 : kbc(1:3*3) = 0.0_dp
8589 6272376 : kad(1:1*md_max) = 0.0_dp
8590 1519002 : kac(1:1*3) = 0.0_dp
8591 1519002 : p_index = 0
8592 6272376 : DO md = 1, md_max
8593 20532498 : DO mc = 1, 3
8594 61793862 : DO mb = 1, 3
8595 42780366 : ks_bd = 0.0_dp
8596 42780366 : ks_bc = 0.0_dp
8597 42780366 : p_bd = pbd((md - 1)*3 + mb)
8598 42780366 : p_bc = pbc((mc - 1)*3 + mb)
8599 85560732 : DO ma = 1, 1
8600 42780366 : p_index = p_index + 1
8601 42780366 : tmp = scale*prim(p_index)
8602 42780366 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8603 42780366 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8604 42780366 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8605 85560732 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8606 : END DO
8607 42780366 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8608 57040488 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8609 : END DO
8610 : END DO
8611 : END DO
8612 1519002 : END SUBROUTINE block_1_3_3
8613 : ! **************************************************************************************************
8614 : !> \brief ...
8615 : !> \param kbd ...
8616 : !> \param kbc ...
8617 : !> \param kad ...
8618 : !> \param kac ...
8619 : !> \param pbd ...
8620 : !> \param pbc ...
8621 : !> \param pad ...
8622 : !> \param pac ...
8623 : !> \param prim ...
8624 : !> \param scale ...
8625 : ! **************************************************************************************************
8626 239925 : SUBROUTINE block_1_3_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8627 : REAL(KIND=dp) :: kbd(3*1), kbc(3*4), kad(1*1), kac(1*4), &
8628 : pbd(3*1), pbc(3*4), pad(1*1), &
8629 : pac(1*4), prim(1*3*4*1), scale
8630 :
8631 : INTEGER :: ma, mb, mc, md, p_index
8632 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8633 :
8634 239925 : kbd(1:3*1) = 0.0_dp
8635 239925 : kbc(1:3*4) = 0.0_dp
8636 239925 : kad(1:1*1) = 0.0_dp
8637 239925 : kac(1:1*4) = 0.0_dp
8638 239925 : p_index = 0
8639 479850 : DO md = 1, 1
8640 1439550 : DO mc = 1, 4
8641 4078725 : DO mb = 1, 3
8642 2879100 : ks_bd = 0.0_dp
8643 2879100 : ks_bc = 0.0_dp
8644 2879100 : p_bd = pbd((md - 1)*3 + mb)
8645 2879100 : p_bc = pbc((mc - 1)*3 + mb)
8646 5758200 : DO ma = 1, 1
8647 2879100 : p_index = p_index + 1
8648 2879100 : tmp = scale*prim(p_index)
8649 2879100 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8650 2879100 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8651 2879100 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8652 5758200 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8653 : END DO
8654 2879100 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8655 3838800 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8656 : END DO
8657 : END DO
8658 : END DO
8659 239925 : END SUBROUTINE block_1_3_4_1
8660 : ! **************************************************************************************************
8661 : !> \brief ...
8662 : !> \param md_max ...
8663 : !> \param kbd ...
8664 : !> \param kbc ...
8665 : !> \param kad ...
8666 : !> \param kac ...
8667 : !> \param pbd ...
8668 : !> \param pbc ...
8669 : !> \param pad ...
8670 : !> \param pac ...
8671 : !> \param prim ...
8672 : !> \param scale ...
8673 : ! **************************************************************************************************
8674 282031 : SUBROUTINE block_1_3_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8675 : INTEGER :: md_max
8676 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*4), kad(1*md_max), kac(1*4), pbd(3*md_max), pbc(3*4), &
8677 : pad(1*md_max), pac(1*4), prim(1*3*4*md_max), scale
8678 :
8679 : INTEGER :: ma, mb, mc, md, p_index
8680 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8681 :
8682 3515746 : kbd(1:3*md_max) = 0.0_dp
8683 282031 : kbc(1:3*4) = 0.0_dp
8684 1359936 : kad(1:1*md_max) = 0.0_dp
8685 282031 : kac(1:1*4) = 0.0_dp
8686 282031 : p_index = 0
8687 1359936 : DO md = 1, md_max
8688 5671556 : DO mc = 1, 4
8689 18324385 : DO mb = 1, 3
8690 12934860 : ks_bd = 0.0_dp
8691 12934860 : ks_bc = 0.0_dp
8692 12934860 : p_bd = pbd((md - 1)*3 + mb)
8693 12934860 : p_bc = pbc((mc - 1)*3 + mb)
8694 25869720 : DO ma = 1, 1
8695 12934860 : p_index = p_index + 1
8696 12934860 : tmp = scale*prim(p_index)
8697 12934860 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8698 12934860 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8699 12934860 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8700 25869720 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8701 : END DO
8702 12934860 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8703 17246480 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8704 : END DO
8705 : END DO
8706 : END DO
8707 282031 : END SUBROUTINE block_1_3_4
8708 : ! **************************************************************************************************
8709 : !> \brief ...
8710 : !> \param kbd ...
8711 : !> \param kbc ...
8712 : !> \param kad ...
8713 : !> \param kac ...
8714 : !> \param pbd ...
8715 : !> \param pbc ...
8716 : !> \param pad ...
8717 : !> \param pac ...
8718 : !> \param prim ...
8719 : !> \param scale ...
8720 : ! **************************************************************************************************
8721 234879 : SUBROUTINE block_1_3_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8722 : REAL(KIND=dp) :: kbd(3*1), kbc(3*5), kad(1*1), kac(1*5), &
8723 : pbd(3*1), pbc(3*5), pad(1*1), &
8724 : pac(1*5), prim(1*3*5*1), scale
8725 :
8726 : INTEGER :: ma, mb, mc, md, p_index
8727 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8728 :
8729 234879 : kbd(1:3*1) = 0.0_dp
8730 234879 : kbc(1:3*5) = 0.0_dp
8731 234879 : kad(1:1*1) = 0.0_dp
8732 234879 : kac(1:1*5) = 0.0_dp
8733 234879 : p_index = 0
8734 469758 : DO md = 1, 1
8735 1644153 : DO mc = 1, 5
8736 4932459 : DO mb = 1, 3
8737 3523185 : ks_bd = 0.0_dp
8738 3523185 : ks_bc = 0.0_dp
8739 3523185 : p_bd = pbd((md - 1)*3 + mb)
8740 3523185 : p_bc = pbc((mc - 1)*3 + mb)
8741 7046370 : DO ma = 1, 1
8742 3523185 : p_index = p_index + 1
8743 3523185 : tmp = scale*prim(p_index)
8744 3523185 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8745 3523185 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8746 3523185 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8747 7046370 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8748 : END DO
8749 3523185 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8750 4697580 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8751 : END DO
8752 : END DO
8753 : END DO
8754 234879 : END SUBROUTINE block_1_3_5_1
8755 : ! **************************************************************************************************
8756 : !> \brief ...
8757 : !> \param md_max ...
8758 : !> \param kbd ...
8759 : !> \param kbc ...
8760 : !> \param kad ...
8761 : !> \param kac ...
8762 : !> \param pbd ...
8763 : !> \param pbc ...
8764 : !> \param pad ...
8765 : !> \param pac ...
8766 : !> \param prim ...
8767 : !> \param scale ...
8768 : ! **************************************************************************************************
8769 275858 : SUBROUTINE block_1_3_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8770 : INTEGER :: md_max
8771 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*5), kad(1*md_max), kac(1*5), pbd(3*md_max), pbc(3*5), &
8772 : pad(1*md_max), pac(1*5), prim(1*3*5*md_max), scale
8773 :
8774 : INTEGER :: ma, mb, mc, md, p_index
8775 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8776 :
8777 3344354 : kbd(1:3*md_max) = 0.0_dp
8778 275858 : kbc(1:3*5) = 0.0_dp
8779 1298690 : kad(1:1*md_max) = 0.0_dp
8780 275858 : kac(1:1*5) = 0.0_dp
8781 275858 : p_index = 0
8782 1298690 : DO md = 1, md_max
8783 6412850 : DO mc = 1, 5
8784 21479472 : DO mb = 1, 3
8785 15342480 : ks_bd = 0.0_dp
8786 15342480 : ks_bc = 0.0_dp
8787 15342480 : p_bd = pbd((md - 1)*3 + mb)
8788 15342480 : p_bc = pbc((mc - 1)*3 + mb)
8789 30684960 : DO ma = 1, 1
8790 15342480 : p_index = p_index + 1
8791 15342480 : tmp = scale*prim(p_index)
8792 15342480 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8793 15342480 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8794 15342480 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8795 30684960 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8796 : END DO
8797 15342480 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8798 20456640 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8799 : END DO
8800 : END DO
8801 : END DO
8802 275858 : END SUBROUTINE block_1_3_5
8803 : ! **************************************************************************************************
8804 : !> \brief ...
8805 : !> \param kbd ...
8806 : !> \param kbc ...
8807 : !> \param kad ...
8808 : !> \param kac ...
8809 : !> \param pbd ...
8810 : !> \param pbc ...
8811 : !> \param pad ...
8812 : !> \param pac ...
8813 : !> \param prim ...
8814 : !> \param scale ...
8815 : ! **************************************************************************************************
8816 1 : SUBROUTINE block_1_3_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8817 : REAL(KIND=dp) :: kbd(3*1), kbc(3*6), kad(1*1), kac(1*6), &
8818 : pbd(3*1), pbc(3*6), pad(1*1), &
8819 : pac(1*6), prim(1*3*6*1), scale
8820 :
8821 : INTEGER :: ma, mb, mc, md, p_index
8822 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8823 :
8824 1 : kbd(1:3*1) = 0.0_dp
8825 1 : kbc(1:3*6) = 0.0_dp
8826 1 : kad(1:1*1) = 0.0_dp
8827 1 : kac(1:1*6) = 0.0_dp
8828 1 : p_index = 0
8829 2 : DO md = 1, 1
8830 8 : DO mc = 1, 6
8831 25 : DO mb = 1, 3
8832 18 : ks_bd = 0.0_dp
8833 18 : ks_bc = 0.0_dp
8834 18 : p_bd = pbd((md - 1)*3 + mb)
8835 18 : p_bc = pbc((mc - 1)*3 + mb)
8836 36 : DO ma = 1, 1
8837 18 : p_index = p_index + 1
8838 18 : tmp = scale*prim(p_index)
8839 18 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8840 18 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8841 18 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8842 36 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8843 : END DO
8844 18 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8845 24 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8846 : END DO
8847 : END DO
8848 : END DO
8849 1 : END SUBROUTINE block_1_3_6_1
8850 : ! **************************************************************************************************
8851 : !> \brief ...
8852 : !> \param md_max ...
8853 : !> \param kbd ...
8854 : !> \param kbc ...
8855 : !> \param kad ...
8856 : !> \param kac ...
8857 : !> \param pbd ...
8858 : !> \param pbc ...
8859 : !> \param pad ...
8860 : !> \param pac ...
8861 : !> \param prim ...
8862 : !> \param scale ...
8863 : ! **************************************************************************************************
8864 3 : SUBROUTINE block_1_3_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8865 : INTEGER :: md_max
8866 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*6), kad(1*md_max), kac(1*6), pbd(3*md_max), pbc(3*6), &
8867 : pad(1*md_max), pac(1*6), prim(1*3*6*md_max), scale
8868 :
8869 : INTEGER :: ma, mb, mc, md, p_index
8870 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8871 :
8872 36 : kbd(1:3*md_max) = 0.0_dp
8873 3 : kbc(1:3*6) = 0.0_dp
8874 14 : kad(1:1*md_max) = 0.0_dp
8875 3 : kac(1:1*6) = 0.0_dp
8876 3 : p_index = 0
8877 14 : DO md = 1, md_max
8878 80 : DO mc = 1, 6
8879 275 : DO mb = 1, 3
8880 198 : ks_bd = 0.0_dp
8881 198 : ks_bc = 0.0_dp
8882 198 : p_bd = pbd((md - 1)*3 + mb)
8883 198 : p_bc = pbc((mc - 1)*3 + mb)
8884 396 : DO ma = 1, 1
8885 198 : p_index = p_index + 1
8886 198 : tmp = scale*prim(p_index)
8887 198 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8888 198 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8889 198 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8890 396 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8891 : END DO
8892 198 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8893 264 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8894 : END DO
8895 : END DO
8896 : END DO
8897 3 : END SUBROUTINE block_1_3_6
8898 : ! **************************************************************************************************
8899 : !> \brief ...
8900 : !> \param mc_max ...
8901 : !> \param md_max ...
8902 : !> \param kbd ...
8903 : !> \param kbc ...
8904 : !> \param kad ...
8905 : !> \param kac ...
8906 : !> \param pbd ...
8907 : !> \param pbc ...
8908 : !> \param pad ...
8909 : !> \param pac ...
8910 : !> \param prim ...
8911 : !> \param scale ...
8912 : ! **************************************************************************************************
8913 50924 : SUBROUTINE block_1_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8914 : INTEGER :: mc_max, md_max
8915 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(1*md_max), kac(1*mc_max), pbd(3*md_max), &
8916 : pbc(3*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*3*mc_max*md_max), scale
8917 :
8918 : INTEGER :: ma, mb, mc, md, p_index
8919 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8920 :
8921 455057 : kbd(1:3*md_max) = 0.0_dp
8922 1120640 : kbc(1:3*mc_max) = 0.0_dp
8923 185635 : kad(1:1*md_max) = 0.0_dp
8924 407496 : kac(1:1*mc_max) = 0.0_dp
8925 : p_index = 0
8926 185635 : DO md = 1, md_max
8927 1129468 : DO mc = 1, mc_max
8928 3910043 : DO mb = 1, 3
8929 2831499 : ks_bd = 0.0_dp
8930 2831499 : ks_bc = 0.0_dp
8931 2831499 : p_bd = pbd((md - 1)*3 + mb)
8932 2831499 : p_bc = pbc((mc - 1)*3 + mb)
8933 5662998 : DO ma = 1, 1
8934 2831499 : p_index = p_index + 1
8935 2831499 : tmp = scale*prim(p_index)
8936 2831499 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8937 2831499 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8938 2831499 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8939 5662998 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8940 : END DO
8941 2831499 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
8942 3775332 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
8943 : END DO
8944 : END DO
8945 : END DO
8946 50924 : END SUBROUTINE block_1_3
8947 : ! **************************************************************************************************
8948 : !> \brief ...
8949 : !> \param kbd ...
8950 : !> \param kbc ...
8951 : !> \param kad ...
8952 : !> \param kac ...
8953 : !> \param pbd ...
8954 : !> \param pbc ...
8955 : !> \param pad ...
8956 : !> \param pac ...
8957 : !> \param prim ...
8958 : !> \param scale ...
8959 : ! **************************************************************************************************
8960 115956 : SUBROUTINE block_1_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
8961 : REAL(KIND=dp) :: kbd(4*1), kbc(4*1), kad(1*1), kac(1*1), &
8962 : pbd(4*1), pbc(4*1), pad(1*1), &
8963 : pac(1*1), prim(1*4*1*1), scale
8964 :
8965 : INTEGER :: ma, mb, mc, md, p_index
8966 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
8967 :
8968 115956 : kbd(1:4*1) = 0.0_dp
8969 115956 : kbc(1:4*1) = 0.0_dp
8970 115956 : kad(1:1*1) = 0.0_dp
8971 115956 : kac(1:1*1) = 0.0_dp
8972 115956 : p_index = 0
8973 231912 : DO md = 1, 1
8974 347868 : DO mc = 1, 1
8975 695736 : DO mb = 1, 4
8976 463824 : ks_bd = 0.0_dp
8977 463824 : ks_bc = 0.0_dp
8978 463824 : p_bd = pbd((md - 1)*4 + mb)
8979 463824 : p_bc = pbc((mc - 1)*4 + mb)
8980 927648 : DO ma = 1, 1
8981 463824 : p_index = p_index + 1
8982 463824 : tmp = scale*prim(p_index)
8983 463824 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
8984 463824 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
8985 463824 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
8986 927648 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
8987 : END DO
8988 463824 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
8989 579780 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
8990 : END DO
8991 : END DO
8992 : END DO
8993 115956 : END SUBROUTINE block_1_4_1_1
8994 : ! **************************************************************************************************
8995 : !> \brief ...
8996 : !> \param kbd ...
8997 : !> \param kbc ...
8998 : !> \param kad ...
8999 : !> \param kac ...
9000 : !> \param pbd ...
9001 : !> \param pbc ...
9002 : !> \param pad ...
9003 : !> \param pac ...
9004 : !> \param prim ...
9005 : !> \param scale ...
9006 : ! **************************************************************************************************
9007 8 : SUBROUTINE block_1_4_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9008 : REAL(KIND=dp) :: kbd(4*2), kbc(4*1), kad(1*2), kac(1*1), &
9009 : pbd(4*2), pbc(4*1), pad(1*2), &
9010 : pac(1*1), prim(1*4*1*2), scale
9011 :
9012 : INTEGER :: ma, mb, mc, md, p_index
9013 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9014 :
9015 8 : kbd(1:4*2) = 0.0_dp
9016 8 : kbc(1:4*1) = 0.0_dp
9017 8 : kad(1:1*2) = 0.0_dp
9018 8 : kac(1:1*1) = 0.0_dp
9019 8 : p_index = 0
9020 24 : DO md = 1, 2
9021 40 : DO mc = 1, 1
9022 96 : DO mb = 1, 4
9023 64 : ks_bd = 0.0_dp
9024 64 : ks_bc = 0.0_dp
9025 64 : p_bd = pbd((md - 1)*4 + mb)
9026 64 : p_bc = pbc((mc - 1)*4 + mb)
9027 128 : DO ma = 1, 1
9028 64 : p_index = p_index + 1
9029 64 : tmp = scale*prim(p_index)
9030 64 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9031 64 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9032 64 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9033 128 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9034 : END DO
9035 64 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9036 80 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9037 : END DO
9038 : END DO
9039 : END DO
9040 8 : END SUBROUTINE block_1_4_1_2
9041 : ! **************************************************************************************************
9042 : !> \brief ...
9043 : !> \param kbd ...
9044 : !> \param kbc ...
9045 : !> \param kad ...
9046 : !> \param kac ...
9047 : !> \param pbd ...
9048 : !> \param pbc ...
9049 : !> \param pad ...
9050 : !> \param pac ...
9051 : !> \param prim ...
9052 : !> \param scale ...
9053 : ! **************************************************************************************************
9054 31019 : SUBROUTINE block_1_4_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9055 : REAL(KIND=dp) :: kbd(4*3), kbc(4*1), kad(1*3), kac(1*1), &
9056 : pbd(4*3), pbc(4*1), pad(1*3), &
9057 : pac(1*1), prim(1*4*1*3), scale
9058 :
9059 : INTEGER :: ma, mb, mc, md, p_index
9060 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9061 :
9062 31019 : kbd(1:4*3) = 0.0_dp
9063 31019 : kbc(1:4*1) = 0.0_dp
9064 31019 : kad(1:1*3) = 0.0_dp
9065 31019 : kac(1:1*1) = 0.0_dp
9066 31019 : p_index = 0
9067 124076 : DO md = 1, 3
9068 217133 : DO mc = 1, 1
9069 558342 : DO mb = 1, 4
9070 372228 : ks_bd = 0.0_dp
9071 372228 : ks_bc = 0.0_dp
9072 372228 : p_bd = pbd((md - 1)*4 + mb)
9073 372228 : p_bc = pbc((mc - 1)*4 + mb)
9074 744456 : DO ma = 1, 1
9075 372228 : p_index = p_index + 1
9076 372228 : tmp = scale*prim(p_index)
9077 372228 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9078 372228 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9079 372228 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9080 744456 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9081 : END DO
9082 372228 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9083 465285 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9084 : END DO
9085 : END DO
9086 : END DO
9087 31019 : END SUBROUTINE block_1_4_1_3
9088 : ! **************************************************************************************************
9089 : !> \brief ...
9090 : !> \param kbd ...
9091 : !> \param kbc ...
9092 : !> \param kad ...
9093 : !> \param kac ...
9094 : !> \param pbd ...
9095 : !> \param pbc ...
9096 : !> \param pad ...
9097 : !> \param pac ...
9098 : !> \param prim ...
9099 : !> \param scale ...
9100 : ! **************************************************************************************************
9101 59643 : SUBROUTINE block_1_4_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9102 : REAL(KIND=dp) :: kbd(4*4), kbc(4*1), kad(1*4), kac(1*1), &
9103 : pbd(4*4), pbc(4*1), pad(1*4), &
9104 : pac(1*1), prim(1*4*1*4), scale
9105 :
9106 : INTEGER :: ma, mb, mc, md, p_index
9107 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9108 :
9109 59643 : kbd(1:4*4) = 0.0_dp
9110 59643 : kbc(1:4*1) = 0.0_dp
9111 59643 : kad(1:1*4) = 0.0_dp
9112 59643 : kac(1:1*1) = 0.0_dp
9113 59643 : p_index = 0
9114 298215 : DO md = 1, 4
9115 536787 : DO mc = 1, 1
9116 1431432 : DO mb = 1, 4
9117 954288 : ks_bd = 0.0_dp
9118 954288 : ks_bc = 0.0_dp
9119 954288 : p_bd = pbd((md - 1)*4 + mb)
9120 954288 : p_bc = pbc((mc - 1)*4 + mb)
9121 1908576 : DO ma = 1, 1
9122 954288 : p_index = p_index + 1
9123 954288 : tmp = scale*prim(p_index)
9124 954288 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9125 954288 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9126 954288 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9127 1908576 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9128 : END DO
9129 954288 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9130 1192860 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9131 : END DO
9132 : END DO
9133 : END DO
9134 59643 : END SUBROUTINE block_1_4_1_4
9135 : ! **************************************************************************************************
9136 : !> \brief ...
9137 : !> \param md_max ...
9138 : !> \param kbd ...
9139 : !> \param kbc ...
9140 : !> \param kad ...
9141 : !> \param kac ...
9142 : !> \param pbd ...
9143 : !> \param pbc ...
9144 : !> \param pad ...
9145 : !> \param pac ...
9146 : !> \param prim ...
9147 : !> \param scale ...
9148 : ! **************************************************************************************************
9149 17452 : SUBROUTINE block_1_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9150 : INTEGER :: md_max
9151 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*1), kad(1*md_max), kac(1*1), pbd(4*md_max), pbc(4*1), &
9152 : pad(1*md_max), pac(1*1), prim(1*4*1*md_max), scale
9153 :
9154 : INTEGER :: ma, mb, mc, md, p_index
9155 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9156 :
9157 367384 : kbd(1:4*md_max) = 0.0_dp
9158 17452 : kbc(1:4*1) = 0.0_dp
9159 104935 : kad(1:1*md_max) = 0.0_dp
9160 17452 : kac(1:1*1) = 0.0_dp
9161 17452 : p_index = 0
9162 104935 : DO md = 1, md_max
9163 192418 : DO mc = 1, 1
9164 524898 : DO mb = 1, 4
9165 349932 : ks_bd = 0.0_dp
9166 349932 : ks_bc = 0.0_dp
9167 349932 : p_bd = pbd((md - 1)*4 + mb)
9168 349932 : p_bc = pbc((mc - 1)*4 + mb)
9169 699864 : DO ma = 1, 1
9170 349932 : p_index = p_index + 1
9171 349932 : tmp = scale*prim(p_index)
9172 349932 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9173 349932 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9174 349932 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9175 699864 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9176 : END DO
9177 349932 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9178 437415 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9179 : END DO
9180 : END DO
9181 : END DO
9182 17452 : END SUBROUTINE block_1_4_1
9183 : ! **************************************************************************************************
9184 : !> \brief ...
9185 : !> \param kbd ...
9186 : !> \param kbc ...
9187 : !> \param kad ...
9188 : !> \param kac ...
9189 : !> \param pbd ...
9190 : !> \param pbc ...
9191 : !> \param pad ...
9192 : !> \param pac ...
9193 : !> \param prim ...
9194 : !> \param scale ...
9195 : ! **************************************************************************************************
9196 2 : SUBROUTINE block_1_4_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9197 : REAL(KIND=dp) :: kbd(4*1), kbc(4*2), kad(1*1), kac(1*2), &
9198 : pbd(4*1), pbc(4*2), pad(1*1), &
9199 : pac(1*2), prim(1*4*2*1), scale
9200 :
9201 : INTEGER :: ma, mb, mc, md, p_index
9202 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9203 :
9204 2 : kbd(1:4*1) = 0.0_dp
9205 2 : kbc(1:4*2) = 0.0_dp
9206 2 : kad(1:1*1) = 0.0_dp
9207 2 : kac(1:1*2) = 0.0_dp
9208 2 : p_index = 0
9209 4 : DO md = 1, 1
9210 8 : DO mc = 1, 2
9211 22 : DO mb = 1, 4
9212 16 : ks_bd = 0.0_dp
9213 16 : ks_bc = 0.0_dp
9214 16 : p_bd = pbd((md - 1)*4 + mb)
9215 16 : p_bc = pbc((mc - 1)*4 + mb)
9216 32 : DO ma = 1, 1
9217 16 : p_index = p_index + 1
9218 16 : tmp = scale*prim(p_index)
9219 16 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9220 16 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9221 16 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9222 32 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9223 : END DO
9224 16 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9225 20 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9226 : END DO
9227 : END DO
9228 : END DO
9229 2 : END SUBROUTINE block_1_4_2_1
9230 : ! **************************************************************************************************
9231 : !> \brief ...
9232 : !> \param kbd ...
9233 : !> \param kbc ...
9234 : !> \param kad ...
9235 : !> \param kac ...
9236 : !> \param pbd ...
9237 : !> \param pbc ...
9238 : !> \param pad ...
9239 : !> \param pac ...
9240 : !> \param prim ...
9241 : !> \param scale ...
9242 : ! **************************************************************************************************
9243 8 : SUBROUTINE block_1_4_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9244 : REAL(KIND=dp) :: kbd(4*2), kbc(4*2), kad(1*2), kac(1*2), &
9245 : pbd(4*2), pbc(4*2), pad(1*2), &
9246 : pac(1*2), prim(1*4*2*2), scale
9247 :
9248 : INTEGER :: ma, mb, mc, md, p_index
9249 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9250 :
9251 8 : kbd(1:4*2) = 0.0_dp
9252 8 : kbc(1:4*2) = 0.0_dp
9253 8 : kad(1:1*2) = 0.0_dp
9254 8 : kac(1:1*2) = 0.0_dp
9255 8 : p_index = 0
9256 24 : DO md = 1, 2
9257 56 : DO mc = 1, 2
9258 176 : DO mb = 1, 4
9259 128 : ks_bd = 0.0_dp
9260 128 : ks_bc = 0.0_dp
9261 128 : p_bd = pbd((md - 1)*4 + mb)
9262 128 : p_bc = pbc((mc - 1)*4 + mb)
9263 256 : DO ma = 1, 1
9264 128 : p_index = p_index + 1
9265 128 : tmp = scale*prim(p_index)
9266 128 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9267 128 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9268 128 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9269 256 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9270 : END DO
9271 128 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9272 160 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9273 : END DO
9274 : END DO
9275 : END DO
9276 8 : END SUBROUTINE block_1_4_2_2
9277 : ! **************************************************************************************************
9278 : !> \brief ...
9279 : !> \param md_max ...
9280 : !> \param kbd ...
9281 : !> \param kbc ...
9282 : !> \param kad ...
9283 : !> \param kac ...
9284 : !> \param pbd ...
9285 : !> \param pbc ...
9286 : !> \param pad ...
9287 : !> \param pac ...
9288 : !> \param prim ...
9289 : !> \param scale ...
9290 : ! **************************************************************************************************
9291 16 : SUBROUTINE block_1_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9292 : INTEGER :: md_max
9293 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*2), kad(1*md_max), kac(1*2), pbd(4*md_max), pbc(4*2), &
9294 : pad(1*md_max), pac(1*2), prim(1*4*2*md_max), scale
9295 :
9296 : INTEGER :: ma, mb, mc, md, p_index
9297 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9298 :
9299 280 : kbd(1:4*md_max) = 0.0_dp
9300 16 : kbc(1:4*2) = 0.0_dp
9301 82 : kad(1:1*md_max) = 0.0_dp
9302 16 : kac(1:1*2) = 0.0_dp
9303 16 : p_index = 0
9304 82 : DO md = 1, md_max
9305 214 : DO mc = 1, 2
9306 726 : DO mb = 1, 4
9307 528 : ks_bd = 0.0_dp
9308 528 : ks_bc = 0.0_dp
9309 528 : p_bd = pbd((md - 1)*4 + mb)
9310 528 : p_bc = pbc((mc - 1)*4 + mb)
9311 1056 : DO ma = 1, 1
9312 528 : p_index = p_index + 1
9313 528 : tmp = scale*prim(p_index)
9314 528 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9315 528 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9316 528 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9317 1056 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9318 : END DO
9319 528 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9320 660 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9321 : END DO
9322 : END DO
9323 : END DO
9324 16 : END SUBROUTINE block_1_4_2
9325 : ! **************************************************************************************************
9326 : !> \brief ...
9327 : !> \param kbd ...
9328 : !> \param kbc ...
9329 : !> \param kad ...
9330 : !> \param kac ...
9331 : !> \param pbd ...
9332 : !> \param pbc ...
9333 : !> \param pad ...
9334 : !> \param pac ...
9335 : !> \param prim ...
9336 : !> \param scale ...
9337 : ! **************************************************************************************************
9338 27218 : SUBROUTINE block_1_4_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9339 : REAL(KIND=dp) :: kbd(4*1), kbc(4*3), kad(1*1), kac(1*3), &
9340 : pbd(4*1), pbc(4*3), pad(1*1), &
9341 : pac(1*3), prim(1*4*3*1), scale
9342 :
9343 : INTEGER :: ma, mb, mc, md, p_index
9344 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9345 :
9346 27218 : kbd(1:4*1) = 0.0_dp
9347 27218 : kbc(1:4*3) = 0.0_dp
9348 27218 : kad(1:1*1) = 0.0_dp
9349 27218 : kac(1:1*3) = 0.0_dp
9350 27218 : p_index = 0
9351 54436 : DO md = 1, 1
9352 136090 : DO mc = 1, 3
9353 435488 : DO mb = 1, 4
9354 326616 : ks_bd = 0.0_dp
9355 326616 : ks_bc = 0.0_dp
9356 326616 : p_bd = pbd((md - 1)*4 + mb)
9357 326616 : p_bc = pbc((mc - 1)*4 + mb)
9358 653232 : DO ma = 1, 1
9359 326616 : p_index = p_index + 1
9360 326616 : tmp = scale*prim(p_index)
9361 326616 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9362 326616 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9363 326616 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9364 653232 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9365 : END DO
9366 326616 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9367 408270 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9368 : END DO
9369 : END DO
9370 : END DO
9371 27218 : END SUBROUTINE block_1_4_3_1
9372 : ! **************************************************************************************************
9373 : !> \brief ...
9374 : !> \param md_max ...
9375 : !> \param kbd ...
9376 : !> \param kbc ...
9377 : !> \param kad ...
9378 : !> \param kac ...
9379 : !> \param pbd ...
9380 : !> \param pbc ...
9381 : !> \param pad ...
9382 : !> \param pac ...
9383 : !> \param prim ...
9384 : !> \param scale ...
9385 : ! **************************************************************************************************
9386 28694 : SUBROUTINE block_1_4_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9387 : INTEGER :: md_max
9388 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*3), kad(1*md_max), kac(1*3), pbd(4*md_max), pbc(4*3), &
9389 : pad(1*md_max), pac(1*3), prim(1*4*3*md_max), scale
9390 :
9391 : INTEGER :: ma, mb, mc, md, p_index
9392 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9393 :
9394 463618 : kbd(1:4*md_max) = 0.0_dp
9395 28694 : kbc(1:4*3) = 0.0_dp
9396 137425 : kad(1:1*md_max) = 0.0_dp
9397 28694 : kac(1:1*3) = 0.0_dp
9398 28694 : p_index = 0
9399 137425 : DO md = 1, md_max
9400 463618 : DO mc = 1, 3
9401 1739696 : DO mb = 1, 4
9402 1304772 : ks_bd = 0.0_dp
9403 1304772 : ks_bc = 0.0_dp
9404 1304772 : p_bd = pbd((md - 1)*4 + mb)
9405 1304772 : p_bc = pbc((mc - 1)*4 + mb)
9406 2609544 : DO ma = 1, 1
9407 1304772 : p_index = p_index + 1
9408 1304772 : tmp = scale*prim(p_index)
9409 1304772 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9410 1304772 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9411 1304772 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9412 2609544 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9413 : END DO
9414 1304772 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9415 1630965 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9416 : END DO
9417 : END DO
9418 : END DO
9419 28694 : END SUBROUTINE block_1_4_3
9420 : ! **************************************************************************************************
9421 : !> \brief ...
9422 : !> \param kbd ...
9423 : !> \param kbc ...
9424 : !> \param kad ...
9425 : !> \param kac ...
9426 : !> \param pbd ...
9427 : !> \param pbc ...
9428 : !> \param pad ...
9429 : !> \param pac ...
9430 : !> \param prim ...
9431 : !> \param scale ...
9432 : ! **************************************************************************************************
9433 65396 : SUBROUTINE block_1_4_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9434 : REAL(KIND=dp) :: kbd(4*1), kbc(4*4), kad(1*1), kac(1*4), &
9435 : pbd(4*1), pbc(4*4), pad(1*1), &
9436 : pac(1*4), prim(1*4*4*1), scale
9437 :
9438 : INTEGER :: ma, mb, mc, md, p_index
9439 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9440 :
9441 65396 : kbd(1:4*1) = 0.0_dp
9442 65396 : kbc(1:4*4) = 0.0_dp
9443 65396 : kad(1:1*1) = 0.0_dp
9444 65396 : kac(1:1*4) = 0.0_dp
9445 65396 : p_index = 0
9446 130792 : DO md = 1, 1
9447 392376 : DO mc = 1, 4
9448 1373316 : DO mb = 1, 4
9449 1046336 : ks_bd = 0.0_dp
9450 1046336 : ks_bc = 0.0_dp
9451 1046336 : p_bd = pbd((md - 1)*4 + mb)
9452 1046336 : p_bc = pbc((mc - 1)*4 + mb)
9453 2092672 : DO ma = 1, 1
9454 1046336 : p_index = p_index + 1
9455 1046336 : tmp = scale*prim(p_index)
9456 1046336 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9457 1046336 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9458 1046336 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9459 2092672 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9460 : END DO
9461 1046336 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9462 1307920 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9463 : END DO
9464 : END DO
9465 : END DO
9466 65396 : END SUBROUTINE block_1_4_4_1
9467 : ! **************************************************************************************************
9468 : !> \brief ...
9469 : !> \param md_max ...
9470 : !> \param kbd ...
9471 : !> \param kbc ...
9472 : !> \param kad ...
9473 : !> \param kac ...
9474 : !> \param pbd ...
9475 : !> \param pbc ...
9476 : !> \param pad ...
9477 : !> \param pac ...
9478 : !> \param prim ...
9479 : !> \param scale ...
9480 : ! **************************************************************************************************
9481 109606 : SUBROUTINE block_1_4_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9482 : INTEGER :: md_max
9483 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*4), kad(1*md_max), kac(1*4), pbd(4*md_max), pbc(4*4), &
9484 : pad(1*md_max), pac(1*4), prim(1*4*4*md_max), scale
9485 :
9486 : INTEGER :: ma, mb, mc, md, p_index
9487 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9488 :
9489 1867218 : kbd(1:4*md_max) = 0.0_dp
9490 109606 : kbc(1:4*4) = 0.0_dp
9491 549009 : kad(1:1*md_max) = 0.0_dp
9492 109606 : kac(1:1*4) = 0.0_dp
9493 109606 : p_index = 0
9494 549009 : DO md = 1, md_max
9495 2306621 : DO mc = 1, 4
9496 9227463 : DO mb = 1, 4
9497 7030448 : ks_bd = 0.0_dp
9498 7030448 : ks_bc = 0.0_dp
9499 7030448 : p_bd = pbd((md - 1)*4 + mb)
9500 7030448 : p_bc = pbc((mc - 1)*4 + mb)
9501 14060896 : DO ma = 1, 1
9502 7030448 : p_index = p_index + 1
9503 7030448 : tmp = scale*prim(p_index)
9504 7030448 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9505 7030448 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9506 7030448 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9507 14060896 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9508 : END DO
9509 7030448 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9510 8788060 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9511 : END DO
9512 : END DO
9513 : END DO
9514 109606 : END SUBROUTINE block_1_4_4
9515 : ! **************************************************************************************************
9516 : !> \brief ...
9517 : !> \param mc_max ...
9518 : !> \param md_max ...
9519 : !> \param kbd ...
9520 : !> \param kbc ...
9521 : !> \param kad ...
9522 : !> \param kac ...
9523 : !> \param pbd ...
9524 : !> \param pbc ...
9525 : !> \param pad ...
9526 : !> \param pac ...
9527 : !> \param prim ...
9528 : !> \param scale ...
9529 : ! **************************************************************************************************
9530 58148 : SUBROUTINE block_1_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9531 : INTEGER :: mc_max, md_max
9532 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(1*md_max), kac(1*mc_max), pbd(4*md_max), &
9533 : pbc(4*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*4*mc_max*md_max), scale
9534 :
9535 : INTEGER :: ma, mb, mc, md, p_index
9536 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9537 :
9538 714320 : kbd(1:4*md_max) = 0.0_dp
9539 1228516 : kbc(1:4*mc_max) = 0.0_dp
9540 222191 : kad(1:1*md_max) = 0.0_dp
9541 350740 : kac(1:1*mc_max) = 0.0_dp
9542 : p_index = 0
9543 222191 : DO md = 1, md_max
9544 1050964 : DO mc = 1, mc_max
9545 4307908 : DO mb = 1, 4
9546 3315092 : ks_bd = 0.0_dp
9547 3315092 : ks_bc = 0.0_dp
9548 3315092 : p_bd = pbd((md - 1)*4 + mb)
9549 3315092 : p_bc = pbc((mc - 1)*4 + mb)
9550 6630184 : DO ma = 1, 1
9551 3315092 : p_index = p_index + 1
9552 3315092 : tmp = scale*prim(p_index)
9553 3315092 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9554 3315092 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9555 3315092 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9556 6630184 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9557 : END DO
9558 3315092 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
9559 4143865 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
9560 : END DO
9561 : END DO
9562 : END DO
9563 58148 : END SUBROUTINE block_1_4
9564 : ! **************************************************************************************************
9565 : !> \brief ...
9566 : !> \param kbd ...
9567 : !> \param kbc ...
9568 : !> \param kad ...
9569 : !> \param kac ...
9570 : !> \param pbd ...
9571 : !> \param pbc ...
9572 : !> \param pad ...
9573 : !> \param pac ...
9574 : !> \param prim ...
9575 : !> \param scale ...
9576 : ! **************************************************************************************************
9577 69464 : SUBROUTINE block_1_5_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9578 : REAL(KIND=dp) :: kbd(5*1), kbc(5*1), kad(1*1), kac(1*1), &
9579 : pbd(5*1), pbc(5*1), pad(1*1), &
9580 : pac(1*1), prim(1*5*1*1), scale
9581 :
9582 : INTEGER :: ma, mb, mc, md, p_index
9583 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9584 :
9585 69464 : kbd(1:5*1) = 0.0_dp
9586 69464 : kbc(1:5*1) = 0.0_dp
9587 69464 : kad(1:1*1) = 0.0_dp
9588 69464 : kac(1:1*1) = 0.0_dp
9589 69464 : p_index = 0
9590 138928 : DO md = 1, 1
9591 208392 : DO mc = 1, 1
9592 486248 : DO mb = 1, 5
9593 347320 : ks_bd = 0.0_dp
9594 347320 : ks_bc = 0.0_dp
9595 347320 : p_bd = pbd((md - 1)*5 + mb)
9596 347320 : p_bc = pbc((mc - 1)*5 + mb)
9597 694640 : DO ma = 1, 1
9598 347320 : p_index = p_index + 1
9599 347320 : tmp = scale*prim(p_index)
9600 347320 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9601 347320 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9602 347320 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9603 694640 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9604 : END DO
9605 347320 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9606 416784 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9607 : END DO
9608 : END DO
9609 : END DO
9610 69464 : END SUBROUTINE block_1_5_1_1
9611 : ! **************************************************************************************************
9612 : !> \brief ...
9613 : !> \param kbd ...
9614 : !> \param kbc ...
9615 : !> \param kad ...
9616 : !> \param kac ...
9617 : !> \param pbd ...
9618 : !> \param pbc ...
9619 : !> \param pad ...
9620 : !> \param pac ...
9621 : !> \param prim ...
9622 : !> \param scale ...
9623 : ! **************************************************************************************************
9624 1713 : SUBROUTINE block_1_5_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9625 : REAL(KIND=dp) :: kbd(5*2), kbc(5*1), kad(1*2), kac(1*1), &
9626 : pbd(5*2), pbc(5*1), pad(1*2), &
9627 : pac(1*1), prim(1*5*1*2), scale
9628 :
9629 : INTEGER :: ma, mb, mc, md, p_index
9630 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9631 :
9632 1713 : kbd(1:5*2) = 0.0_dp
9633 1713 : kbc(1:5*1) = 0.0_dp
9634 1713 : kad(1:1*2) = 0.0_dp
9635 1713 : kac(1:1*1) = 0.0_dp
9636 1713 : p_index = 0
9637 5139 : DO md = 1, 2
9638 8565 : DO mc = 1, 1
9639 23982 : DO mb = 1, 5
9640 17130 : ks_bd = 0.0_dp
9641 17130 : ks_bc = 0.0_dp
9642 17130 : p_bd = pbd((md - 1)*5 + mb)
9643 17130 : p_bc = pbc((mc - 1)*5 + mb)
9644 34260 : DO ma = 1, 1
9645 17130 : p_index = p_index + 1
9646 17130 : tmp = scale*prim(p_index)
9647 17130 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9648 17130 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9649 17130 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9650 34260 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9651 : END DO
9652 17130 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9653 20556 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9654 : END DO
9655 : END DO
9656 : END DO
9657 1713 : END SUBROUTINE block_1_5_1_2
9658 : ! **************************************************************************************************
9659 : !> \brief ...
9660 : !> \param kbd ...
9661 : !> \param kbc ...
9662 : !> \param kad ...
9663 : !> \param kac ...
9664 : !> \param pbd ...
9665 : !> \param pbc ...
9666 : !> \param pad ...
9667 : !> \param pac ...
9668 : !> \param prim ...
9669 : !> \param scale ...
9670 : ! **************************************************************************************************
9671 40158 : SUBROUTINE block_1_5_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9672 : REAL(KIND=dp) :: kbd(5*3), kbc(5*1), kad(1*3), kac(1*1), &
9673 : pbd(5*3), pbc(5*1), pad(1*3), &
9674 : pac(1*1), prim(1*5*1*3), scale
9675 :
9676 : INTEGER :: ma, mb, mc, md, p_index
9677 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9678 :
9679 40158 : kbd(1:5*3) = 0.0_dp
9680 40158 : kbc(1:5*1) = 0.0_dp
9681 40158 : kad(1:1*3) = 0.0_dp
9682 40158 : kac(1:1*1) = 0.0_dp
9683 40158 : p_index = 0
9684 160632 : DO md = 1, 3
9685 281106 : DO mc = 1, 1
9686 843318 : DO mb = 1, 5
9687 602370 : ks_bd = 0.0_dp
9688 602370 : ks_bc = 0.0_dp
9689 602370 : p_bd = pbd((md - 1)*5 + mb)
9690 602370 : p_bc = pbc((mc - 1)*5 + mb)
9691 1204740 : DO ma = 1, 1
9692 602370 : p_index = p_index + 1
9693 602370 : tmp = scale*prim(p_index)
9694 602370 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9695 602370 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9696 602370 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9697 1204740 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9698 : END DO
9699 602370 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9700 722844 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9701 : END DO
9702 : END DO
9703 : END DO
9704 40158 : END SUBROUTINE block_1_5_1_3
9705 : ! **************************************************************************************************
9706 : !> \brief ...
9707 : !> \param md_max ...
9708 : !> \param kbd ...
9709 : !> \param kbc ...
9710 : !> \param kad ...
9711 : !> \param kac ...
9712 : !> \param pbd ...
9713 : !> \param pbc ...
9714 : !> \param pad ...
9715 : !> \param pac ...
9716 : !> \param prim ...
9717 : !> \param scale ...
9718 : ! **************************************************************************************************
9719 42510 : SUBROUTINE block_1_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9720 : INTEGER :: md_max
9721 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*1), kad(1*md_max), kac(1*1), pbd(5*md_max), pbc(5*1), &
9722 : pad(1*md_max), pac(1*1), prim(1*5*1*md_max), scale
9723 :
9724 : INTEGER :: ma, mb, mc, md, p_index
9725 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9726 :
9727 1053025 : kbd(1:5*md_max) = 0.0_dp
9728 42510 : kbc(1:5*1) = 0.0_dp
9729 244613 : kad(1:1*md_max) = 0.0_dp
9730 42510 : kac(1:1*1) = 0.0_dp
9731 42510 : p_index = 0
9732 244613 : DO md = 1, md_max
9733 446716 : DO mc = 1, 1
9734 1414721 : DO mb = 1, 5
9735 1010515 : ks_bd = 0.0_dp
9736 1010515 : ks_bc = 0.0_dp
9737 1010515 : p_bd = pbd((md - 1)*5 + mb)
9738 1010515 : p_bc = pbc((mc - 1)*5 + mb)
9739 2021030 : DO ma = 1, 1
9740 1010515 : p_index = p_index + 1
9741 1010515 : tmp = scale*prim(p_index)
9742 1010515 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9743 1010515 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9744 1010515 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9745 2021030 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9746 : END DO
9747 1010515 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9748 1212618 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9749 : END DO
9750 : END DO
9751 : END DO
9752 42510 : END SUBROUTINE block_1_5_1
9753 : ! **************************************************************************************************
9754 : !> \brief ...
9755 : !> \param kbd ...
9756 : !> \param kbc ...
9757 : !> \param kad ...
9758 : !> \param kac ...
9759 : !> \param pbd ...
9760 : !> \param pbc ...
9761 : !> \param pad ...
9762 : !> \param pac ...
9763 : !> \param prim ...
9764 : !> \param scale ...
9765 : ! **************************************************************************************************
9766 1706 : SUBROUTINE block_1_5_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9767 : REAL(KIND=dp) :: kbd(5*1), kbc(5*2), kad(1*1), kac(1*2), &
9768 : pbd(5*1), pbc(5*2), pad(1*1), &
9769 : pac(1*2), prim(1*5*2*1), scale
9770 :
9771 : INTEGER :: ma, mb, mc, md, p_index
9772 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9773 :
9774 1706 : kbd(1:5*1) = 0.0_dp
9775 1706 : kbc(1:5*2) = 0.0_dp
9776 1706 : kad(1:1*1) = 0.0_dp
9777 1706 : kac(1:1*2) = 0.0_dp
9778 1706 : p_index = 0
9779 3412 : DO md = 1, 1
9780 6824 : DO mc = 1, 2
9781 22178 : DO mb = 1, 5
9782 17060 : ks_bd = 0.0_dp
9783 17060 : ks_bc = 0.0_dp
9784 17060 : p_bd = pbd((md - 1)*5 + mb)
9785 17060 : p_bc = pbc((mc - 1)*5 + mb)
9786 34120 : DO ma = 1, 1
9787 17060 : p_index = p_index + 1
9788 17060 : tmp = scale*prim(p_index)
9789 17060 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9790 17060 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9791 17060 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9792 34120 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9793 : END DO
9794 17060 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9795 20472 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9796 : END DO
9797 : END DO
9798 : END DO
9799 1706 : END SUBROUTINE block_1_5_2_1
9800 : ! **************************************************************************************************
9801 : !> \brief ...
9802 : !> \param md_max ...
9803 : !> \param kbd ...
9804 : !> \param kbc ...
9805 : !> \param kad ...
9806 : !> \param kac ...
9807 : !> \param pbd ...
9808 : !> \param pbc ...
9809 : !> \param pad ...
9810 : !> \param pac ...
9811 : !> \param prim ...
9812 : !> \param scale ...
9813 : ! **************************************************************************************************
9814 5654 : SUBROUTINE block_1_5_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9815 : INTEGER :: md_max
9816 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*2), kad(1*md_max), kac(1*2), pbd(5*md_max), pbc(5*2), &
9817 : pad(1*md_max), pac(1*2), prim(1*5*2*md_max), scale
9818 :
9819 : INTEGER :: ma, mb, mc, md, p_index
9820 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9821 :
9822 119884 : kbd(1:5*md_max) = 0.0_dp
9823 5654 : kbc(1:5*2) = 0.0_dp
9824 28500 : kad(1:1*md_max) = 0.0_dp
9825 5654 : kac(1:1*2) = 0.0_dp
9826 5654 : p_index = 0
9827 28500 : DO md = 1, md_max
9828 74192 : DO mc = 1, 2
9829 296998 : DO mb = 1, 5
9830 228460 : ks_bd = 0.0_dp
9831 228460 : ks_bc = 0.0_dp
9832 228460 : p_bd = pbd((md - 1)*5 + mb)
9833 228460 : p_bc = pbc((mc - 1)*5 + mb)
9834 456920 : DO ma = 1, 1
9835 228460 : p_index = p_index + 1
9836 228460 : tmp = scale*prim(p_index)
9837 228460 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9838 228460 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9839 228460 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9840 456920 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9841 : END DO
9842 228460 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9843 274152 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9844 : END DO
9845 : END DO
9846 : END DO
9847 5654 : END SUBROUTINE block_1_5_2
9848 : ! **************************************************************************************************
9849 : !> \brief ...
9850 : !> \param kbd ...
9851 : !> \param kbc ...
9852 : !> \param kad ...
9853 : !> \param kac ...
9854 : !> \param pbd ...
9855 : !> \param pbc ...
9856 : !> \param pad ...
9857 : !> \param pac ...
9858 : !> \param prim ...
9859 : !> \param scale ...
9860 : ! **************************************************************************************************
9861 38151 : SUBROUTINE block_1_5_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9862 : REAL(KIND=dp) :: kbd(5*1), kbc(5*3), kad(1*1), kac(1*3), &
9863 : pbd(5*1), pbc(5*3), pad(1*1), &
9864 : pac(1*3), prim(1*5*3*1), scale
9865 :
9866 : INTEGER :: ma, mb, mc, md, p_index
9867 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9868 :
9869 38151 : kbd(1:5*1) = 0.0_dp
9870 38151 : kbc(1:5*3) = 0.0_dp
9871 38151 : kad(1:1*1) = 0.0_dp
9872 38151 : kac(1:1*3) = 0.0_dp
9873 38151 : p_index = 0
9874 76302 : DO md = 1, 1
9875 190755 : DO mc = 1, 3
9876 724869 : DO mb = 1, 5
9877 572265 : ks_bd = 0.0_dp
9878 572265 : ks_bc = 0.0_dp
9879 572265 : p_bd = pbd((md - 1)*5 + mb)
9880 572265 : p_bc = pbc((mc - 1)*5 + mb)
9881 1144530 : DO ma = 1, 1
9882 572265 : p_index = p_index + 1
9883 572265 : tmp = scale*prim(p_index)
9884 572265 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9885 572265 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9886 572265 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9887 1144530 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9888 : END DO
9889 572265 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9890 686718 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9891 : END DO
9892 : END DO
9893 : END DO
9894 38151 : END SUBROUTINE block_1_5_3_1
9895 : ! **************************************************************************************************
9896 : !> \brief ...
9897 : !> \param md_max ...
9898 : !> \param kbd ...
9899 : !> \param kbc ...
9900 : !> \param kad ...
9901 : !> \param kac ...
9902 : !> \param pbd ...
9903 : !> \param pbc ...
9904 : !> \param pad ...
9905 : !> \param pac ...
9906 : !> \param prim ...
9907 : !> \param scale ...
9908 : ! **************************************************************************************************
9909 56731 : SUBROUTINE block_1_5_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9910 : INTEGER :: md_max
9911 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*3), kad(1*md_max), kac(1*3), pbd(5*md_max), pbc(5*3), &
9912 : pad(1*md_max), pac(1*3), prim(1*5*3*md_max), scale
9913 :
9914 : INTEGER :: ma, mb, mc, md, p_index
9915 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9916 :
9917 1160731 : kbd(1:5*md_max) = 0.0_dp
9918 56731 : kbc(1:5*3) = 0.0_dp
9919 277531 : kad(1:1*md_max) = 0.0_dp
9920 56731 : kac(1:1*3) = 0.0_dp
9921 56731 : p_index = 0
9922 277531 : DO md = 1, md_max
9923 939931 : DO mc = 1, 3
9924 4195200 : DO mb = 1, 5
9925 3312000 : ks_bd = 0.0_dp
9926 3312000 : ks_bc = 0.0_dp
9927 3312000 : p_bd = pbd((md - 1)*5 + mb)
9928 3312000 : p_bc = pbc((mc - 1)*5 + mb)
9929 6624000 : DO ma = 1, 1
9930 3312000 : p_index = p_index + 1
9931 3312000 : tmp = scale*prim(p_index)
9932 3312000 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9933 3312000 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9934 3312000 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9935 6624000 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9936 : END DO
9937 3312000 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9938 3974400 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9939 : END DO
9940 : END DO
9941 : END DO
9942 56731 : END SUBROUTINE block_1_5_3
9943 : ! **************************************************************************************************
9944 : !> \brief ...
9945 : !> \param mc_max ...
9946 : !> \param md_max ...
9947 : !> \param kbd ...
9948 : !> \param kbc ...
9949 : !> \param kad ...
9950 : !> \param kac ...
9951 : !> \param pbd ...
9952 : !> \param pbc ...
9953 : !> \param pad ...
9954 : !> \param pac ...
9955 : !> \param prim ...
9956 : !> \param scale ...
9957 : ! **************************************************************************************************
9958 136367 : SUBROUTINE block_1_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
9959 : INTEGER :: mc_max, md_max
9960 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(1*md_max), kac(1*mc_max), pbd(5*md_max), &
9961 : pbc(5*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*5*mc_max*md_max), scale
9962 :
9963 : INTEGER :: ma, mb, mc, md, p_index
9964 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
9965 :
9966 2105317 : kbd(1:5*md_max) = 0.0_dp
9967 3400707 : kbc(1:5*mc_max) = 0.0_dp
9968 530157 : kad(1:1*md_max) = 0.0_dp
9969 789235 : kac(1:1*mc_max) = 0.0_dp
9970 : p_index = 0
9971 530157 : DO md = 1, md_max
9972 2437319 : DO mc = 1, mc_max
9973 11836762 : DO mb = 1, 5
9974 9535810 : ks_bd = 0.0_dp
9975 9535810 : ks_bc = 0.0_dp
9976 9535810 : p_bd = pbd((md - 1)*5 + mb)
9977 9535810 : p_bc = pbc((mc - 1)*5 + mb)
9978 19071620 : DO ma = 1, 1
9979 9535810 : p_index = p_index + 1
9980 9535810 : tmp = scale*prim(p_index)
9981 9535810 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
9982 9535810 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
9983 9535810 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
9984 19071620 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
9985 : END DO
9986 9535810 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
9987 11442972 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
9988 : END DO
9989 : END DO
9990 : END DO
9991 136367 : END SUBROUTINE block_1_5
9992 : ! **************************************************************************************************
9993 : !> \brief ...
9994 : !> \param kbd ...
9995 : !> \param kbc ...
9996 : !> \param kad ...
9997 : !> \param kac ...
9998 : !> \param pbd ...
9999 : !> \param pbc ...
10000 : !> \param pad ...
10001 : !> \param pac ...
10002 : !> \param prim ...
10003 : !> \param scale ...
10004 : ! **************************************************************************************************
10005 10 : SUBROUTINE block_1_6_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10006 : REAL(KIND=dp) :: kbd(6*1), kbc(6*1), kad(1*1), kac(1*1), &
10007 : pbd(6*1), pbc(6*1), pad(1*1), &
10008 : pac(1*1), prim(1*6*1*1), scale
10009 :
10010 : INTEGER :: ma, mb, mc, md, p_index
10011 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10012 :
10013 10 : kbd(1:6*1) = 0.0_dp
10014 10 : kbc(1:6*1) = 0.0_dp
10015 10 : kad(1:1*1) = 0.0_dp
10016 10 : kac(1:1*1) = 0.0_dp
10017 10 : p_index = 0
10018 20 : DO md = 1, 1
10019 30 : DO mc = 1, 1
10020 80 : DO mb = 1, 6
10021 60 : ks_bd = 0.0_dp
10022 60 : ks_bc = 0.0_dp
10023 60 : p_bd = pbd((md - 1)*6 + mb)
10024 60 : p_bc = pbc((mc - 1)*6 + mb)
10025 120 : DO ma = 1, 1
10026 60 : p_index = p_index + 1
10027 60 : tmp = scale*prim(p_index)
10028 60 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10029 60 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10030 60 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10031 120 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10032 : END DO
10033 60 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10034 70 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10035 : END DO
10036 : END DO
10037 : END DO
10038 10 : END SUBROUTINE block_1_6_1_1
10039 : ! **************************************************************************************************
10040 : !> \brief ...
10041 : !> \param kbd ...
10042 : !> \param kbc ...
10043 : !> \param kad ...
10044 : !> \param kac ...
10045 : !> \param pbd ...
10046 : !> \param pbc ...
10047 : !> \param pad ...
10048 : !> \param pac ...
10049 : !> \param prim ...
10050 : !> \param scale ...
10051 : ! **************************************************************************************************
10052 9 : SUBROUTINE block_1_6_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10053 : REAL(KIND=dp) :: kbd(6*2), kbc(6*1), kad(1*2), kac(1*1), &
10054 : pbd(6*2), pbc(6*1), pad(1*2), &
10055 : pac(1*1), prim(1*6*1*2), scale
10056 :
10057 : INTEGER :: ma, mb, mc, md, p_index
10058 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10059 :
10060 9 : kbd(1:6*2) = 0.0_dp
10061 9 : kbc(1:6*1) = 0.0_dp
10062 9 : kad(1:1*2) = 0.0_dp
10063 9 : kac(1:1*1) = 0.0_dp
10064 9 : p_index = 0
10065 27 : DO md = 1, 2
10066 45 : DO mc = 1, 1
10067 144 : DO mb = 1, 6
10068 108 : ks_bd = 0.0_dp
10069 108 : ks_bc = 0.0_dp
10070 108 : p_bd = pbd((md - 1)*6 + mb)
10071 108 : p_bc = pbc((mc - 1)*6 + mb)
10072 216 : DO ma = 1, 1
10073 108 : p_index = p_index + 1
10074 108 : tmp = scale*prim(p_index)
10075 108 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10076 108 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10077 108 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10078 216 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10079 : END DO
10080 108 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10081 126 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10082 : END DO
10083 : END DO
10084 : END DO
10085 9 : END SUBROUTINE block_1_6_1_2
10086 : ! **************************************************************************************************
10087 : !> \brief ...
10088 : !> \param kbd ...
10089 : !> \param kbc ...
10090 : !> \param kad ...
10091 : !> \param kac ...
10092 : !> \param pbd ...
10093 : !> \param pbc ...
10094 : !> \param pad ...
10095 : !> \param pac ...
10096 : !> \param prim ...
10097 : !> \param scale ...
10098 : ! **************************************************************************************************
10099 8 : SUBROUTINE block_1_6_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10100 : REAL(KIND=dp) :: kbd(6*3), kbc(6*1), kad(1*3), kac(1*1), &
10101 : pbd(6*3), pbc(6*1), pad(1*3), &
10102 : pac(1*1), prim(1*6*1*3), scale
10103 :
10104 : INTEGER :: ma, mb, mc, md, p_index
10105 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10106 :
10107 8 : kbd(1:6*3) = 0.0_dp
10108 8 : kbc(1:6*1) = 0.0_dp
10109 8 : kad(1:1*3) = 0.0_dp
10110 8 : kac(1:1*1) = 0.0_dp
10111 8 : p_index = 0
10112 32 : DO md = 1, 3
10113 56 : DO mc = 1, 1
10114 192 : DO mb = 1, 6
10115 144 : ks_bd = 0.0_dp
10116 144 : ks_bc = 0.0_dp
10117 144 : p_bd = pbd((md - 1)*6 + mb)
10118 144 : p_bc = pbc((mc - 1)*6 + mb)
10119 288 : DO ma = 1, 1
10120 144 : p_index = p_index + 1
10121 144 : tmp = scale*prim(p_index)
10122 144 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10123 144 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10124 144 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10125 288 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10126 : END DO
10127 144 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10128 168 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10129 : END DO
10130 : END DO
10131 : END DO
10132 8 : END SUBROUTINE block_1_6_1_3
10133 : ! **************************************************************************************************
10134 : !> \brief ...
10135 : !> \param md_max ...
10136 : !> \param kbd ...
10137 : !> \param kbc ...
10138 : !> \param kad ...
10139 : !> \param kac ...
10140 : !> \param pbd ...
10141 : !> \param pbc ...
10142 : !> \param pad ...
10143 : !> \param pac ...
10144 : !> \param prim ...
10145 : !> \param scale ...
10146 : ! **************************************************************************************************
10147 35 : SUBROUTINE block_1_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10148 : INTEGER :: md_max
10149 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*1), kad(1*md_max), kac(1*1), pbd(6*md_max), pbc(6*1), &
10150 : pad(1*md_max), pac(1*1), prim(1*6*1*md_max), scale
10151 :
10152 : INTEGER :: ma, mb, mc, md, p_index
10153 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10154 :
10155 1307 : kbd(1:6*md_max) = 0.0_dp
10156 35 : kbc(1:6*1) = 0.0_dp
10157 247 : kad(1:1*md_max) = 0.0_dp
10158 35 : kac(1:1*1) = 0.0_dp
10159 35 : p_index = 0
10160 247 : DO md = 1, md_max
10161 459 : DO mc = 1, 1
10162 1696 : DO mb = 1, 6
10163 1272 : ks_bd = 0.0_dp
10164 1272 : ks_bc = 0.0_dp
10165 1272 : p_bd = pbd((md - 1)*6 + mb)
10166 1272 : p_bc = pbc((mc - 1)*6 + mb)
10167 2544 : DO ma = 1, 1
10168 1272 : p_index = p_index + 1
10169 1272 : tmp = scale*prim(p_index)
10170 1272 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10171 1272 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10172 1272 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10173 2544 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10174 : END DO
10175 1272 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10176 1484 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10177 : END DO
10178 : END DO
10179 : END DO
10180 35 : END SUBROUTINE block_1_6_1
10181 : ! **************************************************************************************************
10182 : !> \brief ...
10183 : !> \param kbd ...
10184 : !> \param kbc ...
10185 : !> \param kad ...
10186 : !> \param kac ...
10187 : !> \param pbd ...
10188 : !> \param pbc ...
10189 : !> \param pad ...
10190 : !> \param pac ...
10191 : !> \param prim ...
10192 : !> \param scale ...
10193 : ! **************************************************************************************************
10194 2 : SUBROUTINE block_1_6_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10195 : REAL(KIND=dp) :: kbd(6*1), kbc(6*2), kad(1*1), kac(1*2), &
10196 : pbd(6*1), pbc(6*2), pad(1*1), &
10197 : pac(1*2), prim(1*6*2*1), scale
10198 :
10199 : INTEGER :: ma, mb, mc, md, p_index
10200 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10201 :
10202 2 : kbd(1:6*1) = 0.0_dp
10203 2 : kbc(1:6*2) = 0.0_dp
10204 2 : kad(1:1*1) = 0.0_dp
10205 2 : kac(1:1*2) = 0.0_dp
10206 2 : p_index = 0
10207 4 : DO md = 1, 1
10208 8 : DO mc = 1, 2
10209 30 : DO mb = 1, 6
10210 24 : ks_bd = 0.0_dp
10211 24 : ks_bc = 0.0_dp
10212 24 : p_bd = pbd((md - 1)*6 + mb)
10213 24 : p_bc = pbc((mc - 1)*6 + mb)
10214 48 : DO ma = 1, 1
10215 24 : p_index = p_index + 1
10216 24 : tmp = scale*prim(p_index)
10217 24 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10218 24 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10219 24 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10220 48 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10221 : END DO
10222 24 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10223 28 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10224 : END DO
10225 : END DO
10226 : END DO
10227 2 : END SUBROUTINE block_1_6_2_1
10228 : ! **************************************************************************************************
10229 : !> \brief ...
10230 : !> \param md_max ...
10231 : !> \param kbd ...
10232 : !> \param kbc ...
10233 : !> \param kad ...
10234 : !> \param kac ...
10235 : !> \param pbd ...
10236 : !> \param pbc ...
10237 : !> \param pad ...
10238 : !> \param pac ...
10239 : !> \param prim ...
10240 : !> \param scale ...
10241 : ! **************************************************************************************************
10242 38 : SUBROUTINE block_1_6_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10243 : INTEGER :: md_max
10244 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*2), kad(1*md_max), kac(1*2), pbd(6*md_max), pbc(6*2), &
10245 : pad(1*md_max), pac(1*2), prim(1*6*2*md_max), scale
10246 :
10247 : INTEGER :: ma, mb, mc, md, p_index
10248 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10249 :
10250 938 : kbd(1:6*md_max) = 0.0_dp
10251 38 : kbc(1:6*2) = 0.0_dp
10252 188 : kad(1:1*md_max) = 0.0_dp
10253 38 : kac(1:1*2) = 0.0_dp
10254 38 : p_index = 0
10255 188 : DO md = 1, md_max
10256 488 : DO mc = 1, 2
10257 2250 : DO mb = 1, 6
10258 1800 : ks_bd = 0.0_dp
10259 1800 : ks_bc = 0.0_dp
10260 1800 : p_bd = pbd((md - 1)*6 + mb)
10261 1800 : p_bc = pbc((mc - 1)*6 + mb)
10262 3600 : DO ma = 1, 1
10263 1800 : p_index = p_index + 1
10264 1800 : tmp = scale*prim(p_index)
10265 1800 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10266 1800 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10267 1800 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10268 3600 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10269 : END DO
10270 1800 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10271 2100 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10272 : END DO
10273 : END DO
10274 : END DO
10275 38 : END SUBROUTINE block_1_6_2
10276 : ! **************************************************************************************************
10277 : !> \brief ...
10278 : !> \param kbd ...
10279 : !> \param kbc ...
10280 : !> \param kad ...
10281 : !> \param kac ...
10282 : !> \param pbd ...
10283 : !> \param pbc ...
10284 : !> \param pad ...
10285 : !> \param pac ...
10286 : !> \param prim ...
10287 : !> \param scale ...
10288 : ! **************************************************************************************************
10289 3 : SUBROUTINE block_1_6_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10290 : REAL(KIND=dp) :: kbd(6*1), kbc(6*3), kad(1*1), kac(1*3), &
10291 : pbd(6*1), pbc(6*3), pad(1*1), &
10292 : pac(1*3), prim(1*6*3*1), scale
10293 :
10294 : INTEGER :: ma, mb, mc, md, p_index
10295 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10296 :
10297 3 : kbd(1:6*1) = 0.0_dp
10298 3 : kbc(1:6*3) = 0.0_dp
10299 3 : kad(1:1*1) = 0.0_dp
10300 3 : kac(1:1*3) = 0.0_dp
10301 3 : p_index = 0
10302 6 : DO md = 1, 1
10303 15 : DO mc = 1, 3
10304 66 : DO mb = 1, 6
10305 54 : ks_bd = 0.0_dp
10306 54 : ks_bc = 0.0_dp
10307 54 : p_bd = pbd((md - 1)*6 + mb)
10308 54 : p_bc = pbc((mc - 1)*6 + mb)
10309 108 : DO ma = 1, 1
10310 54 : p_index = p_index + 1
10311 54 : tmp = scale*prim(p_index)
10312 54 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10313 54 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10314 54 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10315 108 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10316 : END DO
10317 54 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10318 63 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10319 : END DO
10320 : END DO
10321 : END DO
10322 3 : END SUBROUTINE block_1_6_3_1
10323 : ! **************************************************************************************************
10324 : !> \brief ...
10325 : !> \param md_max ...
10326 : !> \param kbd ...
10327 : !> \param kbc ...
10328 : !> \param kad ...
10329 : !> \param kac ...
10330 : !> \param pbd ...
10331 : !> \param pbc ...
10332 : !> \param pad ...
10333 : !> \param pac ...
10334 : !> \param prim ...
10335 : !> \param scale ...
10336 : ! **************************************************************************************************
10337 35 : SUBROUTINE block_1_6_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10338 : INTEGER :: md_max
10339 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*3), kad(1*md_max), kac(1*3), pbd(6*md_max), pbc(6*3), &
10340 : pad(1*md_max), pac(1*3), prim(1*6*3*md_max), scale
10341 :
10342 : INTEGER :: ma, mb, mc, md, p_index
10343 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10344 :
10345 983 : kbd(1:6*md_max) = 0.0_dp
10346 35 : kbc(1:6*3) = 0.0_dp
10347 193 : kad(1:1*md_max) = 0.0_dp
10348 35 : kac(1:1*3) = 0.0_dp
10349 35 : p_index = 0
10350 193 : DO md = 1, md_max
10351 667 : DO mc = 1, 3
10352 3476 : DO mb = 1, 6
10353 2844 : ks_bd = 0.0_dp
10354 2844 : ks_bc = 0.0_dp
10355 2844 : p_bd = pbd((md - 1)*6 + mb)
10356 2844 : p_bc = pbc((mc - 1)*6 + mb)
10357 5688 : DO ma = 1, 1
10358 2844 : p_index = p_index + 1
10359 2844 : tmp = scale*prim(p_index)
10360 2844 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10361 2844 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10362 2844 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10363 5688 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10364 : END DO
10365 2844 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10366 3318 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10367 : END DO
10368 : END DO
10369 : END DO
10370 35 : END SUBROUTINE block_1_6_3
10371 : ! **************************************************************************************************
10372 : !> \brief ...
10373 : !> \param mc_max ...
10374 : !> \param md_max ...
10375 : !> \param kbd ...
10376 : !> \param kbc ...
10377 : !> \param kad ...
10378 : !> \param kac ...
10379 : !> \param pbd ...
10380 : !> \param pbc ...
10381 : !> \param pad ...
10382 : !> \param pac ...
10383 : !> \param prim ...
10384 : !> \param scale ...
10385 : ! **************************************************************************************************
10386 55 : SUBROUTINE block_1_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10387 : INTEGER :: mc_max, md_max
10388 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(1*md_max), kac(1*mc_max), pbd(6*md_max), &
10389 : pbc(6*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*6*mc_max*md_max), scale
10390 :
10391 : INTEGER :: ma, mb, mc, md, p_index
10392 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10393 :
10394 1759 : kbd(1:6*md_max) = 0.0_dp
10395 2089 : kbc(1:6*mc_max) = 0.0_dp
10396 339 : kad(1:1*md_max) = 0.0_dp
10397 394 : kac(1:1*mc_max) = 0.0_dp
10398 : p_index = 0
10399 339 : DO md = 1, md_max
10400 2484 : DO mc = 1, mc_max
10401 15299 : DO mb = 1, 6
10402 12870 : ks_bd = 0.0_dp
10403 12870 : ks_bc = 0.0_dp
10404 12870 : p_bd = pbd((md - 1)*6 + mb)
10405 12870 : p_bc = pbc((mc - 1)*6 + mb)
10406 25740 : DO ma = 1, 1
10407 12870 : p_index = p_index + 1
10408 12870 : tmp = scale*prim(p_index)
10409 12870 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10410 12870 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10411 12870 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10412 25740 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10413 : END DO
10414 12870 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
10415 15015 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
10416 : END DO
10417 : END DO
10418 : END DO
10419 55 : END SUBROUTINE block_1_6
10420 : ! **************************************************************************************************
10421 : !> \brief ...
10422 : !> \param kbd ...
10423 : !> \param kbc ...
10424 : !> \param kad ...
10425 : !> \param kac ...
10426 : !> \param pbd ...
10427 : !> \param pbc ...
10428 : !> \param pad ...
10429 : !> \param pac ...
10430 : !> \param prim ...
10431 : !> \param scale ...
10432 : ! **************************************************************************************************
10433 5221 : SUBROUTINE block_1_7_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10434 : REAL(KIND=dp) :: kbd(7*1), kbc(7*1), kad(1*1), kac(1*1), &
10435 : pbd(7*1), pbc(7*1), pad(1*1), &
10436 : pac(1*1), prim(1*7*1*1), scale
10437 :
10438 : INTEGER :: ma, mb, mc, md, p_index
10439 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10440 :
10441 5221 : kbd(1:7*1) = 0.0_dp
10442 5221 : kbc(1:7*1) = 0.0_dp
10443 5221 : kad(1:1*1) = 0.0_dp
10444 5221 : kac(1:1*1) = 0.0_dp
10445 5221 : p_index = 0
10446 10442 : DO md = 1, 1
10447 15663 : DO mc = 1, 1
10448 46989 : DO mb = 1, 7
10449 36547 : ks_bd = 0.0_dp
10450 36547 : ks_bc = 0.0_dp
10451 36547 : p_bd = pbd((md - 1)*7 + mb)
10452 36547 : p_bc = pbc((mc - 1)*7 + mb)
10453 73094 : DO ma = 1, 1
10454 36547 : p_index = p_index + 1
10455 36547 : tmp = scale*prim(p_index)
10456 36547 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10457 36547 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10458 36547 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10459 73094 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10460 : END DO
10461 36547 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
10462 41768 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
10463 : END DO
10464 : END DO
10465 : END DO
10466 5221 : END SUBROUTINE block_1_7_1_1
10467 : ! **************************************************************************************************
10468 : !> \brief ...
10469 : !> \param kbd ...
10470 : !> \param kbc ...
10471 : !> \param kad ...
10472 : !> \param kac ...
10473 : !> \param pbd ...
10474 : !> \param pbc ...
10475 : !> \param pad ...
10476 : !> \param pac ...
10477 : !> \param prim ...
10478 : !> \param scale ...
10479 : ! **************************************************************************************************
10480 715 : SUBROUTINE block_1_7_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10481 : REAL(KIND=dp) :: kbd(7*2), kbc(7*1), kad(1*2), kac(1*1), &
10482 : pbd(7*2), pbc(7*1), pad(1*2), &
10483 : pac(1*1), prim(1*7*1*2), scale
10484 :
10485 : INTEGER :: ma, mb, mc, md, p_index
10486 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10487 :
10488 715 : kbd(1:7*2) = 0.0_dp
10489 715 : kbc(1:7*1) = 0.0_dp
10490 715 : kad(1:1*2) = 0.0_dp
10491 715 : kac(1:1*1) = 0.0_dp
10492 715 : p_index = 0
10493 2145 : DO md = 1, 2
10494 3575 : DO mc = 1, 1
10495 12870 : DO mb = 1, 7
10496 10010 : ks_bd = 0.0_dp
10497 10010 : ks_bc = 0.0_dp
10498 10010 : p_bd = pbd((md - 1)*7 + mb)
10499 10010 : p_bc = pbc((mc - 1)*7 + mb)
10500 20020 : DO ma = 1, 1
10501 10010 : p_index = p_index + 1
10502 10010 : tmp = scale*prim(p_index)
10503 10010 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10504 10010 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10505 10010 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10506 20020 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10507 : END DO
10508 10010 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
10509 11440 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
10510 : END DO
10511 : END DO
10512 : END DO
10513 715 : END SUBROUTINE block_1_7_1_2
10514 : ! **************************************************************************************************
10515 : !> \brief ...
10516 : !> \param md_max ...
10517 : !> \param kbd ...
10518 : !> \param kbc ...
10519 : !> \param kad ...
10520 : !> \param kac ...
10521 : !> \param pbd ...
10522 : !> \param pbc ...
10523 : !> \param pad ...
10524 : !> \param pac ...
10525 : !> \param prim ...
10526 : !> \param scale ...
10527 : ! **************************************************************************************************
10528 11528 : SUBROUTINE block_1_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10529 : INTEGER :: md_max
10530 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*1), kad(1*md_max), kac(1*1), pbd(7*md_max), pbc(7*1), &
10531 : pad(1*md_max), pac(1*1), prim(1*7*1*md_max), scale
10532 :
10533 : INTEGER :: ma, mb, mc, md, p_index
10534 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10535 :
10536 360674 : kbd(1:7*md_max) = 0.0_dp
10537 11528 : kbc(1:7*1) = 0.0_dp
10538 61406 : kad(1:1*md_max) = 0.0_dp
10539 11528 : kac(1:1*1) = 0.0_dp
10540 11528 : p_index = 0
10541 61406 : DO md = 1, md_max
10542 111284 : DO mc = 1, 1
10543 448902 : DO mb = 1, 7
10544 349146 : ks_bd = 0.0_dp
10545 349146 : ks_bc = 0.0_dp
10546 349146 : p_bd = pbd((md - 1)*7 + mb)
10547 349146 : p_bc = pbc((mc - 1)*7 + mb)
10548 698292 : DO ma = 1, 1
10549 349146 : p_index = p_index + 1
10550 349146 : tmp = scale*prim(p_index)
10551 349146 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10552 349146 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10553 349146 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10554 698292 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10555 : END DO
10556 349146 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
10557 399024 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
10558 : END DO
10559 : END DO
10560 : END DO
10561 11528 : END SUBROUTINE block_1_7_1
10562 : ! **************************************************************************************************
10563 : !> \brief ...
10564 : !> \param kbd ...
10565 : !> \param kbc ...
10566 : !> \param kad ...
10567 : !> \param kac ...
10568 : !> \param pbd ...
10569 : !> \param pbc ...
10570 : !> \param pad ...
10571 : !> \param pac ...
10572 : !> \param prim ...
10573 : !> \param scale ...
10574 : ! **************************************************************************************************
10575 712 : SUBROUTINE block_1_7_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10576 : REAL(KIND=dp) :: kbd(7*1), kbc(7*2), kad(1*1), kac(1*2), &
10577 : pbd(7*1), pbc(7*2), pad(1*1), &
10578 : pac(1*2), prim(1*7*2*1), scale
10579 :
10580 : INTEGER :: ma, mb, mc, md, p_index
10581 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10582 :
10583 712 : kbd(1:7*1) = 0.0_dp
10584 712 : kbc(1:7*2) = 0.0_dp
10585 712 : kad(1:1*1) = 0.0_dp
10586 712 : kac(1:1*2) = 0.0_dp
10587 712 : p_index = 0
10588 1424 : DO md = 1, 1
10589 2848 : DO mc = 1, 2
10590 12104 : DO mb = 1, 7
10591 9968 : ks_bd = 0.0_dp
10592 9968 : ks_bc = 0.0_dp
10593 9968 : p_bd = pbd((md - 1)*7 + mb)
10594 9968 : p_bc = pbc((mc - 1)*7 + mb)
10595 19936 : DO ma = 1, 1
10596 9968 : p_index = p_index + 1
10597 9968 : tmp = scale*prim(p_index)
10598 9968 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10599 9968 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10600 9968 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10601 19936 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10602 : END DO
10603 9968 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
10604 11392 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
10605 : END DO
10606 : END DO
10607 : END DO
10608 712 : END SUBROUTINE block_1_7_2_1
10609 : ! **************************************************************************************************
10610 : !> \brief ...
10611 : !> \param md_max ...
10612 : !> \param kbd ...
10613 : !> \param kbc ...
10614 : !> \param kad ...
10615 : !> \param kac ...
10616 : !> \param pbd ...
10617 : !> \param pbc ...
10618 : !> \param pad ...
10619 : !> \param pac ...
10620 : !> \param prim ...
10621 : !> \param scale ...
10622 : ! **************************************************************************************************
10623 2408 : SUBROUTINE block_1_7_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10624 : INTEGER :: md_max
10625 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*2), kad(1*md_max), kac(1*2), pbd(7*md_max), pbc(7*2), &
10626 : pad(1*md_max), pac(1*2), prim(1*7*2*md_max), scale
10627 :
10628 : INTEGER :: ma, mb, mc, md, p_index
10629 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10630 :
10631 74795 : kbd(1:7*md_max) = 0.0_dp
10632 2408 : kbc(1:7*2) = 0.0_dp
10633 12749 : kad(1:1*md_max) = 0.0_dp
10634 2408 : kac(1:1*2) = 0.0_dp
10635 2408 : p_index = 0
10636 12749 : DO md = 1, md_max
10637 33431 : DO mc = 1, 2
10638 175797 : DO mb = 1, 7
10639 144774 : ks_bd = 0.0_dp
10640 144774 : ks_bc = 0.0_dp
10641 144774 : p_bd = pbd((md - 1)*7 + mb)
10642 144774 : p_bc = pbc((mc - 1)*7 + mb)
10643 289548 : DO ma = 1, 1
10644 144774 : p_index = p_index + 1
10645 144774 : tmp = scale*prim(p_index)
10646 144774 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10647 144774 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10648 144774 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10649 289548 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10650 : END DO
10651 144774 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
10652 165456 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
10653 : END DO
10654 : END DO
10655 : END DO
10656 2408 : END SUBROUTINE block_1_7_2
10657 : ! **************************************************************************************************
10658 : !> \brief ...
10659 : !> \param mc_max ...
10660 : !> \param md_max ...
10661 : !> \param kbd ...
10662 : !> \param kbc ...
10663 : !> \param kad ...
10664 : !> \param kac ...
10665 : !> \param pbd ...
10666 : !> \param pbc ...
10667 : !> \param pad ...
10668 : !> \param pac ...
10669 : !> \param prim ...
10670 : !> \param scale ...
10671 : ! **************************************************************************************************
10672 42531 : SUBROUTINE block_1_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10673 : INTEGER :: mc_max, md_max
10674 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(1*md_max), kac(1*mc_max), pbd(7*md_max), &
10675 : pbc(7*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*7*mc_max*md_max), scale
10676 :
10677 : INTEGER :: ma, mb, mc, md, p_index
10678 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10679 :
10680 1046870 : kbd(1:7*md_max) = 0.0_dp
10681 1353134 : kbc(1:7*mc_max) = 0.0_dp
10682 186008 : kad(1:1*md_max) = 0.0_dp
10683 229760 : kac(1:1*mc_max) = 0.0_dp
10684 : p_index = 0
10685 186008 : DO md = 1, md_max
10686 822712 : DO mc = 1, mc_max
10687 5237109 : DO mb = 1, 7
10688 4456928 : ks_bd = 0.0_dp
10689 4456928 : ks_bc = 0.0_dp
10690 4456928 : p_bd = pbd((md - 1)*7 + mb)
10691 4456928 : p_bc = pbc((mc - 1)*7 + mb)
10692 8913856 : DO ma = 1, 1
10693 4456928 : p_index = p_index + 1
10694 4456928 : tmp = scale*prim(p_index)
10695 4456928 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10696 4456928 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10697 4456928 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10698 8913856 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10699 : END DO
10700 4456928 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
10701 5093632 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
10702 : END DO
10703 : END DO
10704 : END DO
10705 42531 : END SUBROUTINE block_1_7
10706 : ! **************************************************************************************************
10707 : !> \brief ...
10708 : !> \param kbd ...
10709 : !> \param kbc ...
10710 : !> \param kad ...
10711 : !> \param kac ...
10712 : !> \param pbd ...
10713 : !> \param pbc ...
10714 : !> \param pad ...
10715 : !> \param pac ...
10716 : !> \param prim ...
10717 : !> \param scale ...
10718 : ! **************************************************************************************************
10719 5 : SUBROUTINE block_1_9_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10720 : REAL(KIND=dp) :: kbd(9*1), kbc(9*1), kad(1*1), kac(1*1), &
10721 : pbd(9*1), pbc(9*1), pad(1*1), &
10722 : pac(1*1), prim(1*9*1*1), scale
10723 :
10724 : INTEGER :: ma, mb, mc, md, p_index
10725 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10726 :
10727 5 : kbd(1:9*1) = 0.0_dp
10728 5 : kbc(1:9*1) = 0.0_dp
10729 5 : kad(1:1*1) = 0.0_dp
10730 5 : kac(1:1*1) = 0.0_dp
10731 5 : p_index = 0
10732 10 : DO md = 1, 1
10733 15 : DO mc = 1, 1
10734 55 : DO mb = 1, 9
10735 45 : ks_bd = 0.0_dp
10736 45 : ks_bc = 0.0_dp
10737 45 : p_bd = pbd((md - 1)*9 + mb)
10738 45 : p_bc = pbc((mc - 1)*9 + mb)
10739 90 : DO ma = 1, 1
10740 45 : p_index = p_index + 1
10741 45 : tmp = scale*prim(p_index)
10742 45 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10743 45 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10744 45 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10745 90 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10746 : END DO
10747 45 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
10748 50 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
10749 : END DO
10750 : END DO
10751 : END DO
10752 5 : END SUBROUTINE block_1_9_1_1
10753 : ! **************************************************************************************************
10754 : !> \brief ...
10755 : !> \param kbd ...
10756 : !> \param kbc ...
10757 : !> \param kad ...
10758 : !> \param kac ...
10759 : !> \param pbd ...
10760 : !> \param pbc ...
10761 : !> \param pad ...
10762 : !> \param pac ...
10763 : !> \param prim ...
10764 : !> \param scale ...
10765 : ! **************************************************************************************************
10766 3 : SUBROUTINE block_1_9_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10767 : REAL(KIND=dp) :: kbd(9*2), kbc(9*1), kad(1*2), kac(1*1), &
10768 : pbd(9*2), pbc(9*1), pad(1*2), &
10769 : pac(1*1), prim(1*9*1*2), scale
10770 :
10771 : INTEGER :: ma, mb, mc, md, p_index
10772 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10773 :
10774 3 : kbd(1:9*2) = 0.0_dp
10775 3 : kbc(1:9*1) = 0.0_dp
10776 3 : kad(1:1*2) = 0.0_dp
10777 3 : kac(1:1*1) = 0.0_dp
10778 3 : p_index = 0
10779 9 : DO md = 1, 2
10780 15 : DO mc = 1, 1
10781 66 : DO mb = 1, 9
10782 54 : ks_bd = 0.0_dp
10783 54 : ks_bc = 0.0_dp
10784 54 : p_bd = pbd((md - 1)*9 + mb)
10785 54 : p_bc = pbc((mc - 1)*9 + mb)
10786 108 : DO ma = 1, 1
10787 54 : p_index = p_index + 1
10788 54 : tmp = scale*prim(p_index)
10789 54 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10790 54 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10791 54 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10792 108 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10793 : END DO
10794 54 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
10795 60 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
10796 : END DO
10797 : END DO
10798 : END DO
10799 3 : END SUBROUTINE block_1_9_1_2
10800 : ! **************************************************************************************************
10801 : !> \brief ...
10802 : !> \param md_max ...
10803 : !> \param kbd ...
10804 : !> \param kbc ...
10805 : !> \param kad ...
10806 : !> \param kac ...
10807 : !> \param pbd ...
10808 : !> \param pbc ...
10809 : !> \param pad ...
10810 : !> \param pac ...
10811 : !> \param prim ...
10812 : !> \param scale ...
10813 : ! **************************************************************************************************
10814 21 : SUBROUTINE block_1_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10815 : INTEGER :: md_max
10816 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*1), kad(1*md_max), kac(1*1), pbd(9*md_max), pbc(9*1), &
10817 : pad(1*md_max), pac(1*1), prim(1*9*1*md_max), scale
10818 :
10819 : INTEGER :: ma, mb, mc, md, p_index
10820 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10821 :
10822 1416 : kbd(1:9*md_max) = 0.0_dp
10823 21 : kbc(1:9*1) = 0.0_dp
10824 176 : kad(1:1*md_max) = 0.0_dp
10825 21 : kac(1:1*1) = 0.0_dp
10826 21 : p_index = 0
10827 176 : DO md = 1, md_max
10828 331 : DO mc = 1, 1
10829 1705 : DO mb = 1, 9
10830 1395 : ks_bd = 0.0_dp
10831 1395 : ks_bc = 0.0_dp
10832 1395 : p_bd = pbd((md - 1)*9 + mb)
10833 1395 : p_bc = pbc((mc - 1)*9 + mb)
10834 2790 : DO ma = 1, 1
10835 1395 : p_index = p_index + 1
10836 1395 : tmp = scale*prim(p_index)
10837 1395 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10838 1395 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10839 1395 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10840 2790 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10841 : END DO
10842 1395 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
10843 1550 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
10844 : END DO
10845 : END DO
10846 : END DO
10847 21 : END SUBROUTINE block_1_9_1
10848 : ! **************************************************************************************************
10849 : !> \brief ...
10850 : !> \param kbd ...
10851 : !> \param kbc ...
10852 : !> \param kad ...
10853 : !> \param kac ...
10854 : !> \param pbd ...
10855 : !> \param pbc ...
10856 : !> \param pad ...
10857 : !> \param pac ...
10858 : !> \param prim ...
10859 : !> \param scale ...
10860 : ! **************************************************************************************************
10861 0 : SUBROUTINE block_1_9_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10862 : REAL(KIND=dp) :: kbd(9*1), kbc(9*2), kad(1*1), kac(1*2), &
10863 : pbd(9*1), pbc(9*2), pad(1*1), &
10864 : pac(1*2), prim(1*9*2*1), scale
10865 :
10866 : INTEGER :: ma, mb, mc, md, p_index
10867 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10868 :
10869 0 : kbd(1:9*1) = 0.0_dp
10870 0 : kbc(1:9*2) = 0.0_dp
10871 0 : kad(1:1*1) = 0.0_dp
10872 0 : kac(1:1*2) = 0.0_dp
10873 0 : p_index = 0
10874 0 : DO md = 1, 1
10875 0 : DO mc = 1, 2
10876 0 : DO mb = 1, 9
10877 0 : ks_bd = 0.0_dp
10878 0 : ks_bc = 0.0_dp
10879 0 : p_bd = pbd((md - 1)*9 + mb)
10880 0 : p_bc = pbc((mc - 1)*9 + mb)
10881 0 : DO ma = 1, 1
10882 0 : p_index = p_index + 1
10883 0 : tmp = scale*prim(p_index)
10884 0 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10885 0 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10886 0 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10887 0 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10888 : END DO
10889 0 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
10890 0 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
10891 : END DO
10892 : END DO
10893 : END DO
10894 0 : END SUBROUTINE block_1_9_2_1
10895 : ! **************************************************************************************************
10896 : !> \brief ...
10897 : !> \param md_max ...
10898 : !> \param kbd ...
10899 : !> \param kbc ...
10900 : !> \param kad ...
10901 : !> \param kac ...
10902 : !> \param pbd ...
10903 : !> \param pbc ...
10904 : !> \param pad ...
10905 : !> \param pac ...
10906 : !> \param prim ...
10907 : !> \param scale ...
10908 : ! **************************************************************************************************
10909 13 : SUBROUTINE block_1_9_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10910 : INTEGER :: md_max
10911 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*2), kad(1*md_max), kac(1*2), pbd(9*md_max), pbc(9*2), &
10912 : pad(1*md_max), pac(1*2), prim(1*9*2*md_max), scale
10913 :
10914 : INTEGER :: ma, mb, mc, md, p_index
10915 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10916 :
10917 553 : kbd(1:9*md_max) = 0.0_dp
10918 13 : kbc(1:9*2) = 0.0_dp
10919 73 : kad(1:1*md_max) = 0.0_dp
10920 13 : kac(1:1*2) = 0.0_dp
10921 13 : p_index = 0
10922 73 : DO md = 1, md_max
10923 193 : DO mc = 1, 2
10924 1260 : DO mb = 1, 9
10925 1080 : ks_bd = 0.0_dp
10926 1080 : ks_bc = 0.0_dp
10927 1080 : p_bd = pbd((md - 1)*9 + mb)
10928 1080 : p_bc = pbc((mc - 1)*9 + mb)
10929 2160 : DO ma = 1, 1
10930 1080 : p_index = p_index + 1
10931 1080 : tmp = scale*prim(p_index)
10932 1080 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10933 1080 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10934 1080 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10935 2160 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10936 : END DO
10937 1080 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
10938 1200 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
10939 : END DO
10940 : END DO
10941 : END DO
10942 13 : END SUBROUTINE block_1_9_2
10943 : ! **************************************************************************************************
10944 : !> \brief ...
10945 : !> \param mc_max ...
10946 : !> \param md_max ...
10947 : !> \param kbd ...
10948 : !> \param kbc ...
10949 : !> \param kad ...
10950 : !> \param kac ...
10951 : !> \param pbd ...
10952 : !> \param pbc ...
10953 : !> \param pad ...
10954 : !> \param pac ...
10955 : !> \param prim ...
10956 : !> \param scale ...
10957 : ! **************************************************************************************************
10958 74 : SUBROUTINE block_1_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
10959 : INTEGER :: mc_max, md_max
10960 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(1*md_max), kac(1*mc_max), pbd(9*md_max), &
10961 : pbc(9*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*9*mc_max*md_max), scale
10962 :
10963 : INTEGER :: ma, mb, mc, md, p_index
10964 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
10965 :
10966 5069 : kbd(1:9*md_max) = 0.0_dp
10967 4970 : kbc(1:9*mc_max) = 0.0_dp
10968 629 : kad(1:1*md_max) = 0.0_dp
10969 618 : kac(1:1*mc_max) = 0.0_dp
10970 : p_index = 0
10971 629 : DO md = 1, md_max
10972 5248 : DO mc = 1, mc_max
10973 46745 : DO mb = 1, 9
10974 41571 : ks_bd = 0.0_dp
10975 41571 : ks_bc = 0.0_dp
10976 41571 : p_bd = pbd((md - 1)*9 + mb)
10977 41571 : p_bc = pbc((mc - 1)*9 + mb)
10978 83142 : DO ma = 1, 1
10979 41571 : p_index = p_index + 1
10980 41571 : tmp = scale*prim(p_index)
10981 41571 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
10982 41571 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
10983 41571 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
10984 83142 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
10985 : END DO
10986 41571 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
10987 46190 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
10988 : END DO
10989 : END DO
10990 : END DO
10991 74 : END SUBROUTINE block_1_9
10992 : ! **************************************************************************************************
10993 : !> \brief ...
10994 : !> \param kbd ...
10995 : !> \param kbc ...
10996 : !> \param kad ...
10997 : !> \param kac ...
10998 : !> \param pbd ...
10999 : !> \param pbc ...
11000 : !> \param pad ...
11001 : !> \param pac ...
11002 : !> \param prim ...
11003 : !> \param scale ...
11004 : ! **************************************************************************************************
11005 9 : SUBROUTINE block_1_10_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11006 : REAL(KIND=dp) :: kbd(10*1), kbc(10*1), kad(1*1), &
11007 : kac(1*1), pbd(10*1), pbc(10*1), &
11008 : pad(1*1), pac(1*1), prim(1*10*1*1), &
11009 : scale
11010 :
11011 : INTEGER :: ma, mb, mc, md, p_index
11012 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11013 :
11014 9 : kbd(1:10*1) = 0.0_dp
11015 9 : kbc(1:10*1) = 0.0_dp
11016 9 : kad(1:1*1) = 0.0_dp
11017 9 : kac(1:1*1) = 0.0_dp
11018 9 : p_index = 0
11019 18 : DO md = 1, 1
11020 27 : DO mc = 1, 1
11021 108 : DO mb = 1, 10
11022 90 : ks_bd = 0.0_dp
11023 90 : ks_bc = 0.0_dp
11024 90 : p_bd = pbd((md - 1)*10 + mb)
11025 90 : p_bc = pbc((mc - 1)*10 + mb)
11026 180 : DO ma = 1, 1
11027 90 : p_index = p_index + 1
11028 90 : tmp = scale*prim(p_index)
11029 90 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11030 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11031 90 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11032 180 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11033 : END DO
11034 90 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
11035 99 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
11036 : END DO
11037 : END DO
11038 : END DO
11039 9 : END SUBROUTINE block_1_10_1_1
11040 : ! **************************************************************************************************
11041 : !> \brief ...
11042 : !> \param md_max ...
11043 : !> \param kbd ...
11044 : !> \param kbc ...
11045 : !> \param kad ...
11046 : !> \param kac ...
11047 : !> \param pbd ...
11048 : !> \param pbc ...
11049 : !> \param pad ...
11050 : !> \param pac ...
11051 : !> \param prim ...
11052 : !> \param scale ...
11053 : ! **************************************************************************************************
11054 37 : SUBROUTINE block_1_10_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11055 : INTEGER :: md_max
11056 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*1), kad(1*md_max), kac(1*1), pbd(10*md_max), &
11057 : pbc(10*1), pad(1*md_max), pac(1*1), prim(1*10*1*md_max), scale
11058 :
11059 : INTEGER :: ma, mb, mc, md, p_index
11060 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11061 :
11062 2777 : kbd(1:10*md_max) = 0.0_dp
11063 37 : kbc(1:10*1) = 0.0_dp
11064 311 : kad(1:1*md_max) = 0.0_dp
11065 37 : kac(1:1*1) = 0.0_dp
11066 37 : p_index = 0
11067 311 : DO md = 1, md_max
11068 585 : DO mc = 1, 1
11069 3288 : DO mb = 1, 10
11070 2740 : ks_bd = 0.0_dp
11071 2740 : ks_bc = 0.0_dp
11072 2740 : p_bd = pbd((md - 1)*10 + mb)
11073 2740 : p_bc = pbc((mc - 1)*10 + mb)
11074 5480 : DO ma = 1, 1
11075 2740 : p_index = p_index + 1
11076 2740 : tmp = scale*prim(p_index)
11077 2740 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11078 2740 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11079 2740 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11080 5480 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11081 : END DO
11082 2740 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
11083 3014 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
11084 : END DO
11085 : END DO
11086 : END DO
11087 37 : END SUBROUTINE block_1_10_1
11088 : ! **************************************************************************************************
11089 : !> \brief ...
11090 : !> \param mc_max ...
11091 : !> \param md_max ...
11092 : !> \param kbd ...
11093 : !> \param kbc ...
11094 : !> \param kad ...
11095 : !> \param kac ...
11096 : !> \param pbd ...
11097 : !> \param pbc ...
11098 : !> \param pad ...
11099 : !> \param pac ...
11100 : !> \param prim ...
11101 : !> \param scale ...
11102 : ! **************************************************************************************************
11103 175 : SUBROUTINE block_1_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11104 : INTEGER :: mc_max, md_max
11105 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(1*md_max), kac(1*mc_max), &
11106 : pbd(10*md_max), pbc(10*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*10*mc_max*md_max), &
11107 : scale
11108 :
11109 : INTEGER :: ma, mb, mc, md, p_index
11110 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11111 :
11112 12895 : kbd(1:10*md_max) = 0.0_dp
11113 10475 : kbc(1:10*mc_max) = 0.0_dp
11114 1447 : kad(1:1*md_max) = 0.0_dp
11115 1205 : kac(1:1*mc_max) = 0.0_dp
11116 : p_index = 0
11117 1447 : DO md = 1, md_max
11118 9738 : DO mc = 1, mc_max
11119 92473 : DO mb = 1, 10
11120 82910 : ks_bd = 0.0_dp
11121 82910 : ks_bc = 0.0_dp
11122 82910 : p_bd = pbd((md - 1)*10 + mb)
11123 82910 : p_bc = pbc((mc - 1)*10 + mb)
11124 165820 : DO ma = 1, 1
11125 82910 : p_index = p_index + 1
11126 82910 : tmp = scale*prim(p_index)
11127 82910 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11128 82910 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11129 82910 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11130 165820 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11131 : END DO
11132 82910 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
11133 91201 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
11134 : END DO
11135 : END DO
11136 : END DO
11137 175 : END SUBROUTINE block_1_10
11138 : ! **************************************************************************************************
11139 : !> \brief ...
11140 : !> \param kbd ...
11141 : !> \param kbc ...
11142 : !> \param kad ...
11143 : !> \param kac ...
11144 : !> \param pbd ...
11145 : !> \param pbc ...
11146 : !> \param pad ...
11147 : !> \param pac ...
11148 : !> \param prim ...
11149 : !> \param scale ...
11150 : ! **************************************************************************************************
11151 9 : SUBROUTINE block_1_11_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11152 : REAL(KIND=dp) :: kbd(11*1), kbc(11*1), kad(1*1), &
11153 : kac(1*1), pbd(11*1), pbc(11*1), &
11154 : pad(1*1), pac(1*1), prim(1*11*1*1), &
11155 : scale
11156 :
11157 : INTEGER :: ma, mb, mc, md, p_index
11158 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11159 :
11160 9 : kbd(1:11*1) = 0.0_dp
11161 9 : kbc(1:11*1) = 0.0_dp
11162 9 : kad(1:1*1) = 0.0_dp
11163 9 : kac(1:1*1) = 0.0_dp
11164 9 : p_index = 0
11165 18 : DO md = 1, 1
11166 27 : DO mc = 1, 1
11167 117 : DO mb = 1, 11
11168 99 : ks_bd = 0.0_dp
11169 99 : ks_bc = 0.0_dp
11170 99 : p_bd = pbd((md - 1)*11 + mb)
11171 99 : p_bc = pbc((mc - 1)*11 + mb)
11172 198 : DO ma = 1, 1
11173 99 : p_index = p_index + 1
11174 99 : tmp = scale*prim(p_index)
11175 99 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11176 99 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11177 99 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11178 198 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11179 : END DO
11180 99 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
11181 108 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
11182 : END DO
11183 : END DO
11184 : END DO
11185 9 : END SUBROUTINE block_1_11_1_1
11186 : ! **************************************************************************************************
11187 : !> \brief ...
11188 : !> \param md_max ...
11189 : !> \param kbd ...
11190 : !> \param kbc ...
11191 : !> \param kad ...
11192 : !> \param kac ...
11193 : !> \param pbd ...
11194 : !> \param pbc ...
11195 : !> \param pad ...
11196 : !> \param pac ...
11197 : !> \param prim ...
11198 : !> \param scale ...
11199 : ! **************************************************************************************************
11200 43 : SUBROUTINE block_1_11_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11201 : INTEGER :: md_max
11202 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*1), kad(1*md_max), kac(1*1), pbd(11*md_max), &
11203 : pbc(11*1), pad(1*md_max), pac(1*1), prim(1*11*1*md_max), scale
11204 :
11205 : INTEGER :: ma, mb, mc, md, p_index
11206 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11207 :
11208 3816 : kbd(1:11*md_max) = 0.0_dp
11209 43 : kbc(1:11*1) = 0.0_dp
11210 386 : kad(1:1*md_max) = 0.0_dp
11211 43 : kac(1:1*1) = 0.0_dp
11212 43 : p_index = 0
11213 386 : DO md = 1, md_max
11214 729 : DO mc = 1, 1
11215 4459 : DO mb = 1, 11
11216 3773 : ks_bd = 0.0_dp
11217 3773 : ks_bc = 0.0_dp
11218 3773 : p_bd = pbd((md - 1)*11 + mb)
11219 3773 : p_bc = pbc((mc - 1)*11 + mb)
11220 7546 : DO ma = 1, 1
11221 3773 : p_index = p_index + 1
11222 3773 : tmp = scale*prim(p_index)
11223 3773 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11224 3773 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11225 3773 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11226 7546 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11227 : END DO
11228 3773 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
11229 4116 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
11230 : END DO
11231 : END DO
11232 : END DO
11233 43 : END SUBROUTINE block_1_11_1
11234 : ! **************************************************************************************************
11235 : !> \brief ...
11236 : !> \param mc_max ...
11237 : !> \param md_max ...
11238 : !> \param kbd ...
11239 : !> \param kbc ...
11240 : !> \param kad ...
11241 : !> \param kac ...
11242 : !> \param pbd ...
11243 : !> \param pbc ...
11244 : !> \param pad ...
11245 : !> \param pac ...
11246 : !> \param prim ...
11247 : !> \param scale ...
11248 : ! **************************************************************************************************
11249 203 : SUBROUTINE block_1_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11250 : INTEGER :: mc_max, md_max
11251 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(1*md_max), kac(1*mc_max), &
11252 : pbd(11*md_max), pbc(11*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*11*mc_max*md_max), &
11253 : scale
11254 :
11255 : INTEGER :: ma, mb, mc, md, p_index
11256 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11257 :
11258 16802 : kbd(1:11*md_max) = 0.0_dp
11259 13205 : kbc(1:11*mc_max) = 0.0_dp
11260 1712 : kad(1:1*md_max) = 0.0_dp
11261 1385 : kac(1:1*mc_max) = 0.0_dp
11262 : p_index = 0
11263 1712 : DO md = 1, md_max
11264 11319 : DO mc = 1, mc_max
11265 116793 : DO mb = 1, 11
11266 105677 : ks_bd = 0.0_dp
11267 105677 : ks_bc = 0.0_dp
11268 105677 : p_bd = pbd((md - 1)*11 + mb)
11269 105677 : p_bc = pbc((mc - 1)*11 + mb)
11270 211354 : DO ma = 1, 1
11271 105677 : p_index = p_index + 1
11272 105677 : tmp = scale*prim(p_index)
11273 105677 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11274 105677 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11275 105677 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11276 211354 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11277 : END DO
11278 105677 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
11279 115284 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
11280 : END DO
11281 : END DO
11282 : END DO
11283 203 : END SUBROUTINE block_1_11
11284 : ! **************************************************************************************************
11285 : !> \brief ...
11286 : !> \param kbd ...
11287 : !> \param kbc ...
11288 : !> \param kad ...
11289 : !> \param kac ...
11290 : !> \param pbd ...
11291 : !> \param pbc ...
11292 : !> \param pad ...
11293 : !> \param pac ...
11294 : !> \param prim ...
11295 : !> \param scale ...
11296 : ! **************************************************************************************************
11297 5 : SUBROUTINE block_1_15_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11298 : REAL(KIND=dp) :: kbd(15*1), kbc(15*1), kad(1*1), &
11299 : kac(1*1), pbd(15*1), pbc(15*1), &
11300 : pad(1*1), pac(1*1), prim(1*15*1*1), &
11301 : scale
11302 :
11303 : INTEGER :: ma, mb, mc, md, p_index
11304 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11305 :
11306 5 : kbd(1:15*1) = 0.0_dp
11307 5 : kbc(1:15*1) = 0.0_dp
11308 5 : kad(1:1*1) = 0.0_dp
11309 5 : kac(1:1*1) = 0.0_dp
11310 5 : p_index = 0
11311 10 : DO md = 1, 1
11312 15 : DO mc = 1, 1
11313 85 : DO mb = 1, 15
11314 75 : ks_bd = 0.0_dp
11315 75 : ks_bc = 0.0_dp
11316 75 : p_bd = pbd((md - 1)*15 + mb)
11317 75 : p_bc = pbc((mc - 1)*15 + mb)
11318 150 : DO ma = 1, 1
11319 75 : p_index = p_index + 1
11320 75 : tmp = scale*prim(p_index)
11321 75 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11322 75 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11323 75 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11324 150 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11325 : END DO
11326 75 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
11327 80 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
11328 : END DO
11329 : END DO
11330 : END DO
11331 5 : END SUBROUTINE block_1_15_1_1
11332 : ! **************************************************************************************************
11333 : !> \brief ...
11334 : !> \param md_max ...
11335 : !> \param kbd ...
11336 : !> \param kbc ...
11337 : !> \param kad ...
11338 : !> \param kac ...
11339 : !> \param pbd ...
11340 : !> \param pbc ...
11341 : !> \param pad ...
11342 : !> \param pac ...
11343 : !> \param prim ...
11344 : !> \param scale ...
11345 : ! **************************************************************************************************
11346 31 : SUBROUTINE block_1_15_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11347 : INTEGER :: md_max
11348 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*1), kad(1*md_max), kac(1*1), pbd(15*md_max), &
11349 : pbc(15*1), pad(1*md_max), pac(1*1), prim(1*15*1*md_max), scale
11350 :
11351 : INTEGER :: ma, mb, mc, md, p_index
11352 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11353 :
11354 3691 : kbd(1:15*md_max) = 0.0_dp
11355 31 : kbc(1:15*1) = 0.0_dp
11356 275 : kad(1:1*md_max) = 0.0_dp
11357 31 : kac(1:1*1) = 0.0_dp
11358 31 : p_index = 0
11359 275 : DO md = 1, md_max
11360 519 : DO mc = 1, 1
11361 4148 : DO mb = 1, 15
11362 3660 : ks_bd = 0.0_dp
11363 3660 : ks_bc = 0.0_dp
11364 3660 : p_bd = pbd((md - 1)*15 + mb)
11365 3660 : p_bc = pbc((mc - 1)*15 + mb)
11366 7320 : DO ma = 1, 1
11367 3660 : p_index = p_index + 1
11368 3660 : tmp = scale*prim(p_index)
11369 3660 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11370 3660 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11371 3660 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11372 7320 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11373 : END DO
11374 3660 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
11375 3904 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
11376 : END DO
11377 : END DO
11378 : END DO
11379 31 : END SUBROUTINE block_1_15_1
11380 : ! **************************************************************************************************
11381 : !> \brief ...
11382 : !> \param mc_max ...
11383 : !> \param md_max ...
11384 : !> \param kbd ...
11385 : !> \param kbc ...
11386 : !> \param kad ...
11387 : !> \param kac ...
11388 : !> \param pbd ...
11389 : !> \param pbc ...
11390 : !> \param pad ...
11391 : !> \param pac ...
11392 : !> \param prim ...
11393 : !> \param scale ...
11394 : ! **************************************************************************************************
11395 127 : SUBROUTINE block_1_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11396 : INTEGER :: mc_max, md_max
11397 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(1*md_max), kac(1*mc_max), &
11398 : pbd(15*md_max), pbc(15*mc_max), pad(1*md_max), pac(1*mc_max), prim(1*15*mc_max*md_max), &
11399 : scale
11400 :
11401 : INTEGER :: ma, mb, mc, md, p_index
11402 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11403 :
11404 14062 : kbd(1:15*md_max) = 0.0_dp
11405 11812 : kbc(1:15*mc_max) = 0.0_dp
11406 1056 : kad(1:1*md_max) = 0.0_dp
11407 906 : kac(1:1*mc_max) = 0.0_dp
11408 : p_index = 0
11409 1056 : DO md = 1, md_max
11410 7416 : DO mc = 1, mc_max
11411 102689 : DO mb = 1, 15
11412 95400 : ks_bd = 0.0_dp
11413 95400 : ks_bc = 0.0_dp
11414 95400 : p_bd = pbd((md - 1)*15 + mb)
11415 95400 : p_bc = pbc((mc - 1)*15 + mb)
11416 190800 : DO ma = 1, 1
11417 95400 : p_index = p_index + 1
11418 95400 : tmp = scale*prim(p_index)
11419 95400 : ks_bc = ks_bc + tmp*pad((md - 1)*1 + ma)
11420 95400 : ks_bd = ks_bd + tmp*pac((mc - 1)*1 + ma)
11421 95400 : kad((md - 1)*1 + ma) = kad((md - 1)*1 + ma) - tmp*p_bc
11422 190800 : kac((mc - 1)*1 + ma) = kac((mc - 1)*1 + ma) - tmp*p_bd
11423 : END DO
11424 95400 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
11425 101760 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
11426 : END DO
11427 : END DO
11428 : END DO
11429 127 : END SUBROUTINE block_1_15
11430 : ! **************************************************************************************************
11431 : !> \brief ...
11432 : !> \param kbd ...
11433 : !> \param kbc ...
11434 : !> \param kad ...
11435 : !> \param kac ...
11436 : !> \param pbd ...
11437 : !> \param pbc ...
11438 : !> \param pad ...
11439 : !> \param pac ...
11440 : !> \param prim ...
11441 : !> \param scale ...
11442 : ! **************************************************************************************************
11443 14170 : SUBROUTINE block_2_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11444 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(2*1), kac(2*1), &
11445 : pbd(1*1), pbc(1*1), pad(2*1), &
11446 : pac(2*1), prim(2*1*1*1), scale
11447 :
11448 : INTEGER :: ma, mb, mc, md, p_index
11449 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11450 :
11451 14170 : kbd(1:1*1) = 0.0_dp
11452 14170 : kbc(1:1*1) = 0.0_dp
11453 14170 : kad(1:2*1) = 0.0_dp
11454 14170 : kac(1:2*1) = 0.0_dp
11455 14170 : p_index = 0
11456 28340 : DO md = 1, 1
11457 42510 : DO mc = 1, 1
11458 42510 : DO mb = 1, 1
11459 14170 : ks_bd = 0.0_dp
11460 14170 : ks_bc = 0.0_dp
11461 14170 : p_bd = pbd((md - 1)*1 + mb)
11462 14170 : p_bc = pbc((mc - 1)*1 + mb)
11463 42510 : DO ma = 1, 2
11464 28340 : p_index = p_index + 1
11465 28340 : tmp = scale*prim(p_index)
11466 28340 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11467 28340 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11468 28340 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11469 42510 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11470 : END DO
11471 14170 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11472 28340 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11473 : END DO
11474 : END DO
11475 : END DO
11476 14170 : END SUBROUTINE block_2_1_1_1
11477 : ! **************************************************************************************************
11478 : !> \brief ...
11479 : !> \param kbd ...
11480 : !> \param kbc ...
11481 : !> \param kad ...
11482 : !> \param kac ...
11483 : !> \param pbd ...
11484 : !> \param pbc ...
11485 : !> \param pad ...
11486 : !> \param pac ...
11487 : !> \param prim ...
11488 : !> \param scale ...
11489 : ! **************************************************************************************************
11490 1913 : SUBROUTINE block_2_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11491 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(2*2), kac(2*1), &
11492 : pbd(1*2), pbc(1*1), pad(2*2), &
11493 : pac(2*1), prim(2*1*1*2), scale
11494 :
11495 : INTEGER :: ma, mb, mc, md, p_index
11496 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11497 :
11498 1913 : kbd(1:1*2) = 0.0_dp
11499 1913 : kbc(1:1*1) = 0.0_dp
11500 1913 : kad(1:2*2) = 0.0_dp
11501 1913 : kac(1:2*1) = 0.0_dp
11502 1913 : p_index = 0
11503 5739 : DO md = 1, 2
11504 9565 : DO mc = 1, 1
11505 11478 : DO mb = 1, 1
11506 3826 : ks_bd = 0.0_dp
11507 3826 : ks_bc = 0.0_dp
11508 3826 : p_bd = pbd((md - 1)*1 + mb)
11509 3826 : p_bc = pbc((mc - 1)*1 + mb)
11510 11478 : DO ma = 1, 2
11511 7652 : p_index = p_index + 1
11512 7652 : tmp = scale*prim(p_index)
11513 7652 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11514 7652 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11515 7652 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11516 11478 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11517 : END DO
11518 3826 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11519 7652 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11520 : END DO
11521 : END DO
11522 : END DO
11523 1913 : END SUBROUTINE block_2_1_1_2
11524 : ! **************************************************************************************************
11525 : !> \brief ...
11526 : !> \param kbd ...
11527 : !> \param kbc ...
11528 : !> \param kad ...
11529 : !> \param kac ...
11530 : !> \param pbd ...
11531 : !> \param pbc ...
11532 : !> \param pad ...
11533 : !> \param pac ...
11534 : !> \param prim ...
11535 : !> \param scale ...
11536 : ! **************************************************************************************************
11537 12668 : SUBROUTINE block_2_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11538 : REAL(KIND=dp) :: kbd(1*3), kbc(1*1), kad(2*3), kac(2*1), &
11539 : pbd(1*3), pbc(1*1), pad(2*3), &
11540 : pac(2*1), prim(2*1*1*3), scale
11541 :
11542 : INTEGER :: ma, mb, mc, md, p_index
11543 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11544 :
11545 12668 : kbd(1:1*3) = 0.0_dp
11546 12668 : kbc(1:1*1) = 0.0_dp
11547 12668 : kad(1:2*3) = 0.0_dp
11548 12668 : kac(1:2*1) = 0.0_dp
11549 12668 : p_index = 0
11550 50672 : DO md = 1, 3
11551 88676 : DO mc = 1, 1
11552 114012 : DO mb = 1, 1
11553 38004 : ks_bd = 0.0_dp
11554 38004 : ks_bc = 0.0_dp
11555 38004 : p_bd = pbd((md - 1)*1 + mb)
11556 38004 : p_bc = pbc((mc - 1)*1 + mb)
11557 114012 : DO ma = 1, 2
11558 76008 : p_index = p_index + 1
11559 76008 : tmp = scale*prim(p_index)
11560 76008 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11561 76008 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11562 76008 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11563 114012 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11564 : END DO
11565 38004 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11566 76008 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11567 : END DO
11568 : END DO
11569 : END DO
11570 12668 : END SUBROUTINE block_2_1_1_3
11571 : ! **************************************************************************************************
11572 : !> \brief ...
11573 : !> \param kbd ...
11574 : !> \param kbc ...
11575 : !> \param kad ...
11576 : !> \param kac ...
11577 : !> \param pbd ...
11578 : !> \param pbc ...
11579 : !> \param pad ...
11580 : !> \param pac ...
11581 : !> \param prim ...
11582 : !> \param scale ...
11583 : ! **************************************************************************************************
11584 4 : SUBROUTINE block_2_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11585 : REAL(KIND=dp) :: kbd(1*4), kbc(1*1), kad(2*4), kac(2*1), &
11586 : pbd(1*4), pbc(1*1), pad(2*4), &
11587 : pac(2*1), prim(2*1*1*4), scale
11588 :
11589 : INTEGER :: ma, mb, mc, md, p_index
11590 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11591 :
11592 4 : kbd(1:1*4) = 0.0_dp
11593 4 : kbc(1:1*1) = 0.0_dp
11594 4 : kad(1:2*4) = 0.0_dp
11595 4 : kac(1:2*1) = 0.0_dp
11596 4 : p_index = 0
11597 20 : DO md = 1, 4
11598 36 : DO mc = 1, 1
11599 48 : DO mb = 1, 1
11600 16 : ks_bd = 0.0_dp
11601 16 : ks_bc = 0.0_dp
11602 16 : p_bd = pbd((md - 1)*1 + mb)
11603 16 : p_bc = pbc((mc - 1)*1 + mb)
11604 48 : DO ma = 1, 2
11605 32 : p_index = p_index + 1
11606 32 : tmp = scale*prim(p_index)
11607 32 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11608 32 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11609 32 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11610 48 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11611 : END DO
11612 16 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11613 32 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11614 : END DO
11615 : END DO
11616 : END DO
11617 4 : END SUBROUTINE block_2_1_1_4
11618 : ! **************************************************************************************************
11619 : !> \brief ...
11620 : !> \param kbd ...
11621 : !> \param kbc ...
11622 : !> \param kad ...
11623 : !> \param kac ...
11624 : !> \param pbd ...
11625 : !> \param pbc ...
11626 : !> \param pad ...
11627 : !> \param pac ...
11628 : !> \param prim ...
11629 : !> \param scale ...
11630 : ! **************************************************************************************************
11631 4061 : SUBROUTINE block_2_1_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11632 : REAL(KIND=dp) :: kbd(1*5), kbc(1*1), kad(2*5), kac(2*1), &
11633 : pbd(1*5), pbc(1*1), pad(2*5), &
11634 : pac(2*1), prim(2*1*1*5), scale
11635 :
11636 : INTEGER :: ma, mb, mc, md, p_index
11637 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11638 :
11639 4061 : kbd(1:1*5) = 0.0_dp
11640 4061 : kbc(1:1*1) = 0.0_dp
11641 4061 : kad(1:2*5) = 0.0_dp
11642 4061 : kac(1:2*1) = 0.0_dp
11643 4061 : p_index = 0
11644 24366 : DO md = 1, 5
11645 44671 : DO mc = 1, 1
11646 60915 : DO mb = 1, 1
11647 20305 : ks_bd = 0.0_dp
11648 20305 : ks_bc = 0.0_dp
11649 20305 : p_bd = pbd((md - 1)*1 + mb)
11650 20305 : p_bc = pbc((mc - 1)*1 + mb)
11651 60915 : DO ma = 1, 2
11652 40610 : p_index = p_index + 1
11653 40610 : tmp = scale*prim(p_index)
11654 40610 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11655 40610 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11656 40610 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11657 60915 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11658 : END DO
11659 20305 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11660 40610 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11661 : END DO
11662 : END DO
11663 : END DO
11664 4061 : END SUBROUTINE block_2_1_1_5
11665 : ! **************************************************************************************************
11666 : !> \brief ...
11667 : !> \param kbd ...
11668 : !> \param kbc ...
11669 : !> \param kad ...
11670 : !> \param kac ...
11671 : !> \param pbd ...
11672 : !> \param pbc ...
11673 : !> \param pad ...
11674 : !> \param pac ...
11675 : !> \param prim ...
11676 : !> \param scale ...
11677 : ! **************************************************************************************************
11678 5 : SUBROUTINE block_2_1_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11679 : REAL(KIND=dp) :: kbd(1*6), kbc(1*1), kad(2*6), kac(2*1), &
11680 : pbd(1*6), pbc(1*1), pad(2*6), &
11681 : pac(2*1), prim(2*1*1*6), scale
11682 :
11683 : INTEGER :: ma, mb, mc, md, p_index
11684 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11685 :
11686 5 : kbd(1:1*6) = 0.0_dp
11687 5 : kbc(1:1*1) = 0.0_dp
11688 5 : kad(1:2*6) = 0.0_dp
11689 5 : kac(1:2*1) = 0.0_dp
11690 5 : p_index = 0
11691 35 : DO md = 1, 6
11692 65 : DO mc = 1, 1
11693 90 : DO mb = 1, 1
11694 30 : ks_bd = 0.0_dp
11695 30 : ks_bc = 0.0_dp
11696 30 : p_bd = pbd((md - 1)*1 + mb)
11697 30 : p_bc = pbc((mc - 1)*1 + mb)
11698 90 : DO ma = 1, 2
11699 60 : p_index = p_index + 1
11700 60 : tmp = scale*prim(p_index)
11701 60 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11702 60 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11703 60 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11704 90 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11705 : END DO
11706 30 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11707 60 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11708 : END DO
11709 : END DO
11710 : END DO
11711 5 : END SUBROUTINE block_2_1_1_6
11712 : ! **************************************************************************************************
11713 : !> \brief ...
11714 : !> \param kbd ...
11715 : !> \param kbc ...
11716 : !> \param kad ...
11717 : !> \param kac ...
11718 : !> \param pbd ...
11719 : !> \param pbc ...
11720 : !> \param pad ...
11721 : !> \param pac ...
11722 : !> \param prim ...
11723 : !> \param scale ...
11724 : ! **************************************************************************************************
11725 716 : SUBROUTINE block_2_1_1_7(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11726 : REAL(KIND=dp) :: kbd(1*7), kbc(1*1), kad(2*7), kac(2*1), &
11727 : pbd(1*7), pbc(1*1), pad(2*7), &
11728 : pac(2*1), prim(2*1*1*7), scale
11729 :
11730 : INTEGER :: ma, mb, mc, md, p_index
11731 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11732 :
11733 716 : kbd(1:1*7) = 0.0_dp
11734 716 : kbc(1:1*1) = 0.0_dp
11735 716 : kad(1:2*7) = 0.0_dp
11736 716 : kac(1:2*1) = 0.0_dp
11737 716 : p_index = 0
11738 5728 : DO md = 1, 7
11739 10740 : DO mc = 1, 1
11740 15036 : DO mb = 1, 1
11741 5012 : ks_bd = 0.0_dp
11742 5012 : ks_bc = 0.0_dp
11743 5012 : p_bd = pbd((md - 1)*1 + mb)
11744 5012 : p_bc = pbc((mc - 1)*1 + mb)
11745 15036 : DO ma = 1, 2
11746 10024 : p_index = p_index + 1
11747 10024 : tmp = scale*prim(p_index)
11748 10024 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11749 10024 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11750 10024 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11751 15036 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11752 : END DO
11753 5012 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11754 10024 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11755 : END DO
11756 : END DO
11757 : END DO
11758 716 : END SUBROUTINE block_2_1_1_7
11759 : ! **************************************************************************************************
11760 : !> \brief ...
11761 : !> \param kbd ...
11762 : !> \param kbc ...
11763 : !> \param kad ...
11764 : !> \param kac ...
11765 : !> \param pbd ...
11766 : !> \param pbc ...
11767 : !> \param pad ...
11768 : !> \param pac ...
11769 : !> \param prim ...
11770 : !> \param scale ...
11771 : ! **************************************************************************************************
11772 4 : SUBROUTINE block_2_1_1_9(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11773 : REAL(KIND=dp) :: kbd(1*9), kbc(1*1), kad(2*9), kac(2*1), &
11774 : pbd(1*9), pbc(1*1), pad(2*9), &
11775 : pac(2*1), prim(2*1*1*9), scale
11776 :
11777 : INTEGER :: ma, mb, mc, md, p_index
11778 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11779 :
11780 4 : kbd(1:1*9) = 0.0_dp
11781 4 : kbc(1:1*1) = 0.0_dp
11782 4 : kad(1:2*9) = 0.0_dp
11783 4 : kac(1:2*1) = 0.0_dp
11784 4 : p_index = 0
11785 40 : DO md = 1, 9
11786 76 : DO mc = 1, 1
11787 108 : DO mb = 1, 1
11788 36 : ks_bd = 0.0_dp
11789 36 : ks_bc = 0.0_dp
11790 36 : p_bd = pbd((md - 1)*1 + mb)
11791 36 : p_bc = pbc((mc - 1)*1 + mb)
11792 108 : DO ma = 1, 2
11793 72 : p_index = p_index + 1
11794 72 : tmp = scale*prim(p_index)
11795 72 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11796 72 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11797 72 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11798 108 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11799 : END DO
11800 36 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11801 72 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11802 : END DO
11803 : END DO
11804 : END DO
11805 4 : END SUBROUTINE block_2_1_1_9
11806 : ! **************************************************************************************************
11807 : !> \brief ...
11808 : !> \param md_max ...
11809 : !> \param kbd ...
11810 : !> \param kbc ...
11811 : !> \param kad ...
11812 : !> \param kac ...
11813 : !> \param pbd ...
11814 : !> \param pbc ...
11815 : !> \param pad ...
11816 : !> \param pac ...
11817 : !> \param prim ...
11818 : !> \param scale ...
11819 : ! **************************************************************************************************
11820 10 : SUBROUTINE block_2_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11821 : INTEGER :: md_max
11822 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(2*md_max), kac(2*1), pbd(1*md_max), pbc(1*1), &
11823 : pad(2*md_max), pac(2*1), prim(2*1*1*md_max), scale
11824 :
11825 : INTEGER :: ma, mb, mc, md, p_index
11826 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11827 :
11828 133 : kbd(1:1*md_max) = 0.0_dp
11829 10 : kbc(1:1*1) = 0.0_dp
11830 256 : kad(1:2*md_max) = 0.0_dp
11831 10 : kac(1:2*1) = 0.0_dp
11832 10 : p_index = 0
11833 133 : DO md = 1, md_max
11834 256 : DO mc = 1, 1
11835 369 : DO mb = 1, 1
11836 123 : ks_bd = 0.0_dp
11837 123 : ks_bc = 0.0_dp
11838 123 : p_bd = pbd((md - 1)*1 + mb)
11839 123 : p_bc = pbc((mc - 1)*1 + mb)
11840 369 : DO ma = 1, 2
11841 246 : p_index = p_index + 1
11842 246 : tmp = scale*prim(p_index)
11843 246 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11844 246 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11845 246 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11846 369 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11847 : END DO
11848 123 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11849 246 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11850 : END DO
11851 : END DO
11852 : END DO
11853 10 : END SUBROUTINE block_2_1_1
11854 : ! **************************************************************************************************
11855 : !> \brief ...
11856 : !> \param kbd ...
11857 : !> \param kbc ...
11858 : !> \param kad ...
11859 : !> \param kac ...
11860 : !> \param pbd ...
11861 : !> \param pbc ...
11862 : !> \param pad ...
11863 : !> \param pac ...
11864 : !> \param prim ...
11865 : !> \param scale ...
11866 : ! **************************************************************************************************
11867 4991 : SUBROUTINE block_2_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11868 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(2*1), kac(2*2), &
11869 : pbd(1*1), pbc(1*2), pad(2*1), &
11870 : pac(2*2), prim(2*1*2*1), scale
11871 :
11872 : INTEGER :: ma, mb, mc, md, p_index
11873 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11874 :
11875 4991 : kbd(1:1*1) = 0.0_dp
11876 4991 : kbc(1:1*2) = 0.0_dp
11877 4991 : kad(1:2*1) = 0.0_dp
11878 4991 : kac(1:2*2) = 0.0_dp
11879 4991 : p_index = 0
11880 9982 : DO md = 1, 1
11881 19964 : DO mc = 1, 2
11882 24955 : DO mb = 1, 1
11883 9982 : ks_bd = 0.0_dp
11884 9982 : ks_bc = 0.0_dp
11885 9982 : p_bd = pbd((md - 1)*1 + mb)
11886 9982 : p_bc = pbc((mc - 1)*1 + mb)
11887 29946 : DO ma = 1, 2
11888 19964 : p_index = p_index + 1
11889 19964 : tmp = scale*prim(p_index)
11890 19964 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11891 19964 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11892 19964 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11893 29946 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11894 : END DO
11895 9982 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11896 19964 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11897 : END DO
11898 : END DO
11899 : END DO
11900 4991 : END SUBROUTINE block_2_1_2_1
11901 : ! **************************************************************************************************
11902 : !> \brief ...
11903 : !> \param kbd ...
11904 : !> \param kbc ...
11905 : !> \param kad ...
11906 : !> \param kac ...
11907 : !> \param pbd ...
11908 : !> \param pbc ...
11909 : !> \param pad ...
11910 : !> \param pac ...
11911 : !> \param prim ...
11912 : !> \param scale ...
11913 : ! **************************************************************************************************
11914 915 : SUBROUTINE block_2_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11915 : REAL(KIND=dp) :: kbd(1*2), kbc(1*2), kad(2*2), kac(2*2), &
11916 : pbd(1*2), pbc(1*2), pad(2*2), &
11917 : pac(2*2), prim(2*1*2*2), scale
11918 :
11919 : INTEGER :: ma, mb, mc, md, p_index
11920 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11921 :
11922 915 : kbd(1:1*2) = 0.0_dp
11923 915 : kbc(1:1*2) = 0.0_dp
11924 915 : kad(1:2*2) = 0.0_dp
11925 915 : kac(1:2*2) = 0.0_dp
11926 915 : p_index = 0
11927 2745 : DO md = 1, 2
11928 6405 : DO mc = 1, 2
11929 9150 : DO mb = 1, 1
11930 3660 : ks_bd = 0.0_dp
11931 3660 : ks_bc = 0.0_dp
11932 3660 : p_bd = pbd((md - 1)*1 + mb)
11933 3660 : p_bc = pbc((mc - 1)*1 + mb)
11934 10980 : DO ma = 1, 2
11935 7320 : p_index = p_index + 1
11936 7320 : tmp = scale*prim(p_index)
11937 7320 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11938 7320 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11939 7320 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11940 10980 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11941 : END DO
11942 3660 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11943 7320 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11944 : END DO
11945 : END DO
11946 : END DO
11947 915 : END SUBROUTINE block_2_1_2_2
11948 : ! **************************************************************************************************
11949 : !> \brief ...
11950 : !> \param kbd ...
11951 : !> \param kbc ...
11952 : !> \param kad ...
11953 : !> \param kac ...
11954 : !> \param pbd ...
11955 : !> \param pbc ...
11956 : !> \param pad ...
11957 : !> \param pac ...
11958 : !> \param prim ...
11959 : !> \param scale ...
11960 : ! **************************************************************************************************
11961 4810 : SUBROUTINE block_2_1_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
11962 : REAL(KIND=dp) :: kbd(1*3), kbc(1*2), kad(2*3), kac(2*2), &
11963 : pbd(1*3), pbc(1*2), pad(2*3), &
11964 : pac(2*2), prim(2*1*2*3), scale
11965 :
11966 : INTEGER :: ma, mb, mc, md, p_index
11967 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
11968 :
11969 4810 : kbd(1:1*3) = 0.0_dp
11970 4810 : kbc(1:1*2) = 0.0_dp
11971 4810 : kad(1:2*3) = 0.0_dp
11972 4810 : kac(1:2*2) = 0.0_dp
11973 4810 : p_index = 0
11974 19240 : DO md = 1, 3
11975 48100 : DO mc = 1, 2
11976 72150 : DO mb = 1, 1
11977 28860 : ks_bd = 0.0_dp
11978 28860 : ks_bc = 0.0_dp
11979 28860 : p_bd = pbd((md - 1)*1 + mb)
11980 28860 : p_bc = pbc((mc - 1)*1 + mb)
11981 86580 : DO ma = 1, 2
11982 57720 : p_index = p_index + 1
11983 57720 : tmp = scale*prim(p_index)
11984 57720 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
11985 57720 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
11986 57720 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
11987 86580 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
11988 : END DO
11989 28860 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
11990 57720 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
11991 : END DO
11992 : END DO
11993 : END DO
11994 4810 : END SUBROUTINE block_2_1_2_3
11995 : ! **************************************************************************************************
11996 : !> \brief ...
11997 : !> \param kbd ...
11998 : !> \param kbc ...
11999 : !> \param kad ...
12000 : !> \param kac ...
12001 : !> \param pbd ...
12002 : !> \param pbc ...
12003 : !> \param pad ...
12004 : !> \param pac ...
12005 : !> \param prim ...
12006 : !> \param scale ...
12007 : ! **************************************************************************************************
12008 3 : SUBROUTINE block_2_1_2_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12009 : REAL(KIND=dp) :: kbd(1*4), kbc(1*2), kad(2*4), kac(2*2), &
12010 : pbd(1*4), pbc(1*2), pad(2*4), &
12011 : pac(2*2), prim(2*1*2*4), scale
12012 :
12013 : INTEGER :: ma, mb, mc, md, p_index
12014 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12015 :
12016 3 : kbd(1:1*4) = 0.0_dp
12017 3 : kbc(1:1*2) = 0.0_dp
12018 3 : kad(1:2*4) = 0.0_dp
12019 3 : kac(1:2*2) = 0.0_dp
12020 3 : p_index = 0
12021 15 : DO md = 1, 4
12022 39 : DO mc = 1, 2
12023 60 : DO mb = 1, 1
12024 24 : ks_bd = 0.0_dp
12025 24 : ks_bc = 0.0_dp
12026 24 : p_bd = pbd((md - 1)*1 + mb)
12027 24 : p_bc = pbc((mc - 1)*1 + mb)
12028 72 : DO ma = 1, 2
12029 48 : p_index = p_index + 1
12030 48 : tmp = scale*prim(p_index)
12031 48 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12032 48 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12033 48 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12034 72 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12035 : END DO
12036 24 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12037 48 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12038 : END DO
12039 : END DO
12040 : END DO
12041 3 : END SUBROUTINE block_2_1_2_4
12042 : ! **************************************************************************************************
12043 : !> \brief ...
12044 : !> \param md_max ...
12045 : !> \param kbd ...
12046 : !> \param kbc ...
12047 : !> \param kad ...
12048 : !> \param kac ...
12049 : !> \param pbd ...
12050 : !> \param pbc ...
12051 : !> \param pad ...
12052 : !> \param pac ...
12053 : !> \param prim ...
12054 : !> \param scale ...
12055 : ! **************************************************************************************************
12056 2097 : SUBROUTINE block_2_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12057 : INTEGER :: md_max
12058 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(2*md_max), kac(2*2), pbd(1*md_max), pbc(1*2), &
12059 : pad(2*md_max), pac(2*2), prim(2*1*2*md_max), scale
12060 :
12061 : INTEGER :: ma, mb, mc, md, p_index
12062 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12063 :
12064 13152 : kbd(1:1*md_max) = 0.0_dp
12065 2097 : kbc(1:1*2) = 0.0_dp
12066 24207 : kad(1:2*md_max) = 0.0_dp
12067 2097 : kac(1:2*2) = 0.0_dp
12068 2097 : p_index = 0
12069 13152 : DO md = 1, md_max
12070 35262 : DO mc = 1, 2
12071 55275 : DO mb = 1, 1
12072 22110 : ks_bd = 0.0_dp
12073 22110 : ks_bc = 0.0_dp
12074 22110 : p_bd = pbd((md - 1)*1 + mb)
12075 22110 : p_bc = pbc((mc - 1)*1 + mb)
12076 66330 : DO ma = 1, 2
12077 44220 : p_index = p_index + 1
12078 44220 : tmp = scale*prim(p_index)
12079 44220 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12080 44220 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12081 44220 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12082 66330 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12083 : END DO
12084 22110 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12085 44220 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12086 : END DO
12087 : END DO
12088 : END DO
12089 2097 : END SUBROUTINE block_2_1_2
12090 : ! **************************************************************************************************
12091 : !> \brief ...
12092 : !> \param kbd ...
12093 : !> \param kbc ...
12094 : !> \param kad ...
12095 : !> \param kac ...
12096 : !> \param pbd ...
12097 : !> \param pbc ...
12098 : !> \param pad ...
12099 : !> \param pac ...
12100 : !> \param prim ...
12101 : !> \param scale ...
12102 : ! **************************************************************************************************
12103 17798 : SUBROUTINE block_2_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12104 : REAL(KIND=dp) :: kbd(1*1), kbc(1*3), kad(2*1), kac(2*3), &
12105 : pbd(1*1), pbc(1*3), pad(2*1), &
12106 : pac(2*3), prim(2*1*3*1), scale
12107 :
12108 : INTEGER :: ma, mb, mc, md, p_index
12109 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12110 :
12111 17798 : kbd(1:1*1) = 0.0_dp
12112 17798 : kbc(1:1*3) = 0.0_dp
12113 17798 : kad(1:2*1) = 0.0_dp
12114 17798 : kac(1:2*3) = 0.0_dp
12115 17798 : p_index = 0
12116 35596 : DO md = 1, 1
12117 88990 : DO mc = 1, 3
12118 124586 : DO mb = 1, 1
12119 53394 : ks_bd = 0.0_dp
12120 53394 : ks_bc = 0.0_dp
12121 53394 : p_bd = pbd((md - 1)*1 + mb)
12122 53394 : p_bc = pbc((mc - 1)*1 + mb)
12123 160182 : DO ma = 1, 2
12124 106788 : p_index = p_index + 1
12125 106788 : tmp = scale*prim(p_index)
12126 106788 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12127 106788 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12128 106788 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12129 160182 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12130 : END DO
12131 53394 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12132 106788 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12133 : END DO
12134 : END DO
12135 : END DO
12136 17798 : END SUBROUTINE block_2_1_3_1
12137 : ! **************************************************************************************************
12138 : !> \brief ...
12139 : !> \param kbd ...
12140 : !> \param kbc ...
12141 : !> \param kad ...
12142 : !> \param kac ...
12143 : !> \param pbd ...
12144 : !> \param pbc ...
12145 : !> \param pad ...
12146 : !> \param pac ...
12147 : !> \param prim ...
12148 : !> \param scale ...
12149 : ! **************************************************************************************************
12150 2759 : SUBROUTINE block_2_1_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12151 : REAL(KIND=dp) :: kbd(1*2), kbc(1*3), kad(2*2), kac(2*3), &
12152 : pbd(1*2), pbc(1*3), pad(2*2), &
12153 : pac(2*3), prim(2*1*3*2), scale
12154 :
12155 : INTEGER :: ma, mb, mc, md, p_index
12156 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12157 :
12158 2759 : kbd(1:1*2) = 0.0_dp
12159 2759 : kbc(1:1*3) = 0.0_dp
12160 2759 : kad(1:2*2) = 0.0_dp
12161 2759 : kac(1:2*3) = 0.0_dp
12162 2759 : p_index = 0
12163 8277 : DO md = 1, 2
12164 24831 : DO mc = 1, 3
12165 38626 : DO mb = 1, 1
12166 16554 : ks_bd = 0.0_dp
12167 16554 : ks_bc = 0.0_dp
12168 16554 : p_bd = pbd((md - 1)*1 + mb)
12169 16554 : p_bc = pbc((mc - 1)*1 + mb)
12170 49662 : DO ma = 1, 2
12171 33108 : p_index = p_index + 1
12172 33108 : tmp = scale*prim(p_index)
12173 33108 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12174 33108 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12175 33108 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12176 49662 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12177 : END DO
12178 16554 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12179 33108 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12180 : END DO
12181 : END DO
12182 : END DO
12183 2759 : END SUBROUTINE block_2_1_3_2
12184 : ! **************************************************************************************************
12185 : !> \brief ...
12186 : !> \param kbd ...
12187 : !> \param kbc ...
12188 : !> \param kad ...
12189 : !> \param kac ...
12190 : !> \param pbd ...
12191 : !> \param pbc ...
12192 : !> \param pad ...
12193 : !> \param pac ...
12194 : !> \param prim ...
12195 : !> \param scale ...
12196 : ! **************************************************************************************************
12197 16799 : SUBROUTINE block_2_1_3_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12198 : REAL(KIND=dp) :: kbd(1*3), kbc(1*3), kad(2*3), kac(2*3), &
12199 : pbd(1*3), pbc(1*3), pad(2*3), &
12200 : pac(2*3), prim(2*1*3*3), scale
12201 :
12202 : INTEGER :: ma, mb, mc, md, p_index
12203 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12204 :
12205 16799 : kbd(1:1*3) = 0.0_dp
12206 16799 : kbc(1:1*3) = 0.0_dp
12207 16799 : kad(1:2*3) = 0.0_dp
12208 16799 : kac(1:2*3) = 0.0_dp
12209 16799 : p_index = 0
12210 67196 : DO md = 1, 3
12211 218387 : DO mc = 1, 3
12212 352779 : DO mb = 1, 1
12213 151191 : ks_bd = 0.0_dp
12214 151191 : ks_bc = 0.0_dp
12215 151191 : p_bd = pbd((md - 1)*1 + mb)
12216 151191 : p_bc = pbc((mc - 1)*1 + mb)
12217 453573 : DO ma = 1, 2
12218 302382 : p_index = p_index + 1
12219 302382 : tmp = scale*prim(p_index)
12220 302382 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12221 302382 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12222 302382 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12223 453573 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12224 : END DO
12225 151191 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12226 302382 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12227 : END DO
12228 : END DO
12229 : END DO
12230 16799 : END SUBROUTINE block_2_1_3_3
12231 : ! **************************************************************************************************
12232 : !> \brief ...
12233 : !> \param md_max ...
12234 : !> \param kbd ...
12235 : !> \param kbc ...
12236 : !> \param kad ...
12237 : !> \param kac ...
12238 : !> \param pbd ...
12239 : !> \param pbc ...
12240 : !> \param pad ...
12241 : !> \param pac ...
12242 : !> \param prim ...
12243 : !> \param scale ...
12244 : ! **************************************************************************************************
12245 6987 : SUBROUTINE block_2_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12246 : INTEGER :: md_max
12247 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*3), kad(2*md_max), kac(2*3), pbd(1*md_max), pbc(1*3), &
12248 : pad(2*md_max), pac(2*3), prim(2*1*3*md_max), scale
12249 :
12250 : INTEGER :: ma, mb, mc, md, p_index
12251 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12252 :
12253 43891 : kbd(1:1*md_max) = 0.0_dp
12254 6987 : kbc(1:1*3) = 0.0_dp
12255 80795 : kad(1:2*md_max) = 0.0_dp
12256 6987 : kac(1:2*3) = 0.0_dp
12257 6987 : p_index = 0
12258 43891 : DO md = 1, md_max
12259 154603 : DO mc = 1, 3
12260 258328 : DO mb = 1, 1
12261 110712 : ks_bd = 0.0_dp
12262 110712 : ks_bc = 0.0_dp
12263 110712 : p_bd = pbd((md - 1)*1 + mb)
12264 110712 : p_bc = pbc((mc - 1)*1 + mb)
12265 332136 : DO ma = 1, 2
12266 221424 : p_index = p_index + 1
12267 221424 : tmp = scale*prim(p_index)
12268 221424 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12269 221424 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12270 221424 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12271 332136 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12272 : END DO
12273 110712 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12274 221424 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12275 : END DO
12276 : END DO
12277 : END DO
12278 6987 : END SUBROUTINE block_2_1_3
12279 : ! **************************************************************************************************
12280 : !> \brief ...
12281 : !> \param kbd ...
12282 : !> \param kbc ...
12283 : !> \param kad ...
12284 : !> \param kac ...
12285 : !> \param pbd ...
12286 : !> \param pbc ...
12287 : !> \param pad ...
12288 : !> \param pac ...
12289 : !> \param prim ...
12290 : !> \param scale ...
12291 : ! **************************************************************************************************
12292 3 : SUBROUTINE block_2_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12293 : REAL(KIND=dp) :: kbd(1*1), kbc(1*4), kad(2*1), kac(2*4), &
12294 : pbd(1*1), pbc(1*4), pad(2*1), &
12295 : pac(2*4), prim(2*1*4*1), scale
12296 :
12297 : INTEGER :: ma, mb, mc, md, p_index
12298 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12299 :
12300 3 : kbd(1:1*1) = 0.0_dp
12301 3 : kbc(1:1*4) = 0.0_dp
12302 3 : kad(1:2*1) = 0.0_dp
12303 3 : kac(1:2*4) = 0.0_dp
12304 3 : p_index = 0
12305 6 : DO md = 1, 1
12306 18 : DO mc = 1, 4
12307 27 : DO mb = 1, 1
12308 12 : ks_bd = 0.0_dp
12309 12 : ks_bc = 0.0_dp
12310 12 : p_bd = pbd((md - 1)*1 + mb)
12311 12 : p_bc = pbc((mc - 1)*1 + mb)
12312 36 : DO ma = 1, 2
12313 24 : p_index = p_index + 1
12314 24 : tmp = scale*prim(p_index)
12315 24 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12316 24 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12317 24 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12318 36 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12319 : END DO
12320 12 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12321 24 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12322 : END DO
12323 : END DO
12324 : END DO
12325 3 : END SUBROUTINE block_2_1_4_1
12326 : ! **************************************************************************************************
12327 : !> \brief ...
12328 : !> \param kbd ...
12329 : !> \param kbc ...
12330 : !> \param kad ...
12331 : !> \param kac ...
12332 : !> \param pbd ...
12333 : !> \param pbc ...
12334 : !> \param pad ...
12335 : !> \param pac ...
12336 : !> \param prim ...
12337 : !> \param scale ...
12338 : ! **************************************************************************************************
12339 2 : SUBROUTINE block_2_1_4_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12340 : REAL(KIND=dp) :: kbd(1*2), kbc(1*4), kad(2*2), kac(2*4), &
12341 : pbd(1*2), pbc(1*4), pad(2*2), &
12342 : pac(2*4), prim(2*1*4*2), scale
12343 :
12344 : INTEGER :: ma, mb, mc, md, p_index
12345 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12346 :
12347 2 : kbd(1:1*2) = 0.0_dp
12348 2 : kbc(1:1*4) = 0.0_dp
12349 2 : kad(1:2*2) = 0.0_dp
12350 2 : kac(1:2*4) = 0.0_dp
12351 2 : p_index = 0
12352 6 : DO md = 1, 2
12353 22 : DO mc = 1, 4
12354 36 : DO mb = 1, 1
12355 16 : ks_bd = 0.0_dp
12356 16 : ks_bc = 0.0_dp
12357 16 : p_bd = pbd((md - 1)*1 + mb)
12358 16 : p_bc = pbc((mc - 1)*1 + mb)
12359 48 : DO ma = 1, 2
12360 32 : p_index = p_index + 1
12361 32 : tmp = scale*prim(p_index)
12362 32 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12363 32 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12364 32 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12365 48 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12366 : END DO
12367 16 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12368 32 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12369 : END DO
12370 : END DO
12371 : END DO
12372 2 : END SUBROUTINE block_2_1_4_2
12373 : ! **************************************************************************************************
12374 : !> \brief ...
12375 : !> \param md_max ...
12376 : !> \param kbd ...
12377 : !> \param kbc ...
12378 : !> \param kad ...
12379 : !> \param kac ...
12380 : !> \param pbd ...
12381 : !> \param pbc ...
12382 : !> \param pad ...
12383 : !> \param pac ...
12384 : !> \param prim ...
12385 : !> \param scale ...
12386 : ! **************************************************************************************************
12387 24 : SUBROUTINE block_2_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12388 : INTEGER :: md_max
12389 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*4), kad(2*md_max), kac(2*4), pbd(1*md_max), pbc(1*4), &
12390 : pad(2*md_max), pac(2*4), prim(2*1*4*md_max), scale
12391 :
12392 : INTEGER :: ma, mb, mc, md, p_index
12393 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12394 :
12395 199 : kbd(1:1*md_max) = 0.0_dp
12396 24 : kbc(1:1*4) = 0.0_dp
12397 374 : kad(1:2*md_max) = 0.0_dp
12398 24 : kac(1:2*4) = 0.0_dp
12399 24 : p_index = 0
12400 199 : DO md = 1, md_max
12401 899 : DO mc = 1, 4
12402 1575 : DO mb = 1, 1
12403 700 : ks_bd = 0.0_dp
12404 700 : ks_bc = 0.0_dp
12405 700 : p_bd = pbd((md - 1)*1 + mb)
12406 700 : p_bc = pbc((mc - 1)*1 + mb)
12407 2100 : DO ma = 1, 2
12408 1400 : p_index = p_index + 1
12409 1400 : tmp = scale*prim(p_index)
12410 1400 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12411 1400 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12412 1400 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12413 2100 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12414 : END DO
12415 700 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12416 1400 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12417 : END DO
12418 : END DO
12419 : END DO
12420 24 : END SUBROUTINE block_2_1_4
12421 : ! **************************************************************************************************
12422 : !> \brief ...
12423 : !> \param kbd ...
12424 : !> \param kbc ...
12425 : !> \param kad ...
12426 : !> \param kac ...
12427 : !> \param pbd ...
12428 : !> \param pbc ...
12429 : !> \param pad ...
12430 : !> \param pac ...
12431 : !> \param prim ...
12432 : !> \param scale ...
12433 : ! **************************************************************************************************
12434 10213 : SUBROUTINE block_2_1_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12435 : REAL(KIND=dp) :: kbd(1*1), kbc(1*5), kad(2*1), kac(2*5), &
12436 : pbd(1*1), pbc(1*5), pad(2*1), &
12437 : pac(2*5), prim(2*1*5*1), scale
12438 :
12439 : INTEGER :: ma, mb, mc, md, p_index
12440 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12441 :
12442 10213 : kbd(1:1*1) = 0.0_dp
12443 10213 : kbc(1:1*5) = 0.0_dp
12444 10213 : kad(1:2*1) = 0.0_dp
12445 10213 : kac(1:2*5) = 0.0_dp
12446 10213 : p_index = 0
12447 20426 : DO md = 1, 1
12448 71491 : DO mc = 1, 5
12449 112343 : DO mb = 1, 1
12450 51065 : ks_bd = 0.0_dp
12451 51065 : ks_bc = 0.0_dp
12452 51065 : p_bd = pbd((md - 1)*1 + mb)
12453 51065 : p_bc = pbc((mc - 1)*1 + mb)
12454 153195 : DO ma = 1, 2
12455 102130 : p_index = p_index + 1
12456 102130 : tmp = scale*prim(p_index)
12457 102130 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12458 102130 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12459 102130 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12460 153195 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12461 : END DO
12462 51065 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12463 102130 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12464 : END DO
12465 : END DO
12466 : END DO
12467 10213 : END SUBROUTINE block_2_1_5_1
12468 : ! **************************************************************************************************
12469 : !> \brief ...
12470 : !> \param md_max ...
12471 : !> \param kbd ...
12472 : !> \param kbc ...
12473 : !> \param kad ...
12474 : !> \param kac ...
12475 : !> \param pbd ...
12476 : !> \param pbc ...
12477 : !> \param pad ...
12478 : !> \param pac ...
12479 : !> \param prim ...
12480 : !> \param scale ...
12481 : ! **************************************************************************************************
12482 16878 : SUBROUTINE block_2_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12483 : INTEGER :: md_max
12484 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*5), kad(2*md_max), kac(2*5), pbd(1*md_max), pbc(1*5), &
12485 : pad(2*md_max), pac(2*5), prim(2*1*5*md_max), scale
12486 :
12487 : INTEGER :: ma, mb, mc, md, p_index
12488 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12489 :
12490 76985 : kbd(1:1*md_max) = 0.0_dp
12491 16878 : kbc(1:1*5) = 0.0_dp
12492 137092 : kad(1:2*md_max) = 0.0_dp
12493 16878 : kac(1:2*5) = 0.0_dp
12494 16878 : p_index = 0
12495 76985 : DO md = 1, md_max
12496 377520 : DO mc = 1, 5
12497 661177 : DO mb = 1, 1
12498 300535 : ks_bd = 0.0_dp
12499 300535 : ks_bc = 0.0_dp
12500 300535 : p_bd = pbd((md - 1)*1 + mb)
12501 300535 : p_bc = pbc((mc - 1)*1 + mb)
12502 901605 : DO ma = 1, 2
12503 601070 : p_index = p_index + 1
12504 601070 : tmp = scale*prim(p_index)
12505 601070 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12506 601070 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12507 601070 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12508 901605 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12509 : END DO
12510 300535 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12511 601070 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12512 : END DO
12513 : END DO
12514 : END DO
12515 16878 : END SUBROUTINE block_2_1_5
12516 : ! **************************************************************************************************
12517 : !> \brief ...
12518 : !> \param kbd ...
12519 : !> \param kbc ...
12520 : !> \param kad ...
12521 : !> \param kac ...
12522 : !> \param pbd ...
12523 : !> \param pbc ...
12524 : !> \param pad ...
12525 : !> \param pac ...
12526 : !> \param prim ...
12527 : !> \param scale ...
12528 : ! **************************************************************************************************
12529 1 : SUBROUTINE block_2_1_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12530 : REAL(KIND=dp) :: kbd(1*1), kbc(1*6), kad(2*1), kac(2*6), &
12531 : pbd(1*1), pbc(1*6), pad(2*1), &
12532 : pac(2*6), prim(2*1*6*1), scale
12533 :
12534 : INTEGER :: ma, mb, mc, md, p_index
12535 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12536 :
12537 1 : kbd(1:1*1) = 0.0_dp
12538 1 : kbc(1:1*6) = 0.0_dp
12539 1 : kad(1:2*1) = 0.0_dp
12540 1 : kac(1:2*6) = 0.0_dp
12541 1 : p_index = 0
12542 2 : DO md = 1, 1
12543 8 : DO mc = 1, 6
12544 13 : DO mb = 1, 1
12545 6 : ks_bd = 0.0_dp
12546 6 : ks_bc = 0.0_dp
12547 6 : p_bd = pbd((md - 1)*1 + mb)
12548 6 : p_bc = pbc((mc - 1)*1 + mb)
12549 18 : DO ma = 1, 2
12550 12 : p_index = p_index + 1
12551 12 : tmp = scale*prim(p_index)
12552 12 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12553 12 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12554 12 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12555 18 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12556 : END DO
12557 6 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12558 12 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12559 : END DO
12560 : END DO
12561 : END DO
12562 1 : END SUBROUTINE block_2_1_6_1
12563 : ! **************************************************************************************************
12564 : !> \brief ...
12565 : !> \param md_max ...
12566 : !> \param kbd ...
12567 : !> \param kbc ...
12568 : !> \param kad ...
12569 : !> \param kac ...
12570 : !> \param pbd ...
12571 : !> \param pbc ...
12572 : !> \param pad ...
12573 : !> \param pac ...
12574 : !> \param prim ...
12575 : !> \param scale ...
12576 : ! **************************************************************************************************
12577 10 : SUBROUTINE block_2_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12578 : INTEGER :: md_max
12579 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*6), kad(2*md_max), kac(2*6), pbd(1*md_max), pbc(1*6), &
12580 : pad(2*md_max), pac(2*6), prim(2*1*6*md_max), scale
12581 :
12582 : INTEGER :: ma, mb, mc, md, p_index
12583 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12584 :
12585 68 : kbd(1:1*md_max) = 0.0_dp
12586 10 : kbc(1:1*6) = 0.0_dp
12587 126 : kad(1:2*md_max) = 0.0_dp
12588 10 : kac(1:2*6) = 0.0_dp
12589 10 : p_index = 0
12590 68 : DO md = 1, md_max
12591 416 : DO mc = 1, 6
12592 754 : DO mb = 1, 1
12593 348 : ks_bd = 0.0_dp
12594 348 : ks_bc = 0.0_dp
12595 348 : p_bd = pbd((md - 1)*1 + mb)
12596 348 : p_bc = pbc((mc - 1)*1 + mb)
12597 1044 : DO ma = 1, 2
12598 696 : p_index = p_index + 1
12599 696 : tmp = scale*prim(p_index)
12600 696 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12601 696 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12602 696 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12603 1044 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12604 : END DO
12605 348 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12606 696 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12607 : END DO
12608 : END DO
12609 : END DO
12610 10 : END SUBROUTINE block_2_1_6
12611 : ! **************************************************************************************************
12612 : !> \brief ...
12613 : !> \param kbd ...
12614 : !> \param kbc ...
12615 : !> \param kad ...
12616 : !> \param kac ...
12617 : !> \param pbd ...
12618 : !> \param pbc ...
12619 : !> \param pad ...
12620 : !> \param pac ...
12621 : !> \param prim ...
12622 : !> \param scale ...
12623 : ! **************************************************************************************************
12624 713 : SUBROUTINE block_2_1_7_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12625 : REAL(KIND=dp) :: kbd(1*1), kbc(1*7), kad(2*1), kac(2*7), &
12626 : pbd(1*1), pbc(1*7), pad(2*1), &
12627 : pac(2*7), prim(2*1*7*1), scale
12628 :
12629 : INTEGER :: ma, mb, mc, md, p_index
12630 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12631 :
12632 713 : kbd(1:1*1) = 0.0_dp
12633 713 : kbc(1:1*7) = 0.0_dp
12634 713 : kad(1:2*1) = 0.0_dp
12635 713 : kac(1:2*7) = 0.0_dp
12636 713 : p_index = 0
12637 1426 : DO md = 1, 1
12638 6417 : DO mc = 1, 7
12639 10695 : DO mb = 1, 1
12640 4991 : ks_bd = 0.0_dp
12641 4991 : ks_bc = 0.0_dp
12642 4991 : p_bd = pbd((md - 1)*1 + mb)
12643 4991 : p_bc = pbc((mc - 1)*1 + mb)
12644 14973 : DO ma = 1, 2
12645 9982 : p_index = p_index + 1
12646 9982 : tmp = scale*prim(p_index)
12647 9982 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12648 9982 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12649 9982 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12650 14973 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12651 : END DO
12652 4991 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12653 9982 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12654 : END DO
12655 : END DO
12656 : END DO
12657 713 : END SUBROUTINE block_2_1_7_1
12658 : ! **************************************************************************************************
12659 : !> \brief ...
12660 : !> \param md_max ...
12661 : !> \param kbd ...
12662 : !> \param kbc ...
12663 : !> \param kad ...
12664 : !> \param kac ...
12665 : !> \param pbd ...
12666 : !> \param pbc ...
12667 : !> \param pad ...
12668 : !> \param pac ...
12669 : !> \param prim ...
12670 : !> \param scale ...
12671 : ! **************************************************************************************************
12672 2400 : SUBROUTINE block_2_1_7(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12673 : INTEGER :: md_max
12674 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*7), kad(2*md_max), kac(2*7), pbd(1*md_max), pbc(1*7), &
12675 : pad(2*md_max), pac(2*7), prim(2*1*7*md_max), scale
12676 :
12677 : INTEGER :: ma, mb, mc, md, p_index
12678 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12679 :
12680 12772 : kbd(1:1*md_max) = 0.0_dp
12681 2400 : kbc(1:1*7) = 0.0_dp
12682 23144 : kad(1:2*md_max) = 0.0_dp
12683 2400 : kac(1:2*7) = 0.0_dp
12684 2400 : p_index = 0
12685 12772 : DO md = 1, md_max
12686 85376 : DO mc = 1, 7
12687 155580 : DO mb = 1, 1
12688 72604 : ks_bd = 0.0_dp
12689 72604 : ks_bc = 0.0_dp
12690 72604 : p_bd = pbd((md - 1)*1 + mb)
12691 72604 : p_bc = pbc((mc - 1)*1 + mb)
12692 217812 : DO ma = 1, 2
12693 145208 : p_index = p_index + 1
12694 145208 : tmp = scale*prim(p_index)
12695 145208 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12696 145208 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12697 145208 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12698 217812 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12699 : END DO
12700 72604 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12701 145208 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12702 : END DO
12703 : END DO
12704 : END DO
12705 2400 : END SUBROUTINE block_2_1_7
12706 : ! **************************************************************************************************
12707 : !> \brief ...
12708 : !> \param kbd ...
12709 : !> \param kbc ...
12710 : !> \param kad ...
12711 : !> \param kac ...
12712 : !> \param pbd ...
12713 : !> \param pbc ...
12714 : !> \param pad ...
12715 : !> \param pac ...
12716 : !> \param prim ...
12717 : !> \param scale ...
12718 : ! **************************************************************************************************
12719 1 : SUBROUTINE block_2_1_9_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12720 : REAL(KIND=dp) :: kbd(1*1), kbc(1*9), kad(2*1), kac(2*9), &
12721 : pbd(1*1), pbc(1*9), pad(2*1), &
12722 : pac(2*9), prim(2*1*9*1), scale
12723 :
12724 : INTEGER :: ma, mb, mc, md, p_index
12725 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12726 :
12727 1 : kbd(1:1*1) = 0.0_dp
12728 1 : kbc(1:1*9) = 0.0_dp
12729 1 : kad(1:2*1) = 0.0_dp
12730 1 : kac(1:2*9) = 0.0_dp
12731 1 : p_index = 0
12732 2 : DO md = 1, 1
12733 11 : DO mc = 1, 9
12734 19 : DO mb = 1, 1
12735 9 : ks_bd = 0.0_dp
12736 9 : ks_bc = 0.0_dp
12737 9 : p_bd = pbd((md - 1)*1 + mb)
12738 9 : p_bc = pbc((mc - 1)*1 + mb)
12739 27 : DO ma = 1, 2
12740 18 : p_index = p_index + 1
12741 18 : tmp = scale*prim(p_index)
12742 18 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12743 18 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12744 18 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12745 27 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12746 : END DO
12747 9 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12748 18 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12749 : END DO
12750 : END DO
12751 : END DO
12752 1 : END SUBROUTINE block_2_1_9_1
12753 : ! **************************************************************************************************
12754 : !> \brief ...
12755 : !> \param md_max ...
12756 : !> \param kbd ...
12757 : !> \param kbc ...
12758 : !> \param kad ...
12759 : !> \param kac ...
12760 : !> \param pbd ...
12761 : !> \param pbc ...
12762 : !> \param pad ...
12763 : !> \param pac ...
12764 : !> \param prim ...
12765 : !> \param scale ...
12766 : ! **************************************************************************************************
12767 10 : SUBROUTINE block_2_1_9(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12768 : INTEGER :: md_max
12769 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*9), kad(2*md_max), kac(2*9), pbd(1*md_max), pbc(1*9), &
12770 : pad(2*md_max), pac(2*9), prim(2*1*9*md_max), scale
12771 :
12772 : INTEGER :: ma, mb, mc, md, p_index
12773 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12774 :
12775 66 : kbd(1:1*md_max) = 0.0_dp
12776 10 : kbc(1:1*9) = 0.0_dp
12777 122 : kad(1:2*md_max) = 0.0_dp
12778 10 : kac(1:2*9) = 0.0_dp
12779 10 : p_index = 0
12780 66 : DO md = 1, md_max
12781 570 : DO mc = 1, 9
12782 1064 : DO mb = 1, 1
12783 504 : ks_bd = 0.0_dp
12784 504 : ks_bc = 0.0_dp
12785 504 : p_bd = pbd((md - 1)*1 + mb)
12786 504 : p_bc = pbc((mc - 1)*1 + mb)
12787 1512 : DO ma = 1, 2
12788 1008 : p_index = p_index + 1
12789 1008 : tmp = scale*prim(p_index)
12790 1008 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12791 1008 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12792 1008 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12793 1512 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12794 : END DO
12795 504 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12796 1008 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12797 : END DO
12798 : END DO
12799 : END DO
12800 10 : END SUBROUTINE block_2_1_9
12801 : ! **************************************************************************************************
12802 : !> \brief ...
12803 : !> \param mc_max ...
12804 : !> \param md_max ...
12805 : !> \param kbd ...
12806 : !> \param kbc ...
12807 : !> \param kad ...
12808 : !> \param kac ...
12809 : !> \param pbd ...
12810 : !> \param pbc ...
12811 : !> \param pad ...
12812 : !> \param pac ...
12813 : !> \param prim ...
12814 : !> \param scale ...
12815 : ! **************************************************************************************************
12816 30 : SUBROUTINE block_2_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12817 : INTEGER :: mc_max, md_max
12818 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(2*md_max), kac(2*mc_max), pbd(1*md_max), &
12819 : pbc(1*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*1*mc_max*md_max), scale
12820 :
12821 : INTEGER :: ma, mb, mc, md, p_index
12822 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12823 :
12824 208 : kbd(1:1*md_max) = 0.0_dp
12825 395 : kbc(1:1*mc_max) = 0.0_dp
12826 386 : kad(1:2*md_max) = 0.0_dp
12827 760 : kac(1:2*mc_max) = 0.0_dp
12828 : p_index = 0
12829 208 : DO md = 1, md_max
12830 2411 : DO mc = 1, mc_max
12831 4584 : DO mb = 1, 1
12832 2203 : ks_bd = 0.0_dp
12833 2203 : ks_bc = 0.0_dp
12834 2203 : p_bd = pbd((md - 1)*1 + mb)
12835 2203 : p_bc = pbc((mc - 1)*1 + mb)
12836 6609 : DO ma = 1, 2
12837 4406 : p_index = p_index + 1
12838 4406 : tmp = scale*prim(p_index)
12839 4406 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12840 4406 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12841 4406 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12842 6609 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12843 : END DO
12844 2203 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
12845 4406 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
12846 : END DO
12847 : END DO
12848 : END DO
12849 30 : END SUBROUTINE block_2_1
12850 : ! **************************************************************************************************
12851 : !> \brief ...
12852 : !> \param kbd ...
12853 : !> \param kbc ...
12854 : !> \param kad ...
12855 : !> \param kac ...
12856 : !> \param pbd ...
12857 : !> \param pbc ...
12858 : !> \param pad ...
12859 : !> \param pac ...
12860 : !> \param prim ...
12861 : !> \param scale ...
12862 : ! **************************************************************************************************
12863 739 : SUBROUTINE block_2_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12864 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(2*1), kac(2*1), &
12865 : pbd(2*1), pbc(2*1), pad(2*1), &
12866 : pac(2*1), prim(2*2*1*1), scale
12867 :
12868 : INTEGER :: ma, mb, mc, md, p_index
12869 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12870 :
12871 739 : kbd(1:2*1) = 0.0_dp
12872 739 : kbc(1:2*1) = 0.0_dp
12873 739 : kad(1:2*1) = 0.0_dp
12874 739 : kac(1:2*1) = 0.0_dp
12875 739 : p_index = 0
12876 1478 : DO md = 1, 1
12877 2217 : DO mc = 1, 1
12878 2956 : DO mb = 1, 2
12879 1478 : ks_bd = 0.0_dp
12880 1478 : ks_bc = 0.0_dp
12881 1478 : p_bd = pbd((md - 1)*2 + mb)
12882 1478 : p_bc = pbc((mc - 1)*2 + mb)
12883 4434 : DO ma = 1, 2
12884 2956 : p_index = p_index + 1
12885 2956 : tmp = scale*prim(p_index)
12886 2956 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12887 2956 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12888 2956 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12889 4434 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12890 : END DO
12891 1478 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
12892 2217 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
12893 : END DO
12894 : END DO
12895 : END DO
12896 739 : END SUBROUTINE block_2_2_1_1
12897 : ! **************************************************************************************************
12898 : !> \brief ...
12899 : !> \param kbd ...
12900 : !> \param kbc ...
12901 : !> \param kad ...
12902 : !> \param kac ...
12903 : !> \param pbd ...
12904 : !> \param pbc ...
12905 : !> \param pad ...
12906 : !> \param pac ...
12907 : !> \param prim ...
12908 : !> \param scale ...
12909 : ! **************************************************************************************************
12910 314 : SUBROUTINE block_2_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12911 : REAL(KIND=dp) :: kbd(2*2), kbc(2*1), kad(2*2), kac(2*1), &
12912 : pbd(2*2), pbc(2*1), pad(2*2), &
12913 : pac(2*1), prim(2*2*1*2), scale
12914 :
12915 : INTEGER :: ma, mb, mc, md, p_index
12916 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12917 :
12918 314 : kbd(1:2*2) = 0.0_dp
12919 314 : kbc(1:2*1) = 0.0_dp
12920 314 : kad(1:2*2) = 0.0_dp
12921 314 : kac(1:2*1) = 0.0_dp
12922 314 : p_index = 0
12923 942 : DO md = 1, 2
12924 1570 : DO mc = 1, 1
12925 2512 : DO mb = 1, 2
12926 1256 : ks_bd = 0.0_dp
12927 1256 : ks_bc = 0.0_dp
12928 1256 : p_bd = pbd((md - 1)*2 + mb)
12929 1256 : p_bc = pbc((mc - 1)*2 + mb)
12930 3768 : DO ma = 1, 2
12931 2512 : p_index = p_index + 1
12932 2512 : tmp = scale*prim(p_index)
12933 2512 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12934 2512 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12935 2512 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12936 3768 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12937 : END DO
12938 1256 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
12939 1884 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
12940 : END DO
12941 : END DO
12942 : END DO
12943 314 : END SUBROUTINE block_2_2_1_2
12944 : ! **************************************************************************************************
12945 : !> \brief ...
12946 : !> \param kbd ...
12947 : !> \param kbc ...
12948 : !> \param kad ...
12949 : !> \param kac ...
12950 : !> \param pbd ...
12951 : !> \param pbc ...
12952 : !> \param pad ...
12953 : !> \param pac ...
12954 : !> \param prim ...
12955 : !> \param scale ...
12956 : ! **************************************************************************************************
12957 999 : SUBROUTINE block_2_2_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
12958 : REAL(KIND=dp) :: kbd(2*3), kbc(2*1), kad(2*3), kac(2*1), &
12959 : pbd(2*3), pbc(2*1), pad(2*3), &
12960 : pac(2*1), prim(2*2*1*3), scale
12961 :
12962 : INTEGER :: ma, mb, mc, md, p_index
12963 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
12964 :
12965 999 : kbd(1:2*3) = 0.0_dp
12966 999 : kbc(1:2*1) = 0.0_dp
12967 999 : kad(1:2*3) = 0.0_dp
12968 999 : kac(1:2*1) = 0.0_dp
12969 999 : p_index = 0
12970 3996 : DO md = 1, 3
12971 6993 : DO mc = 1, 1
12972 11988 : DO mb = 1, 2
12973 5994 : ks_bd = 0.0_dp
12974 5994 : ks_bc = 0.0_dp
12975 5994 : p_bd = pbd((md - 1)*2 + mb)
12976 5994 : p_bc = pbc((mc - 1)*2 + mb)
12977 17982 : DO ma = 1, 2
12978 11988 : p_index = p_index + 1
12979 11988 : tmp = scale*prim(p_index)
12980 11988 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
12981 11988 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
12982 11988 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
12983 17982 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
12984 : END DO
12985 5994 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
12986 8991 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
12987 : END DO
12988 : END DO
12989 : END DO
12990 999 : END SUBROUTINE block_2_2_1_3
12991 : ! **************************************************************************************************
12992 : !> \brief ...
12993 : !> \param kbd ...
12994 : !> \param kbc ...
12995 : !> \param kad ...
12996 : !> \param kac ...
12997 : !> \param pbd ...
12998 : !> \param pbc ...
12999 : !> \param pad ...
13000 : !> \param pac ...
13001 : !> \param prim ...
13002 : !> \param scale ...
13003 : ! **************************************************************************************************
13004 4 : SUBROUTINE block_2_2_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13005 : REAL(KIND=dp) :: kbd(2*4), kbc(2*1), kad(2*4), kac(2*1), &
13006 : pbd(2*4), pbc(2*1), pad(2*4), &
13007 : pac(2*1), prim(2*2*1*4), scale
13008 :
13009 : INTEGER :: ma, mb, mc, md, p_index
13010 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13011 :
13012 4 : kbd(1:2*4) = 0.0_dp
13013 4 : kbc(1:2*1) = 0.0_dp
13014 4 : kad(1:2*4) = 0.0_dp
13015 4 : kac(1:2*1) = 0.0_dp
13016 4 : p_index = 0
13017 20 : DO md = 1, 4
13018 36 : DO mc = 1, 1
13019 64 : DO mb = 1, 2
13020 32 : ks_bd = 0.0_dp
13021 32 : ks_bc = 0.0_dp
13022 32 : p_bd = pbd((md - 1)*2 + mb)
13023 32 : p_bc = pbc((mc - 1)*2 + mb)
13024 96 : DO ma = 1, 2
13025 64 : p_index = p_index + 1
13026 64 : tmp = scale*prim(p_index)
13027 64 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13028 64 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13029 64 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13030 96 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13031 : END DO
13032 32 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13033 48 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13034 : END DO
13035 : END DO
13036 : END DO
13037 4 : END SUBROUTINE block_2_2_1_4
13038 : ! **************************************************************************************************
13039 : !> \brief ...
13040 : !> \param md_max ...
13041 : !> \param kbd ...
13042 : !> \param kbc ...
13043 : !> \param kad ...
13044 : !> \param kac ...
13045 : !> \param pbd ...
13046 : !> \param pbc ...
13047 : !> \param pad ...
13048 : !> \param pac ...
13049 : !> \param prim ...
13050 : !> \param scale ...
13051 : ! **************************************************************************************************
13052 962 : SUBROUTINE block_2_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13053 : INTEGER :: md_max
13054 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(2*md_max), kac(2*1), pbd(2*md_max), pbc(2*1), &
13055 : pad(2*md_max), pac(2*1), prim(2*2*1*md_max), scale
13056 :
13057 : INTEGER :: ma, mb, mc, md, p_index
13058 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13059 :
13060 11636 : kbd(1:2*md_max) = 0.0_dp
13061 962 : kbc(1:2*1) = 0.0_dp
13062 11636 : kad(1:2*md_max) = 0.0_dp
13063 962 : kac(1:2*1) = 0.0_dp
13064 962 : p_index = 0
13065 6299 : DO md = 1, md_max
13066 11636 : DO mc = 1, 1
13067 21348 : DO mb = 1, 2
13068 10674 : ks_bd = 0.0_dp
13069 10674 : ks_bc = 0.0_dp
13070 10674 : p_bd = pbd((md - 1)*2 + mb)
13071 10674 : p_bc = pbc((mc - 1)*2 + mb)
13072 32022 : DO ma = 1, 2
13073 21348 : p_index = p_index + 1
13074 21348 : tmp = scale*prim(p_index)
13075 21348 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13076 21348 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13077 21348 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13078 32022 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13079 : END DO
13080 10674 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13081 16011 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13082 : END DO
13083 : END DO
13084 : END DO
13085 962 : END SUBROUTINE block_2_2_1
13086 : ! **************************************************************************************************
13087 : !> \brief ...
13088 : !> \param kbd ...
13089 : !> \param kbc ...
13090 : !> \param kad ...
13091 : !> \param kac ...
13092 : !> \param pbd ...
13093 : !> \param pbc ...
13094 : !> \param pad ...
13095 : !> \param pac ...
13096 : !> \param prim ...
13097 : !> \param scale ...
13098 : ! **************************************************************************************************
13099 306 : SUBROUTINE block_2_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13100 : REAL(KIND=dp) :: kbd(2*1), kbc(2*2), kad(2*1), kac(2*2), &
13101 : pbd(2*1), pbc(2*2), pad(2*1), &
13102 : pac(2*2), prim(2*2*2*1), scale
13103 :
13104 : INTEGER :: ma, mb, mc, md, p_index
13105 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13106 :
13107 306 : kbd(1:2*1) = 0.0_dp
13108 306 : kbc(1:2*2) = 0.0_dp
13109 306 : kad(1:2*1) = 0.0_dp
13110 306 : kac(1:2*2) = 0.0_dp
13111 306 : p_index = 0
13112 612 : DO md = 1, 1
13113 1224 : DO mc = 1, 2
13114 2142 : DO mb = 1, 2
13115 1224 : ks_bd = 0.0_dp
13116 1224 : ks_bc = 0.0_dp
13117 1224 : p_bd = pbd((md - 1)*2 + mb)
13118 1224 : p_bc = pbc((mc - 1)*2 + mb)
13119 3672 : DO ma = 1, 2
13120 2448 : p_index = p_index + 1
13121 2448 : tmp = scale*prim(p_index)
13122 2448 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13123 2448 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13124 2448 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13125 3672 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13126 : END DO
13127 1224 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13128 1836 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13129 : END DO
13130 : END DO
13131 : END DO
13132 306 : END SUBROUTINE block_2_2_2_1
13133 : ! **************************************************************************************************
13134 : !> \brief ...
13135 : !> \param kbd ...
13136 : !> \param kbc ...
13137 : !> \param kad ...
13138 : !> \param kac ...
13139 : !> \param pbd ...
13140 : !> \param pbc ...
13141 : !> \param pad ...
13142 : !> \param pac ...
13143 : !> \param prim ...
13144 : !> \param scale ...
13145 : ! **************************************************************************************************
13146 34173 : SUBROUTINE block_2_2_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13147 : REAL(KIND=dp) :: kbd(2*2), kbc(2*2), kad(2*2), kac(2*2), &
13148 : pbd(2*2), pbc(2*2), pad(2*2), &
13149 : pac(2*2), prim(2*2*2*2), scale
13150 :
13151 : INTEGER :: ma, mb, mc, md, p_index
13152 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13153 :
13154 34173 : kbd(1:2*2) = 0.0_dp
13155 34173 : kbc(1:2*2) = 0.0_dp
13156 34173 : kad(1:2*2) = 0.0_dp
13157 34173 : kac(1:2*2) = 0.0_dp
13158 34173 : p_index = 0
13159 102519 : DO md = 1, 2
13160 239211 : DO mc = 1, 2
13161 478422 : DO mb = 1, 2
13162 273384 : ks_bd = 0.0_dp
13163 273384 : ks_bc = 0.0_dp
13164 273384 : p_bd = pbd((md - 1)*2 + mb)
13165 273384 : p_bc = pbc((mc - 1)*2 + mb)
13166 820152 : DO ma = 1, 2
13167 546768 : p_index = p_index + 1
13168 546768 : tmp = scale*prim(p_index)
13169 546768 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13170 546768 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13171 546768 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13172 820152 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13173 : END DO
13174 273384 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13175 410076 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13176 : END DO
13177 : END DO
13178 : END DO
13179 34173 : END SUBROUTINE block_2_2_2_2
13180 : ! **************************************************************************************************
13181 : !> \brief ...
13182 : !> \param md_max ...
13183 : !> \param kbd ...
13184 : !> \param kbc ...
13185 : !> \param kad ...
13186 : !> \param kac ...
13187 : !> \param pbd ...
13188 : !> \param pbc ...
13189 : !> \param pad ...
13190 : !> \param pac ...
13191 : !> \param prim ...
13192 : !> \param scale ...
13193 : ! **************************************************************************************************
13194 15648 : SUBROUTINE block_2_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13195 : INTEGER :: md_max
13196 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*2), kad(2*md_max), kac(2*2), pbd(2*md_max), pbc(2*2), &
13197 : pad(2*md_max), pac(2*2), prim(2*2*2*md_max), scale
13198 :
13199 : INTEGER :: ma, mb, mc, md, p_index
13200 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13201 :
13202 111356 : kbd(1:2*md_max) = 0.0_dp
13203 15648 : kbc(1:2*2) = 0.0_dp
13204 111356 : kad(1:2*md_max) = 0.0_dp
13205 15648 : kac(1:2*2) = 0.0_dp
13206 15648 : p_index = 0
13207 63502 : DO md = 1, md_max
13208 159210 : DO mc = 1, 2
13209 334978 : DO mb = 1, 2
13210 191416 : ks_bd = 0.0_dp
13211 191416 : ks_bc = 0.0_dp
13212 191416 : p_bd = pbd((md - 1)*2 + mb)
13213 191416 : p_bc = pbc((mc - 1)*2 + mb)
13214 574248 : DO ma = 1, 2
13215 382832 : p_index = p_index + 1
13216 382832 : tmp = scale*prim(p_index)
13217 382832 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13218 382832 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13219 382832 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13220 574248 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13221 : END DO
13222 191416 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13223 287124 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13224 : END DO
13225 : END DO
13226 : END DO
13227 15648 : END SUBROUTINE block_2_2_2
13228 : ! **************************************************************************************************
13229 : !> \brief ...
13230 : !> \param kbd ...
13231 : !> \param kbc ...
13232 : !> \param kad ...
13233 : !> \param kac ...
13234 : !> \param pbd ...
13235 : !> \param pbc ...
13236 : !> \param pad ...
13237 : !> \param pac ...
13238 : !> \param prim ...
13239 : !> \param scale ...
13240 : ! **************************************************************************************************
13241 997 : SUBROUTINE block_2_2_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13242 : REAL(KIND=dp) :: kbd(2*1), kbc(2*3), kad(2*1), kac(2*3), &
13243 : pbd(2*1), pbc(2*3), pad(2*1), &
13244 : pac(2*3), prim(2*2*3*1), scale
13245 :
13246 : INTEGER :: ma, mb, mc, md, p_index
13247 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13248 :
13249 997 : kbd(1:2*1) = 0.0_dp
13250 997 : kbc(1:2*3) = 0.0_dp
13251 997 : kad(1:2*1) = 0.0_dp
13252 997 : kac(1:2*3) = 0.0_dp
13253 997 : p_index = 0
13254 1994 : DO md = 1, 1
13255 4985 : DO mc = 1, 3
13256 9970 : DO mb = 1, 2
13257 5982 : ks_bd = 0.0_dp
13258 5982 : ks_bc = 0.0_dp
13259 5982 : p_bd = pbd((md - 1)*2 + mb)
13260 5982 : p_bc = pbc((mc - 1)*2 + mb)
13261 17946 : DO ma = 1, 2
13262 11964 : p_index = p_index + 1
13263 11964 : tmp = scale*prim(p_index)
13264 11964 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13265 11964 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13266 11964 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13267 17946 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13268 : END DO
13269 5982 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13270 8973 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13271 : END DO
13272 : END DO
13273 : END DO
13274 997 : END SUBROUTINE block_2_2_3_1
13275 : ! **************************************************************************************************
13276 : !> \brief ...
13277 : !> \param md_max ...
13278 : !> \param kbd ...
13279 : !> \param kbc ...
13280 : !> \param kad ...
13281 : !> \param kac ...
13282 : !> \param pbd ...
13283 : !> \param pbc ...
13284 : !> \param pad ...
13285 : !> \param pac ...
13286 : !> \param prim ...
13287 : !> \param scale ...
13288 : ! **************************************************************************************************
13289 31391 : SUBROUTINE block_2_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13290 : INTEGER :: md_max
13291 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*3), kad(2*md_max), kac(2*3), pbd(2*md_max), pbc(2*3), &
13292 : pad(2*md_max), pac(2*3), prim(2*2*3*md_max), scale
13293 :
13294 : INTEGER :: ma, mb, mc, md, p_index
13295 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13296 :
13297 195879 : kbd(1:2*md_max) = 0.0_dp
13298 31391 : kbc(1:2*3) = 0.0_dp
13299 195879 : kad(1:2*md_max) = 0.0_dp
13300 31391 : kac(1:2*3) = 0.0_dp
13301 31391 : p_index = 0
13302 113635 : DO md = 1, md_max
13303 360367 : DO mc = 1, 3
13304 822440 : DO mb = 1, 2
13305 493464 : ks_bd = 0.0_dp
13306 493464 : ks_bc = 0.0_dp
13307 493464 : p_bd = pbd((md - 1)*2 + mb)
13308 493464 : p_bc = pbc((mc - 1)*2 + mb)
13309 1480392 : DO ma = 1, 2
13310 986928 : p_index = p_index + 1
13311 986928 : tmp = scale*prim(p_index)
13312 986928 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13313 986928 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13314 986928 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13315 1480392 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13316 : END DO
13317 493464 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13318 740196 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13319 : END DO
13320 : END DO
13321 : END DO
13322 31391 : END SUBROUTINE block_2_2_3
13323 : ! **************************************************************************************************
13324 : !> \brief ...
13325 : !> \param kbd ...
13326 : !> \param kbc ...
13327 : !> \param kad ...
13328 : !> \param kac ...
13329 : !> \param pbd ...
13330 : !> \param pbc ...
13331 : !> \param pad ...
13332 : !> \param pac ...
13333 : !> \param prim ...
13334 : !> \param scale ...
13335 : ! **************************************************************************************************
13336 3 : SUBROUTINE block_2_2_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13337 : REAL(KIND=dp) :: kbd(2*1), kbc(2*4), kad(2*1), kac(2*4), &
13338 : pbd(2*1), pbc(2*4), pad(2*1), &
13339 : pac(2*4), prim(2*2*4*1), scale
13340 :
13341 : INTEGER :: ma, mb, mc, md, p_index
13342 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13343 :
13344 3 : kbd(1:2*1) = 0.0_dp
13345 3 : kbc(1:2*4) = 0.0_dp
13346 3 : kad(1:2*1) = 0.0_dp
13347 3 : kac(1:2*4) = 0.0_dp
13348 3 : p_index = 0
13349 6 : DO md = 1, 1
13350 18 : DO mc = 1, 4
13351 39 : DO mb = 1, 2
13352 24 : ks_bd = 0.0_dp
13353 24 : ks_bc = 0.0_dp
13354 24 : p_bd = pbd((md - 1)*2 + mb)
13355 24 : p_bc = pbc((mc - 1)*2 + mb)
13356 72 : DO ma = 1, 2
13357 48 : p_index = p_index + 1
13358 48 : tmp = scale*prim(p_index)
13359 48 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13360 48 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13361 48 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13362 72 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13363 : END DO
13364 24 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13365 36 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13366 : END DO
13367 : END DO
13368 : END DO
13369 3 : END SUBROUTINE block_2_2_4_1
13370 : ! **************************************************************************************************
13371 : !> \brief ...
13372 : !> \param md_max ...
13373 : !> \param kbd ...
13374 : !> \param kbc ...
13375 : !> \param kad ...
13376 : !> \param kac ...
13377 : !> \param pbd ...
13378 : !> \param pbc ...
13379 : !> \param pad ...
13380 : !> \param pac ...
13381 : !> \param prim ...
13382 : !> \param scale ...
13383 : ! **************************************************************************************************
13384 16 : SUBROUTINE block_2_2_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13385 : INTEGER :: md_max
13386 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*4), kad(2*md_max), kac(2*4), pbd(2*md_max), pbc(2*4), &
13387 : pad(2*md_max), pac(2*4), prim(2*2*4*md_max), scale
13388 :
13389 : INTEGER :: ma, mb, mc, md, p_index
13390 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13391 :
13392 148 : kbd(1:2*md_max) = 0.0_dp
13393 16 : kbc(1:2*4) = 0.0_dp
13394 148 : kad(1:2*md_max) = 0.0_dp
13395 16 : kac(1:2*4) = 0.0_dp
13396 16 : p_index = 0
13397 82 : DO md = 1, md_max
13398 346 : DO mc = 1, 4
13399 858 : DO mb = 1, 2
13400 528 : ks_bd = 0.0_dp
13401 528 : ks_bc = 0.0_dp
13402 528 : p_bd = pbd((md - 1)*2 + mb)
13403 528 : p_bc = pbc((mc - 1)*2 + mb)
13404 1584 : DO ma = 1, 2
13405 1056 : p_index = p_index + 1
13406 1056 : tmp = scale*prim(p_index)
13407 1056 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13408 1056 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13409 1056 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13410 1584 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13411 : END DO
13412 528 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13413 792 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13414 : END DO
13415 : END DO
13416 : END DO
13417 16 : END SUBROUTINE block_2_2_4
13418 : ! **************************************************************************************************
13419 : !> \brief ...
13420 : !> \param mc_max ...
13421 : !> \param md_max ...
13422 : !> \param kbd ...
13423 : !> \param kbc ...
13424 : !> \param kad ...
13425 : !> \param kac ...
13426 : !> \param pbd ...
13427 : !> \param pbc ...
13428 : !> \param pad ...
13429 : !> \param pac ...
13430 : !> \param prim ...
13431 : !> \param scale ...
13432 : ! **************************************************************************************************
13433 62550 : SUBROUTINE block_2_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13434 : INTEGER :: mc_max, md_max
13435 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(2*md_max), kac(2*mc_max), pbd(2*md_max), &
13436 : pbc(2*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*2*mc_max*md_max), scale
13437 :
13438 : INTEGER :: ma, mb, mc, md, p_index
13439 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13440 :
13441 598970 : kbd(1:2*md_max) = 0.0_dp
13442 692848 : kbc(1:2*mc_max) = 0.0_dp
13443 598970 : kad(1:2*md_max) = 0.0_dp
13444 692848 : kac(1:2*mc_max) = 0.0_dp
13445 : p_index = 0
13446 330760 : DO md = 1, md_max
13447 1680800 : DO mc = 1, mc_max
13448 4318330 : DO mb = 1, 2
13449 2700080 : ks_bd = 0.0_dp
13450 2700080 : ks_bc = 0.0_dp
13451 2700080 : p_bd = pbd((md - 1)*2 + mb)
13452 2700080 : p_bc = pbc((mc - 1)*2 + mb)
13453 8100240 : DO ma = 1, 2
13454 5400160 : p_index = p_index + 1
13455 5400160 : tmp = scale*prim(p_index)
13456 5400160 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13457 5400160 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13458 5400160 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13459 8100240 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13460 : END DO
13461 2700080 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
13462 4050120 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
13463 : END DO
13464 : END DO
13465 : END DO
13466 62550 : END SUBROUTINE block_2_2
13467 : ! **************************************************************************************************
13468 : !> \brief ...
13469 : !> \param kbd ...
13470 : !> \param kbc ...
13471 : !> \param kad ...
13472 : !> \param kac ...
13473 : !> \param pbd ...
13474 : !> \param pbc ...
13475 : !> \param pad ...
13476 : !> \param pac ...
13477 : !> \param prim ...
13478 : !> \param scale ...
13479 : ! **************************************************************************************************
13480 10667 : SUBROUTINE block_2_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13481 : REAL(KIND=dp) :: kbd(3*1), kbc(3*1), kad(2*1), kac(2*1), &
13482 : pbd(3*1), pbc(3*1), pad(2*1), &
13483 : pac(2*1), prim(2*3*1*1), scale
13484 :
13485 : INTEGER :: ma, mb, mc, md, p_index
13486 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13487 :
13488 10667 : kbd(1:3*1) = 0.0_dp
13489 10667 : kbc(1:3*1) = 0.0_dp
13490 10667 : kad(1:2*1) = 0.0_dp
13491 10667 : kac(1:2*1) = 0.0_dp
13492 10667 : p_index = 0
13493 21334 : DO md = 1, 1
13494 32001 : DO mc = 1, 1
13495 53335 : DO mb = 1, 3
13496 32001 : ks_bd = 0.0_dp
13497 32001 : ks_bc = 0.0_dp
13498 32001 : p_bd = pbd((md - 1)*3 + mb)
13499 32001 : p_bc = pbc((mc - 1)*3 + mb)
13500 96003 : DO ma = 1, 2
13501 64002 : p_index = p_index + 1
13502 64002 : tmp = scale*prim(p_index)
13503 64002 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13504 64002 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13505 64002 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13506 96003 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13507 : END DO
13508 32001 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13509 42668 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13510 : END DO
13511 : END DO
13512 : END DO
13513 10667 : END SUBROUTINE block_2_3_1_1
13514 : ! **************************************************************************************************
13515 : !> \brief ...
13516 : !> \param kbd ...
13517 : !> \param kbc ...
13518 : !> \param kad ...
13519 : !> \param kac ...
13520 : !> \param pbd ...
13521 : !> \param pbc ...
13522 : !> \param pad ...
13523 : !> \param pac ...
13524 : !> \param prim ...
13525 : !> \param scale ...
13526 : ! **************************************************************************************************
13527 1753 : SUBROUTINE block_2_3_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13528 : REAL(KIND=dp) :: kbd(3*2), kbc(3*1), kad(2*2), kac(2*1), &
13529 : pbd(3*2), pbc(3*1), pad(2*2), &
13530 : pac(2*1), prim(2*3*1*2), scale
13531 :
13532 : INTEGER :: ma, mb, mc, md, p_index
13533 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13534 :
13535 1753 : kbd(1:3*2) = 0.0_dp
13536 1753 : kbc(1:3*1) = 0.0_dp
13537 1753 : kad(1:2*2) = 0.0_dp
13538 1753 : kac(1:2*1) = 0.0_dp
13539 1753 : p_index = 0
13540 5259 : DO md = 1, 2
13541 8765 : DO mc = 1, 1
13542 17530 : DO mb = 1, 3
13543 10518 : ks_bd = 0.0_dp
13544 10518 : ks_bc = 0.0_dp
13545 10518 : p_bd = pbd((md - 1)*3 + mb)
13546 10518 : p_bc = pbc((mc - 1)*3 + mb)
13547 31554 : DO ma = 1, 2
13548 21036 : p_index = p_index + 1
13549 21036 : tmp = scale*prim(p_index)
13550 21036 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13551 21036 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13552 21036 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13553 31554 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13554 : END DO
13555 10518 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13556 14024 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13557 : END DO
13558 : END DO
13559 : END DO
13560 1753 : END SUBROUTINE block_2_3_1_2
13561 : ! **************************************************************************************************
13562 : !> \brief ...
13563 : !> \param kbd ...
13564 : !> \param kbc ...
13565 : !> \param kad ...
13566 : !> \param kac ...
13567 : !> \param pbd ...
13568 : !> \param pbc ...
13569 : !> \param pad ...
13570 : !> \param pac ...
13571 : !> \param prim ...
13572 : !> \param scale ...
13573 : ! **************************************************************************************************
13574 10383 : SUBROUTINE block_2_3_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13575 : REAL(KIND=dp) :: kbd(3*3), kbc(3*1), kad(2*3), kac(2*1), &
13576 : pbd(3*3), pbc(3*1), pad(2*3), &
13577 : pac(2*1), prim(2*3*1*3), scale
13578 :
13579 : INTEGER :: ma, mb, mc, md, p_index
13580 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13581 :
13582 10383 : kbd(1:3*3) = 0.0_dp
13583 10383 : kbc(1:3*1) = 0.0_dp
13584 10383 : kad(1:2*3) = 0.0_dp
13585 10383 : kac(1:2*1) = 0.0_dp
13586 10383 : p_index = 0
13587 41532 : DO md = 1, 3
13588 72681 : DO mc = 1, 1
13589 155745 : DO mb = 1, 3
13590 93447 : ks_bd = 0.0_dp
13591 93447 : ks_bc = 0.0_dp
13592 93447 : p_bd = pbd((md - 1)*3 + mb)
13593 93447 : p_bc = pbc((mc - 1)*3 + mb)
13594 280341 : DO ma = 1, 2
13595 186894 : p_index = p_index + 1
13596 186894 : tmp = scale*prim(p_index)
13597 186894 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13598 186894 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13599 186894 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13600 280341 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13601 : END DO
13602 93447 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13603 124596 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13604 : END DO
13605 : END DO
13606 : END DO
13607 10383 : END SUBROUTINE block_2_3_1_3
13608 : ! **************************************************************************************************
13609 : !> \brief ...
13610 : !> \param md_max ...
13611 : !> \param kbd ...
13612 : !> \param kbc ...
13613 : !> \param kad ...
13614 : !> \param kac ...
13615 : !> \param pbd ...
13616 : !> \param pbc ...
13617 : !> \param pad ...
13618 : !> \param pac ...
13619 : !> \param prim ...
13620 : !> \param scale ...
13621 : ! **************************************************************************************************
13622 4981 : SUBROUTINE block_2_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13623 : INTEGER :: md_max
13624 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*1), kad(2*md_max), kac(2*1), pbd(3*md_max), pbc(3*1), &
13625 : pad(2*md_max), pac(2*1), prim(2*3*1*md_max), scale
13626 :
13627 : INTEGER :: ma, mb, mc, md, p_index
13628 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13629 :
13630 85456 : kbd(1:3*md_max) = 0.0_dp
13631 4981 : kbc(1:3*1) = 0.0_dp
13632 58631 : kad(1:2*md_max) = 0.0_dp
13633 4981 : kac(1:2*1) = 0.0_dp
13634 4981 : p_index = 0
13635 31806 : DO md = 1, md_max
13636 58631 : DO mc = 1, 1
13637 134125 : DO mb = 1, 3
13638 80475 : ks_bd = 0.0_dp
13639 80475 : ks_bc = 0.0_dp
13640 80475 : p_bd = pbd((md - 1)*3 + mb)
13641 80475 : p_bc = pbc((mc - 1)*3 + mb)
13642 241425 : DO ma = 1, 2
13643 160950 : p_index = p_index + 1
13644 160950 : tmp = scale*prim(p_index)
13645 160950 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13646 160950 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13647 160950 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13648 241425 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13649 : END DO
13650 80475 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13651 107300 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13652 : END DO
13653 : END DO
13654 : END DO
13655 4981 : END SUBROUTINE block_2_3_1
13656 : ! **************************************************************************************************
13657 : !> \brief ...
13658 : !> \param kbd ...
13659 : !> \param kbc ...
13660 : !> \param kad ...
13661 : !> \param kac ...
13662 : !> \param pbd ...
13663 : !> \param pbc ...
13664 : !> \param pad ...
13665 : !> \param pac ...
13666 : !> \param prim ...
13667 : !> \param scale ...
13668 : ! **************************************************************************************************
13669 3800 : SUBROUTINE block_2_3_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13670 : REAL(KIND=dp) :: kbd(3*1), kbc(3*2), kad(2*1), kac(2*2), &
13671 : pbd(3*1), pbc(3*2), pad(2*1), &
13672 : pac(2*2), prim(2*3*2*1), scale
13673 :
13674 : INTEGER :: ma, mb, mc, md, p_index
13675 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13676 :
13677 3800 : kbd(1:3*1) = 0.0_dp
13678 3800 : kbc(1:3*2) = 0.0_dp
13679 3800 : kad(1:2*1) = 0.0_dp
13680 3800 : kac(1:2*2) = 0.0_dp
13681 3800 : p_index = 0
13682 7600 : DO md = 1, 1
13683 15200 : DO mc = 1, 2
13684 34200 : DO mb = 1, 3
13685 22800 : ks_bd = 0.0_dp
13686 22800 : ks_bc = 0.0_dp
13687 22800 : p_bd = pbd((md - 1)*3 + mb)
13688 22800 : p_bc = pbc((mc - 1)*3 + mb)
13689 68400 : DO ma = 1, 2
13690 45600 : p_index = p_index + 1
13691 45600 : tmp = scale*prim(p_index)
13692 45600 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13693 45600 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13694 45600 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13695 68400 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13696 : END DO
13697 22800 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13698 30400 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13699 : END DO
13700 : END DO
13701 : END DO
13702 3800 : END SUBROUTINE block_2_3_2_1
13703 : ! **************************************************************************************************
13704 : !> \brief ...
13705 : !> \param md_max ...
13706 : !> \param kbd ...
13707 : !> \param kbc ...
13708 : !> \param kad ...
13709 : !> \param kac ...
13710 : !> \param pbd ...
13711 : !> \param pbc ...
13712 : !> \param pad ...
13713 : !> \param pac ...
13714 : !> \param prim ...
13715 : !> \param scale ...
13716 : ! **************************************************************************************************
13717 34960 : SUBROUTINE block_2_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13718 : INTEGER :: md_max
13719 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*2), kad(2*md_max), kac(2*2), pbd(3*md_max), pbc(3*2), &
13720 : pad(2*md_max), pac(2*2), prim(2*3*2*md_max), scale
13721 :
13722 : INTEGER :: ma, mb, mc, md, p_index
13723 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13724 :
13725 317791 : kbd(1:3*md_max) = 0.0_dp
13726 34960 : kbc(1:3*2) = 0.0_dp
13727 223514 : kad(1:2*md_max) = 0.0_dp
13728 34960 : kac(1:2*2) = 0.0_dp
13729 34960 : p_index = 0
13730 129237 : DO md = 1, md_max
13731 317791 : DO mc = 1, 2
13732 848493 : DO mb = 1, 3
13733 565662 : ks_bd = 0.0_dp
13734 565662 : ks_bc = 0.0_dp
13735 565662 : p_bd = pbd((md - 1)*3 + mb)
13736 565662 : p_bc = pbc((mc - 1)*3 + mb)
13737 1696986 : DO ma = 1, 2
13738 1131324 : p_index = p_index + 1
13739 1131324 : tmp = scale*prim(p_index)
13740 1131324 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13741 1131324 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13742 1131324 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13743 1696986 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13744 : END DO
13745 565662 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13746 754216 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13747 : END DO
13748 : END DO
13749 : END DO
13750 34960 : END SUBROUTINE block_2_3_2
13751 : ! **************************************************************************************************
13752 : !> \brief ...
13753 : !> \param kbd ...
13754 : !> \param kbc ...
13755 : !> \param kad ...
13756 : !> \param kac ...
13757 : !> \param pbd ...
13758 : !> \param pbc ...
13759 : !> \param pad ...
13760 : !> \param pac ...
13761 : !> \param prim ...
13762 : !> \param scale ...
13763 : ! **************************************************************************************************
13764 13798 : SUBROUTINE block_2_3_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13765 : REAL(KIND=dp) :: kbd(3*1), kbc(3*3), kad(2*1), kac(2*3), &
13766 : pbd(3*1), pbc(3*3), pad(2*1), &
13767 : pac(2*3), prim(2*3*3*1), scale
13768 :
13769 : INTEGER :: ma, mb, mc, md, p_index
13770 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13771 :
13772 13798 : kbd(1:3*1) = 0.0_dp
13773 13798 : kbc(1:3*3) = 0.0_dp
13774 13798 : kad(1:2*1) = 0.0_dp
13775 13798 : kac(1:2*3) = 0.0_dp
13776 13798 : p_index = 0
13777 27596 : DO md = 1, 1
13778 68990 : DO mc = 1, 3
13779 179374 : DO mb = 1, 3
13780 124182 : ks_bd = 0.0_dp
13781 124182 : ks_bc = 0.0_dp
13782 124182 : p_bd = pbd((md - 1)*3 + mb)
13783 124182 : p_bc = pbc((mc - 1)*3 + mb)
13784 372546 : DO ma = 1, 2
13785 248364 : p_index = p_index + 1
13786 248364 : tmp = scale*prim(p_index)
13787 248364 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13788 248364 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13789 248364 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13790 372546 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13791 : END DO
13792 124182 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13793 165576 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13794 : END DO
13795 : END DO
13796 : END DO
13797 13798 : END SUBROUTINE block_2_3_3_1
13798 : ! **************************************************************************************************
13799 : !> \brief ...
13800 : !> \param md_max ...
13801 : !> \param kbd ...
13802 : !> \param kbc ...
13803 : !> \param kad ...
13804 : !> \param kac ...
13805 : !> \param pbd ...
13806 : !> \param pbc ...
13807 : !> \param pad ...
13808 : !> \param pac ...
13809 : !> \param prim ...
13810 : !> \param scale ...
13811 : ! **************************************************************************************************
13812 47917 : SUBROUTINE block_2_3_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13813 : INTEGER :: md_max
13814 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*3), kad(2*md_max), kac(2*3), pbd(3*md_max), pbc(3*3), &
13815 : pad(2*md_max), pac(2*3), prim(2*3*3*md_max), scale
13816 :
13817 : INTEGER :: ma, mb, mc, md, p_index
13818 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13819 :
13820 482971 : kbd(1:3*md_max) = 0.0_dp
13821 47917 : kbc(1:3*3) = 0.0_dp
13822 337953 : kad(1:2*md_max) = 0.0_dp
13823 47917 : kac(1:2*3) = 0.0_dp
13824 47917 : p_index = 0
13825 192935 : DO md = 1, md_max
13826 627989 : DO mc = 1, 3
13827 1885234 : DO mb = 1, 3
13828 1305162 : ks_bd = 0.0_dp
13829 1305162 : ks_bc = 0.0_dp
13830 1305162 : p_bd = pbd((md - 1)*3 + mb)
13831 1305162 : p_bc = pbc((mc - 1)*3 + mb)
13832 3915486 : DO ma = 1, 2
13833 2610324 : p_index = p_index + 1
13834 2610324 : tmp = scale*prim(p_index)
13835 2610324 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13836 2610324 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13837 2610324 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13838 3915486 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13839 : END DO
13840 1305162 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13841 1740216 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13842 : END DO
13843 : END DO
13844 : END DO
13845 47917 : END SUBROUTINE block_2_3_3
13846 : ! **************************************************************************************************
13847 : !> \brief ...
13848 : !> \param mc_max ...
13849 : !> \param md_max ...
13850 : !> \param kbd ...
13851 : !> \param kbc ...
13852 : !> \param kad ...
13853 : !> \param kac ...
13854 : !> \param pbd ...
13855 : !> \param pbc ...
13856 : !> \param pad ...
13857 : !> \param pac ...
13858 : !> \param prim ...
13859 : !> \param scale ...
13860 : ! **************************************************************************************************
13861 52393 : SUBROUTINE block_2_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13862 : INTEGER :: mc_max, md_max
13863 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(2*md_max), kac(2*mc_max), pbd(3*md_max), &
13864 : pbc(3*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*3*mc_max*md_max), scale
13865 :
13866 : INTEGER :: ma, mb, mc, md, p_index
13867 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13868 :
13869 599830 : kbd(1:3*md_max) = 0.0_dp
13870 863848 : kbc(1:3*mc_max) = 0.0_dp
13871 417351 : kad(1:2*md_max) = 0.0_dp
13872 593363 : kac(1:2*mc_max) = 0.0_dp
13873 : p_index = 0
13874 234872 : DO md = 1, md_max
13875 1177503 : DO mc = 1, mc_max
13876 3953003 : DO mb = 1, 3
13877 2827893 : ks_bd = 0.0_dp
13878 2827893 : ks_bc = 0.0_dp
13879 2827893 : p_bd = pbd((md - 1)*3 + mb)
13880 2827893 : p_bc = pbc((mc - 1)*3 + mb)
13881 8483679 : DO ma = 1, 2
13882 5655786 : p_index = p_index + 1
13883 5655786 : tmp = scale*prim(p_index)
13884 5655786 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13885 5655786 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13886 5655786 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13887 8483679 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13888 : END DO
13889 2827893 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
13890 3770524 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
13891 : END DO
13892 : END DO
13893 : END DO
13894 52393 : END SUBROUTINE block_2_3
13895 : ! **************************************************************************************************
13896 : !> \brief ...
13897 : !> \param kbd ...
13898 : !> \param kbc ...
13899 : !> \param kad ...
13900 : !> \param kac ...
13901 : !> \param pbd ...
13902 : !> \param pbc ...
13903 : !> \param pad ...
13904 : !> \param pac ...
13905 : !> \param prim ...
13906 : !> \param scale ...
13907 : ! **************************************************************************************************
13908 8 : SUBROUTINE block_2_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13909 : REAL(KIND=dp) :: kbd(4*1), kbc(4*1), kad(2*1), kac(2*1), &
13910 : pbd(4*1), pbc(4*1), pad(2*1), &
13911 : pac(2*1), prim(2*4*1*1), scale
13912 :
13913 : INTEGER :: ma, mb, mc, md, p_index
13914 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13915 :
13916 8 : kbd(1:4*1) = 0.0_dp
13917 8 : kbc(1:4*1) = 0.0_dp
13918 8 : kad(1:2*1) = 0.0_dp
13919 8 : kac(1:2*1) = 0.0_dp
13920 8 : p_index = 0
13921 16 : DO md = 1, 1
13922 24 : DO mc = 1, 1
13923 48 : DO mb = 1, 4
13924 32 : ks_bd = 0.0_dp
13925 32 : ks_bc = 0.0_dp
13926 32 : p_bd = pbd((md - 1)*4 + mb)
13927 32 : p_bc = pbc((mc - 1)*4 + mb)
13928 96 : DO ma = 1, 2
13929 64 : p_index = p_index + 1
13930 64 : tmp = scale*prim(p_index)
13931 64 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13932 64 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13933 64 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13934 96 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13935 : END DO
13936 32 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
13937 40 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
13938 : END DO
13939 : END DO
13940 : END DO
13941 8 : END SUBROUTINE block_2_4_1_1
13942 : ! **************************************************************************************************
13943 : !> \brief ...
13944 : !> \param kbd ...
13945 : !> \param kbc ...
13946 : !> \param kad ...
13947 : !> \param kac ...
13948 : !> \param pbd ...
13949 : !> \param pbc ...
13950 : !> \param pad ...
13951 : !> \param pac ...
13952 : !> \param prim ...
13953 : !> \param scale ...
13954 : ! **************************************************************************************************
13955 8 : SUBROUTINE block_2_4_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
13956 : REAL(KIND=dp) :: kbd(4*2), kbc(4*1), kad(2*2), kac(2*1), &
13957 : pbd(4*2), pbc(4*1), pad(2*2), &
13958 : pac(2*1), prim(2*4*1*2), scale
13959 :
13960 : INTEGER :: ma, mb, mc, md, p_index
13961 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
13962 :
13963 8 : kbd(1:4*2) = 0.0_dp
13964 8 : kbc(1:4*1) = 0.0_dp
13965 8 : kad(1:2*2) = 0.0_dp
13966 8 : kac(1:2*1) = 0.0_dp
13967 8 : p_index = 0
13968 24 : DO md = 1, 2
13969 40 : DO mc = 1, 1
13970 96 : DO mb = 1, 4
13971 64 : ks_bd = 0.0_dp
13972 64 : ks_bc = 0.0_dp
13973 64 : p_bd = pbd((md - 1)*4 + mb)
13974 64 : p_bc = pbc((mc - 1)*4 + mb)
13975 192 : DO ma = 1, 2
13976 128 : p_index = p_index + 1
13977 128 : tmp = scale*prim(p_index)
13978 128 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
13979 128 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
13980 128 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
13981 192 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
13982 : END DO
13983 64 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
13984 80 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
13985 : END DO
13986 : END DO
13987 : END DO
13988 8 : END SUBROUTINE block_2_4_1_2
13989 : ! **************************************************************************************************
13990 : !> \brief ...
13991 : !> \param md_max ...
13992 : !> \param kbd ...
13993 : !> \param kbc ...
13994 : !> \param kad ...
13995 : !> \param kac ...
13996 : !> \param pbd ...
13997 : !> \param pbc ...
13998 : !> \param pad ...
13999 : !> \param pac ...
14000 : !> \param prim ...
14001 : !> \param scale ...
14002 : ! **************************************************************************************************
14003 24 : SUBROUTINE block_2_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14004 : INTEGER :: md_max
14005 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*1), kad(2*md_max), kac(2*1), pbd(4*md_max), pbc(4*1), &
14006 : pad(2*md_max), pac(2*1), prim(2*4*1*md_max), scale
14007 :
14008 : INTEGER :: ma, mb, mc, md, p_index
14009 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14010 :
14011 428 : kbd(1:4*md_max) = 0.0_dp
14012 24 : kbc(1:4*1) = 0.0_dp
14013 226 : kad(1:2*md_max) = 0.0_dp
14014 24 : kac(1:2*1) = 0.0_dp
14015 24 : p_index = 0
14016 125 : DO md = 1, md_max
14017 226 : DO mc = 1, 1
14018 606 : DO mb = 1, 4
14019 404 : ks_bd = 0.0_dp
14020 404 : ks_bc = 0.0_dp
14021 404 : p_bd = pbd((md - 1)*4 + mb)
14022 404 : p_bc = pbc((mc - 1)*4 + mb)
14023 1212 : DO ma = 1, 2
14024 808 : p_index = p_index + 1
14025 808 : tmp = scale*prim(p_index)
14026 808 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14027 808 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14028 808 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14029 1212 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14030 : END DO
14031 404 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
14032 505 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
14033 : END DO
14034 : END DO
14035 : END DO
14036 24 : END SUBROUTINE block_2_4_1
14037 : ! **************************************************************************************************
14038 : !> \brief ...
14039 : !> \param kbd ...
14040 : !> \param kbc ...
14041 : !> \param kad ...
14042 : !> \param kac ...
14043 : !> \param pbd ...
14044 : !> \param pbc ...
14045 : !> \param pad ...
14046 : !> \param pac ...
14047 : !> \param prim ...
14048 : !> \param scale ...
14049 : ! **************************************************************************************************
14050 2 : SUBROUTINE block_2_4_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14051 : REAL(KIND=dp) :: kbd(4*1), kbc(4*2), kad(2*1), kac(2*2), &
14052 : pbd(4*1), pbc(4*2), pad(2*1), &
14053 : pac(2*2), prim(2*4*2*1), scale
14054 :
14055 : INTEGER :: ma, mb, mc, md, p_index
14056 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14057 :
14058 2 : kbd(1:4*1) = 0.0_dp
14059 2 : kbc(1:4*2) = 0.0_dp
14060 2 : kad(1:2*1) = 0.0_dp
14061 2 : kac(1:2*2) = 0.0_dp
14062 2 : p_index = 0
14063 4 : DO md = 1, 1
14064 8 : DO mc = 1, 2
14065 22 : DO mb = 1, 4
14066 16 : ks_bd = 0.0_dp
14067 16 : ks_bc = 0.0_dp
14068 16 : p_bd = pbd((md - 1)*4 + mb)
14069 16 : p_bc = pbc((mc - 1)*4 + mb)
14070 48 : DO ma = 1, 2
14071 32 : p_index = p_index + 1
14072 32 : tmp = scale*prim(p_index)
14073 32 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14074 32 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14075 32 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14076 48 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14077 : END DO
14078 16 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
14079 20 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
14080 : END DO
14081 : END DO
14082 : END DO
14083 2 : END SUBROUTINE block_2_4_2_1
14084 : ! **************************************************************************************************
14085 : !> \brief ...
14086 : !> \param md_max ...
14087 : !> \param kbd ...
14088 : !> \param kbc ...
14089 : !> \param kad ...
14090 : !> \param kac ...
14091 : !> \param pbd ...
14092 : !> \param pbc ...
14093 : !> \param pad ...
14094 : !> \param pac ...
14095 : !> \param prim ...
14096 : !> \param scale ...
14097 : ! **************************************************************************************************
14098 30 : SUBROUTINE block_2_4_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14099 : INTEGER :: md_max
14100 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*2), kad(2*md_max), kac(2*2), pbd(4*md_max), pbc(4*2), &
14101 : pad(2*md_max), pac(2*2), prim(2*4*2*md_max), scale
14102 :
14103 : INTEGER :: ma, mb, mc, md, p_index
14104 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14105 :
14106 458 : kbd(1:4*md_max) = 0.0_dp
14107 30 : kbc(1:4*2) = 0.0_dp
14108 244 : kad(1:2*md_max) = 0.0_dp
14109 30 : kac(1:2*2) = 0.0_dp
14110 30 : p_index = 0
14111 137 : DO md = 1, md_max
14112 351 : DO mc = 1, 2
14113 1177 : DO mb = 1, 4
14114 856 : ks_bd = 0.0_dp
14115 856 : ks_bc = 0.0_dp
14116 856 : p_bd = pbd((md - 1)*4 + mb)
14117 856 : p_bc = pbc((mc - 1)*4 + mb)
14118 2568 : DO ma = 1, 2
14119 1712 : p_index = p_index + 1
14120 1712 : tmp = scale*prim(p_index)
14121 1712 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14122 1712 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14123 1712 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14124 2568 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14125 : END DO
14126 856 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
14127 1070 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
14128 : END DO
14129 : END DO
14130 : END DO
14131 30 : END SUBROUTINE block_2_4_2
14132 : ! **************************************************************************************************
14133 : !> \brief ...
14134 : !> \param mc_max ...
14135 : !> \param md_max ...
14136 : !> \param kbd ...
14137 : !> \param kbc ...
14138 : !> \param kad ...
14139 : !> \param kac ...
14140 : !> \param pbd ...
14141 : !> \param pbc ...
14142 : !> \param pad ...
14143 : !> \param pac ...
14144 : !> \param prim ...
14145 : !> \param scale ...
14146 : ! **************************************************************************************************
14147 57 : SUBROUTINE block_2_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14148 : INTEGER :: mc_max, md_max
14149 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(2*md_max), kac(2*mc_max), pbd(4*md_max), &
14150 : pbc(4*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*4*mc_max*md_max), scale
14151 :
14152 : INTEGER :: ma, mb, mc, md, p_index
14153 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14154 :
14155 921 : kbd(1:4*md_max) = 0.0_dp
14156 977 : kbc(1:4*mc_max) = 0.0_dp
14157 489 : kad(1:2*md_max) = 0.0_dp
14158 517 : kac(1:2*mc_max) = 0.0_dp
14159 : p_index = 0
14160 273 : DO md = 1, md_max
14161 1154 : DO mc = 1, mc_max
14162 4621 : DO mb = 1, 4
14163 3524 : ks_bd = 0.0_dp
14164 3524 : ks_bc = 0.0_dp
14165 3524 : p_bd = pbd((md - 1)*4 + mb)
14166 3524 : p_bc = pbc((mc - 1)*4 + mb)
14167 10572 : DO ma = 1, 2
14168 7048 : p_index = p_index + 1
14169 7048 : tmp = scale*prim(p_index)
14170 7048 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14171 7048 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14172 7048 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14173 10572 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14174 : END DO
14175 3524 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
14176 4405 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
14177 : END DO
14178 : END DO
14179 : END DO
14180 57 : END SUBROUTINE block_2_4
14181 : ! **************************************************************************************************
14182 : !> \brief ...
14183 : !> \param kbd ...
14184 : !> \param kbc ...
14185 : !> \param kad ...
14186 : !> \param kac ...
14187 : !> \param pbd ...
14188 : !> \param pbc ...
14189 : !> \param pad ...
14190 : !> \param pac ...
14191 : !> \param prim ...
14192 : !> \param scale ...
14193 : ! **************************************************************************************************
14194 1729 : SUBROUTINE block_2_5_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14195 : REAL(KIND=dp) :: kbd(5*1), kbc(5*1), kad(2*1), kac(2*1), &
14196 : pbd(5*1), pbc(5*1), pad(2*1), &
14197 : pac(2*1), prim(2*5*1*1), scale
14198 :
14199 : INTEGER :: ma, mb, mc, md, p_index
14200 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14201 :
14202 1729 : kbd(1:5*1) = 0.0_dp
14203 1729 : kbc(1:5*1) = 0.0_dp
14204 1729 : kad(1:2*1) = 0.0_dp
14205 1729 : kac(1:2*1) = 0.0_dp
14206 1729 : p_index = 0
14207 3458 : DO md = 1, 1
14208 5187 : DO mc = 1, 1
14209 12103 : DO mb = 1, 5
14210 8645 : ks_bd = 0.0_dp
14211 8645 : ks_bc = 0.0_dp
14212 8645 : p_bd = pbd((md - 1)*5 + mb)
14213 8645 : p_bc = pbc((mc - 1)*5 + mb)
14214 25935 : DO ma = 1, 2
14215 17290 : p_index = p_index + 1
14216 17290 : tmp = scale*prim(p_index)
14217 17290 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14218 17290 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14219 17290 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14220 25935 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14221 : END DO
14222 8645 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
14223 10374 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
14224 : END DO
14225 : END DO
14226 : END DO
14227 1729 : END SUBROUTINE block_2_5_1_1
14228 : ! **************************************************************************************************
14229 : !> \brief ...
14230 : !> \param md_max ...
14231 : !> \param kbd ...
14232 : !> \param kbc ...
14233 : !> \param kad ...
14234 : !> \param kac ...
14235 : !> \param pbd ...
14236 : !> \param pbc ...
14237 : !> \param pad ...
14238 : !> \param pac ...
14239 : !> \param prim ...
14240 : !> \param scale ...
14241 : ! **************************************************************************************************
14242 5551 : SUBROUTINE block_2_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14243 : INTEGER :: md_max
14244 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*1), kad(2*md_max), kac(2*1), pbd(5*md_max), pbc(5*1), &
14245 : pad(2*md_max), pac(2*1), prim(2*5*1*md_max), scale
14246 :
14247 : INTEGER :: ma, mb, mc, md, p_index
14248 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14249 :
14250 117576 : kbd(1:5*md_max) = 0.0_dp
14251 5551 : kbc(1:5*1) = 0.0_dp
14252 50361 : kad(1:2*md_max) = 0.0_dp
14253 5551 : kac(1:2*1) = 0.0_dp
14254 5551 : p_index = 0
14255 27956 : DO md = 1, md_max
14256 50361 : DO mc = 1, 1
14257 156835 : DO mb = 1, 5
14258 112025 : ks_bd = 0.0_dp
14259 112025 : ks_bc = 0.0_dp
14260 112025 : p_bd = pbd((md - 1)*5 + mb)
14261 112025 : p_bc = pbc((mc - 1)*5 + mb)
14262 336075 : DO ma = 1, 2
14263 224050 : p_index = p_index + 1
14264 224050 : tmp = scale*prim(p_index)
14265 224050 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14266 224050 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14267 224050 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14268 336075 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14269 : END DO
14270 112025 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
14271 134430 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
14272 : END DO
14273 : END DO
14274 : END DO
14275 5551 : END SUBROUTINE block_2_5_1
14276 : ! **************************************************************************************************
14277 : !> \brief ...
14278 : !> \param mc_max ...
14279 : !> \param md_max ...
14280 : !> \param kbd ...
14281 : !> \param kbc ...
14282 : !> \param kad ...
14283 : !> \param kac ...
14284 : !> \param pbd ...
14285 : !> \param pbc ...
14286 : !> \param pad ...
14287 : !> \param pac ...
14288 : !> \param prim ...
14289 : !> \param scale ...
14290 : ! **************************************************************************************************
14291 23682 : SUBROUTINE block_2_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14292 : INTEGER :: mc_max, md_max
14293 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(2*md_max), kac(2*mc_max), pbd(5*md_max), &
14294 : pbc(5*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*5*mc_max*md_max), scale
14295 :
14296 : INTEGER :: ma, mb, mc, md, p_index
14297 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14298 :
14299 417657 : kbd(1:5*md_max) = 0.0_dp
14300 500942 : kbc(1:5*mc_max) = 0.0_dp
14301 181272 : kad(1:2*md_max) = 0.0_dp
14302 214586 : kac(1:2*mc_max) = 0.0_dp
14303 : p_index = 0
14304 102477 : DO md = 1, md_max
14305 422481 : DO mc = 1, mc_max
14306 1998819 : DO mb = 1, 5
14307 1600020 : ks_bd = 0.0_dp
14308 1600020 : ks_bc = 0.0_dp
14309 1600020 : p_bd = pbd((md - 1)*5 + mb)
14310 1600020 : p_bc = pbc((mc - 1)*5 + mb)
14311 4800060 : DO ma = 1, 2
14312 3200040 : p_index = p_index + 1
14313 3200040 : tmp = scale*prim(p_index)
14314 3200040 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14315 3200040 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14316 3200040 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14317 4800060 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14318 : END DO
14319 1600020 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
14320 1920024 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
14321 : END DO
14322 : END DO
14323 : END DO
14324 23682 : END SUBROUTINE block_2_5
14325 : ! **************************************************************************************************
14326 : !> \brief ...
14327 : !> \param kbd ...
14328 : !> \param kbc ...
14329 : !> \param kad ...
14330 : !> \param kac ...
14331 : !> \param pbd ...
14332 : !> \param pbc ...
14333 : !> \param pad ...
14334 : !> \param pac ...
14335 : !> \param prim ...
14336 : !> \param scale ...
14337 : ! **************************************************************************************************
14338 10 : SUBROUTINE block_2_6_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14339 : REAL(KIND=dp) :: kbd(6*1), kbc(6*1), kad(2*1), kac(2*1), &
14340 : pbd(6*1), pbc(6*1), pad(2*1), &
14341 : pac(2*1), prim(2*6*1*1), scale
14342 :
14343 : INTEGER :: ma, mb, mc, md, p_index
14344 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14345 :
14346 10 : kbd(1:6*1) = 0.0_dp
14347 10 : kbc(1:6*1) = 0.0_dp
14348 10 : kad(1:2*1) = 0.0_dp
14349 10 : kac(1:2*1) = 0.0_dp
14350 10 : p_index = 0
14351 20 : DO md = 1, 1
14352 30 : DO mc = 1, 1
14353 80 : DO mb = 1, 6
14354 60 : ks_bd = 0.0_dp
14355 60 : ks_bc = 0.0_dp
14356 60 : p_bd = pbd((md - 1)*6 + mb)
14357 60 : p_bc = pbc((mc - 1)*6 + mb)
14358 180 : DO ma = 1, 2
14359 120 : p_index = p_index + 1
14360 120 : tmp = scale*prim(p_index)
14361 120 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14362 120 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14363 120 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14364 180 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14365 : END DO
14366 60 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
14367 70 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
14368 : END DO
14369 : END DO
14370 : END DO
14371 10 : END SUBROUTINE block_2_6_1_1
14372 : ! **************************************************************************************************
14373 : !> \brief ...
14374 : !> \param md_max ...
14375 : !> \param kbd ...
14376 : !> \param kbc ...
14377 : !> \param kad ...
14378 : !> \param kac ...
14379 : !> \param pbd ...
14380 : !> \param pbc ...
14381 : !> \param pad ...
14382 : !> \param pac ...
14383 : !> \param prim ...
14384 : !> \param scale ...
14385 : ! **************************************************************************************************
14386 47 : SUBROUTINE block_2_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14387 : INTEGER :: md_max
14388 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*1), kad(2*md_max), kac(2*1), pbd(6*md_max), pbc(6*1), &
14389 : pad(2*md_max), pac(2*1), prim(2*6*1*md_max), scale
14390 :
14391 : INTEGER :: ma, mb, mc, md, p_index
14392 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14393 :
14394 1283 : kbd(1:6*md_max) = 0.0_dp
14395 47 : kbc(1:6*1) = 0.0_dp
14396 459 : kad(1:2*md_max) = 0.0_dp
14397 47 : kac(1:2*1) = 0.0_dp
14398 47 : p_index = 0
14399 253 : DO md = 1, md_max
14400 459 : DO mc = 1, 1
14401 1648 : DO mb = 1, 6
14402 1236 : ks_bd = 0.0_dp
14403 1236 : ks_bc = 0.0_dp
14404 1236 : p_bd = pbd((md - 1)*6 + mb)
14405 1236 : p_bc = pbc((mc - 1)*6 + mb)
14406 3708 : DO ma = 1, 2
14407 2472 : p_index = p_index + 1
14408 2472 : tmp = scale*prim(p_index)
14409 2472 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14410 2472 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14411 2472 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14412 3708 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14413 : END DO
14414 1236 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
14415 1442 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
14416 : END DO
14417 : END DO
14418 : END DO
14419 47 : END SUBROUTINE block_2_6_1
14420 : ! **************************************************************************************************
14421 : !> \brief ...
14422 : !> \param mc_max ...
14423 : !> \param md_max ...
14424 : !> \param kbd ...
14425 : !> \param kbc ...
14426 : !> \param kad ...
14427 : !> \param kac ...
14428 : !> \param pbd ...
14429 : !> \param pbc ...
14430 : !> \param pad ...
14431 : !> \param pac ...
14432 : !> \param prim ...
14433 : !> \param scale ...
14434 : ! **************************************************************************************************
14435 149 : SUBROUTINE block_2_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14436 : INTEGER :: mc_max, md_max
14437 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(2*md_max), kac(2*mc_max), pbd(6*md_max), &
14438 : pbc(6*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*6*mc_max*md_max), scale
14439 :
14440 : INTEGER :: ma, mb, mc, md, p_index
14441 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14442 :
14443 3989 : kbd(1:6*md_max) = 0.0_dp
14444 3197 : kbc(1:6*mc_max) = 0.0_dp
14445 1429 : kad(1:2*md_max) = 0.0_dp
14446 1165 : kac(1:2*mc_max) = 0.0_dp
14447 : p_index = 0
14448 789 : DO md = 1, md_max
14449 3016 : DO mc = 1, mc_max
14450 16229 : DO mb = 1, 6
14451 13362 : ks_bd = 0.0_dp
14452 13362 : ks_bc = 0.0_dp
14453 13362 : p_bd = pbd((md - 1)*6 + mb)
14454 13362 : p_bc = pbc((mc - 1)*6 + mb)
14455 40086 : DO ma = 1, 2
14456 26724 : p_index = p_index + 1
14457 26724 : tmp = scale*prim(p_index)
14458 26724 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14459 26724 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14460 26724 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14461 40086 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14462 : END DO
14463 13362 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
14464 15589 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
14465 : END DO
14466 : END DO
14467 : END DO
14468 149 : END SUBROUTINE block_2_6
14469 : ! **************************************************************************************************
14470 : !> \brief ...
14471 : !> \param kbd ...
14472 : !> \param kbc ...
14473 : !> \param kad ...
14474 : !> \param kac ...
14475 : !> \param pbd ...
14476 : !> \param pbc ...
14477 : !> \param pad ...
14478 : !> \param pac ...
14479 : !> \param prim ...
14480 : !> \param scale ...
14481 : ! **************************************************************************************************
14482 739 : SUBROUTINE block_2_7_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14483 : REAL(KIND=dp) :: kbd(7*1), kbc(7*1), kad(2*1), kac(2*1), &
14484 : pbd(7*1), pbc(7*1), pad(2*1), &
14485 : pac(2*1), prim(2*7*1*1), scale
14486 :
14487 : INTEGER :: ma, mb, mc, md, p_index
14488 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14489 :
14490 739 : kbd(1:7*1) = 0.0_dp
14491 739 : kbc(1:7*1) = 0.0_dp
14492 739 : kad(1:2*1) = 0.0_dp
14493 739 : kac(1:2*1) = 0.0_dp
14494 739 : p_index = 0
14495 1478 : DO md = 1, 1
14496 2217 : DO mc = 1, 1
14497 6651 : DO mb = 1, 7
14498 5173 : ks_bd = 0.0_dp
14499 5173 : ks_bc = 0.0_dp
14500 5173 : p_bd = pbd((md - 1)*7 + mb)
14501 5173 : p_bc = pbc((mc - 1)*7 + mb)
14502 15519 : DO ma = 1, 2
14503 10346 : p_index = p_index + 1
14504 10346 : tmp = scale*prim(p_index)
14505 10346 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14506 10346 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14507 10346 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14508 15519 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14509 : END DO
14510 5173 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
14511 5912 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
14512 : END DO
14513 : END DO
14514 : END DO
14515 739 : END SUBROUTINE block_2_7_1_1
14516 : ! **************************************************************************************************
14517 : !> \brief ...
14518 : !> \param md_max ...
14519 : !> \param kbd ...
14520 : !> \param kbc ...
14521 : !> \param kad ...
14522 : !> \param kac ...
14523 : !> \param pbd ...
14524 : !> \param pbc ...
14525 : !> \param pad ...
14526 : !> \param pac ...
14527 : !> \param prim ...
14528 : !> \param scale ...
14529 : ! **************************************************************************************************
14530 2478 : SUBROUTINE block_2_7_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14531 : INTEGER :: md_max
14532 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*1), kad(2*md_max), kac(2*1), pbd(7*md_max), pbc(7*1), &
14533 : pad(2*md_max), pac(2*1), prim(2*7*1*md_max), scale
14534 :
14535 : INTEGER :: ma, mb, mc, md, p_index
14536 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14537 :
14538 77119 : kbd(1:7*md_max) = 0.0_dp
14539 2478 : kbc(1:7*1) = 0.0_dp
14540 23804 : kad(1:2*md_max) = 0.0_dp
14541 2478 : kac(1:2*1) = 0.0_dp
14542 2478 : p_index = 0
14543 13141 : DO md = 1, md_max
14544 23804 : DO mc = 1, 1
14545 95967 : DO mb = 1, 7
14546 74641 : ks_bd = 0.0_dp
14547 74641 : ks_bc = 0.0_dp
14548 74641 : p_bd = pbd((md - 1)*7 + mb)
14549 74641 : p_bc = pbc((mc - 1)*7 + mb)
14550 223923 : DO ma = 1, 2
14551 149282 : p_index = p_index + 1
14552 149282 : tmp = scale*prim(p_index)
14553 149282 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14554 149282 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14555 149282 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14556 223923 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14557 : END DO
14558 74641 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
14559 85304 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
14560 : END DO
14561 : END DO
14562 : END DO
14563 2478 : END SUBROUTINE block_2_7_1
14564 : ! **************************************************************************************************
14565 : !> \brief ...
14566 : !> \param mc_max ...
14567 : !> \param md_max ...
14568 : !> \param kbd ...
14569 : !> \param kbc ...
14570 : !> \param kad ...
14571 : !> \param kac ...
14572 : !> \param pbd ...
14573 : !> \param pbc ...
14574 : !> \param pad ...
14575 : !> \param pac ...
14576 : !> \param prim ...
14577 : !> \param scale ...
14578 : ! **************************************************************************************************
14579 10829 : SUBROUTINE block_2_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14580 : INTEGER :: mc_max, md_max
14581 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(2*md_max), kac(2*mc_max), pbd(7*md_max), &
14582 : pbc(7*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*7*mc_max*md_max), scale
14583 :
14584 : INTEGER :: ma, mb, mc, md, p_index
14585 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14586 :
14587 278376 : kbd(1:7*md_max) = 0.0_dp
14588 334943 : kbc(1:7*mc_max) = 0.0_dp
14589 87271 : kad(1:2*md_max) = 0.0_dp
14590 103433 : kac(1:2*mc_max) = 0.0_dp
14591 : p_index = 0
14592 49050 : DO md = 1, md_max
14593 212197 : DO mc = 1, mc_max
14594 1343397 : DO mb = 1, 7
14595 1142029 : ks_bd = 0.0_dp
14596 1142029 : ks_bc = 0.0_dp
14597 1142029 : p_bd = pbd((md - 1)*7 + mb)
14598 1142029 : p_bc = pbc((mc - 1)*7 + mb)
14599 3426087 : DO ma = 1, 2
14600 2284058 : p_index = p_index + 1
14601 2284058 : tmp = scale*prim(p_index)
14602 2284058 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14603 2284058 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14604 2284058 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14605 3426087 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14606 : END DO
14607 1142029 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
14608 1305176 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
14609 : END DO
14610 : END DO
14611 : END DO
14612 10829 : END SUBROUTINE block_2_7
14613 : ! **************************************************************************************************
14614 : !> \brief ...
14615 : !> \param kbd ...
14616 : !> \param kbc ...
14617 : !> \param kad ...
14618 : !> \param kac ...
14619 : !> \param pbd ...
14620 : !> \param pbc ...
14621 : !> \param pad ...
14622 : !> \param pac ...
14623 : !> \param prim ...
14624 : !> \param scale ...
14625 : ! **************************************************************************************************
14626 3 : SUBROUTINE block_2_9_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14627 : REAL(KIND=dp) :: kbd(9*1), kbc(9*1), kad(2*1), kac(2*1), &
14628 : pbd(9*1), pbc(9*1), pad(2*1), &
14629 : pac(2*1), prim(2*9*1*1), scale
14630 :
14631 : INTEGER :: ma, mb, mc, md, p_index
14632 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14633 :
14634 3 : kbd(1:9*1) = 0.0_dp
14635 3 : kbc(1:9*1) = 0.0_dp
14636 3 : kad(1:2*1) = 0.0_dp
14637 3 : kac(1:2*1) = 0.0_dp
14638 3 : p_index = 0
14639 6 : DO md = 1, 1
14640 9 : DO mc = 1, 1
14641 33 : DO mb = 1, 9
14642 27 : ks_bd = 0.0_dp
14643 27 : ks_bc = 0.0_dp
14644 27 : p_bd = pbd((md - 1)*9 + mb)
14645 27 : p_bc = pbc((mc - 1)*9 + mb)
14646 81 : DO ma = 1, 2
14647 54 : p_index = p_index + 1
14648 54 : tmp = scale*prim(p_index)
14649 54 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14650 54 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14651 54 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14652 81 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14653 : END DO
14654 27 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
14655 30 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
14656 : END DO
14657 : END DO
14658 : END DO
14659 3 : END SUBROUTINE block_2_9_1_1
14660 : ! **************************************************************************************************
14661 : !> \brief ...
14662 : !> \param md_max ...
14663 : !> \param kbd ...
14664 : !> \param kbc ...
14665 : !> \param kad ...
14666 : !> \param kac ...
14667 : !> \param pbd ...
14668 : !> \param pbc ...
14669 : !> \param pad ...
14670 : !> \param pac ...
14671 : !> \param prim ...
14672 : !> \param scale ...
14673 : ! **************************************************************************************************
14674 19 : SUBROUTINE block_2_9_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14675 : INTEGER :: md_max
14676 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*1), kad(2*md_max), kac(2*1), pbd(9*md_max), pbc(9*1), &
14677 : pad(2*md_max), pac(2*1), prim(2*9*1*md_max), scale
14678 :
14679 : INTEGER :: ma, mb, mc, md, p_index
14680 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14681 :
14682 1054 : kbd(1:9*md_max) = 0.0_dp
14683 19 : kbc(1:9*1) = 0.0_dp
14684 249 : kad(1:2*md_max) = 0.0_dp
14685 19 : kac(1:2*1) = 0.0_dp
14686 19 : p_index = 0
14687 134 : DO md = 1, md_max
14688 249 : DO mc = 1, 1
14689 1265 : DO mb = 1, 9
14690 1035 : ks_bd = 0.0_dp
14691 1035 : ks_bc = 0.0_dp
14692 1035 : p_bd = pbd((md - 1)*9 + mb)
14693 1035 : p_bc = pbc((mc - 1)*9 + mb)
14694 3105 : DO ma = 1, 2
14695 2070 : p_index = p_index + 1
14696 2070 : tmp = scale*prim(p_index)
14697 2070 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14698 2070 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14699 2070 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14700 3105 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14701 : END DO
14702 1035 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
14703 1150 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
14704 : END DO
14705 : END DO
14706 : END DO
14707 19 : END SUBROUTINE block_2_9_1
14708 : ! **************************************************************************************************
14709 : !> \brief ...
14710 : !> \param mc_max ...
14711 : !> \param md_max ...
14712 : !> \param kbd ...
14713 : !> \param kbc ...
14714 : !> \param kad ...
14715 : !> \param kac ...
14716 : !> \param pbd ...
14717 : !> \param pbc ...
14718 : !> \param pad ...
14719 : !> \param pac ...
14720 : !> \param prim ...
14721 : !> \param scale ...
14722 : ! **************************************************************************************************
14723 58 : SUBROUTINE block_2_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14724 : INTEGER :: mc_max, md_max
14725 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(2*md_max), kac(2*mc_max), pbd(9*md_max), &
14726 : pbc(9*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*9*mc_max*md_max), scale
14727 :
14728 : INTEGER :: ma, mb, mc, md, p_index
14729 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14730 :
14731 2902 : kbd(1:9*md_max) = 0.0_dp
14732 1759 : kbc(1:9*mc_max) = 0.0_dp
14733 690 : kad(1:2*md_max) = 0.0_dp
14734 436 : kac(1:2*mc_max) = 0.0_dp
14735 : p_index = 0
14736 374 : DO md = 1, md_max
14737 1415 : DO mc = 1, mc_max
14738 10726 : DO mb = 1, 9
14739 9369 : ks_bd = 0.0_dp
14740 9369 : ks_bc = 0.0_dp
14741 9369 : p_bd = pbd((md - 1)*9 + mb)
14742 9369 : p_bc = pbc((mc - 1)*9 + mb)
14743 28107 : DO ma = 1, 2
14744 18738 : p_index = p_index + 1
14745 18738 : tmp = scale*prim(p_index)
14746 18738 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14747 18738 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14748 18738 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14749 28107 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14750 : END DO
14751 9369 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
14752 10410 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
14753 : END DO
14754 : END DO
14755 : END DO
14756 58 : END SUBROUTINE block_2_9
14757 : ! **************************************************************************************************
14758 : !> \brief ...
14759 : !> \param mc_max ...
14760 : !> \param md_max ...
14761 : !> \param kbd ...
14762 : !> \param kbc ...
14763 : !> \param kad ...
14764 : !> \param kac ...
14765 : !> \param pbd ...
14766 : !> \param pbc ...
14767 : !> \param pad ...
14768 : !> \param pac ...
14769 : !> \param prim ...
14770 : !> \param scale ...
14771 : ! **************************************************************************************************
14772 109 : SUBROUTINE block_2_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14773 : INTEGER :: mc_max, md_max
14774 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(2*md_max), kac(2*mc_max), &
14775 : pbd(10*md_max), pbc(10*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*10*mc_max*md_max), &
14776 : scale
14777 :
14778 : INTEGER :: ma, mb, mc, md, p_index
14779 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14780 :
14781 6669 : kbd(1:10*md_max) = 0.0_dp
14782 3429 : kbc(1:10*mc_max) = 0.0_dp
14783 1421 : kad(1:2*md_max) = 0.0_dp
14784 773 : kac(1:2*mc_max) = 0.0_dp
14785 : p_index = 0
14786 765 : DO md = 1, md_max
14787 2872 : DO mc = 1, mc_max
14788 23833 : DO mb = 1, 10
14789 21070 : ks_bd = 0.0_dp
14790 21070 : ks_bc = 0.0_dp
14791 21070 : p_bd = pbd((md - 1)*10 + mb)
14792 21070 : p_bc = pbc((mc - 1)*10 + mb)
14793 63210 : DO ma = 1, 2
14794 42140 : p_index = p_index + 1
14795 42140 : tmp = scale*prim(p_index)
14796 42140 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14797 42140 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14798 42140 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14799 63210 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14800 : END DO
14801 21070 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
14802 23177 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
14803 : END DO
14804 : END DO
14805 : END DO
14806 109 : END SUBROUTINE block_2_10
14807 : ! **************************************************************************************************
14808 : !> \brief ...
14809 : !> \param mc_max ...
14810 : !> \param md_max ...
14811 : !> \param kbd ...
14812 : !> \param kbc ...
14813 : !> \param kad ...
14814 : !> \param kac ...
14815 : !> \param pbd ...
14816 : !> \param pbc ...
14817 : !> \param pad ...
14818 : !> \param pac ...
14819 : !> \param prim ...
14820 : !> \param scale ...
14821 : ! **************************************************************************************************
14822 140 : SUBROUTINE block_2_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14823 : INTEGER :: mc_max, md_max
14824 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(2*md_max), kac(2*mc_max), &
14825 : pbd(11*md_max), pbc(11*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*11*mc_max*md_max), &
14826 : scale
14827 :
14828 : INTEGER :: ma, mb, mc, md, p_index
14829 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14830 :
14831 10579 : kbd(1:11*md_max) = 0.0_dp
14832 5145 : kbc(1:11*mc_max) = 0.0_dp
14833 2038 : kad(1:2*md_max) = 0.0_dp
14834 1050 : kac(1:2*mc_max) = 0.0_dp
14835 : p_index = 0
14836 1089 : DO md = 1, md_max
14837 4258 : DO mc = 1, mc_max
14838 38977 : DO mb = 1, 11
14839 34859 : ks_bd = 0.0_dp
14840 34859 : ks_bc = 0.0_dp
14841 34859 : p_bd = pbd((md - 1)*11 + mb)
14842 34859 : p_bc = pbc((mc - 1)*11 + mb)
14843 104577 : DO ma = 1, 2
14844 69718 : p_index = p_index + 1
14845 69718 : tmp = scale*prim(p_index)
14846 69718 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14847 69718 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14848 69718 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14849 104577 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14850 : END DO
14851 34859 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
14852 38028 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
14853 : END DO
14854 : END DO
14855 : END DO
14856 140 : END SUBROUTINE block_2_11
14857 : ! **************************************************************************************************
14858 : !> \brief ...
14859 : !> \param mc_max ...
14860 : !> \param md_max ...
14861 : !> \param kbd ...
14862 : !> \param kbc ...
14863 : !> \param kad ...
14864 : !> \param kac ...
14865 : !> \param pbd ...
14866 : !> \param pbc ...
14867 : !> \param pad ...
14868 : !> \param pac ...
14869 : !> \param prim ...
14870 : !> \param scale ...
14871 : ! **************************************************************************************************
14872 120 : SUBROUTINE block_2_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14873 : INTEGER :: mc_max, md_max
14874 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(2*md_max), kac(2*mc_max), &
14875 : pbd(15*md_max), pbc(15*mc_max), pad(2*md_max), pac(2*mc_max), prim(2*15*mc_max*md_max), &
14876 : scale
14877 :
14878 : INTEGER :: ma, mb, mc, md, p_index
14879 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14880 :
14881 12075 : kbd(1:15*md_max) = 0.0_dp
14882 5505 : kbc(1:15*mc_max) = 0.0_dp
14883 1714 : kad(1:2*md_max) = 0.0_dp
14884 838 : kac(1:2*mc_max) = 0.0_dp
14885 : p_index = 0
14886 917 : DO md = 1, md_max
14887 3289 : DO mc = 1, mc_max
14888 38749 : DO mb = 1, 15
14889 35580 : ks_bd = 0.0_dp
14890 35580 : ks_bc = 0.0_dp
14891 35580 : p_bd = pbd((md - 1)*15 + mb)
14892 35580 : p_bc = pbc((mc - 1)*15 + mb)
14893 106740 : DO ma = 1, 2
14894 71160 : p_index = p_index + 1
14895 71160 : tmp = scale*prim(p_index)
14896 71160 : ks_bc = ks_bc + tmp*pad((md - 1)*2 + ma)
14897 71160 : ks_bd = ks_bd + tmp*pac((mc - 1)*2 + ma)
14898 71160 : kad((md - 1)*2 + ma) = kad((md - 1)*2 + ma) - tmp*p_bc
14899 106740 : kac((mc - 1)*2 + ma) = kac((mc - 1)*2 + ma) - tmp*p_bd
14900 : END DO
14901 35580 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
14902 37952 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
14903 : END DO
14904 : END DO
14905 : END DO
14906 120 : END SUBROUTINE block_2_15
14907 : ! **************************************************************************************************
14908 : !> \brief ...
14909 : !> \param kbd ...
14910 : !> \param kbc ...
14911 : !> \param kad ...
14912 : !> \param kac ...
14913 : !> \param pbd ...
14914 : !> \param pbc ...
14915 : !> \param pad ...
14916 : !> \param pac ...
14917 : !> \param prim ...
14918 : !> \param scale ...
14919 : ! **************************************************************************************************
14920 4764201 : SUBROUTINE block_3_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14921 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(3*1), kac(3*1), &
14922 : pbd(1*1), pbc(1*1), pad(3*1), &
14923 : pac(3*1), prim(3*1*1*1), scale
14924 :
14925 : INTEGER :: ma, mb, mc, md, p_index
14926 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14927 :
14928 4764201 : kbd(1:1*1) = 0.0_dp
14929 4764201 : kbc(1:1*1) = 0.0_dp
14930 4764201 : kad(1:3*1) = 0.0_dp
14931 4764201 : kac(1:3*1) = 0.0_dp
14932 4764201 : p_index = 0
14933 9528402 : DO md = 1, 1
14934 14292603 : DO mc = 1, 1
14935 14292603 : DO mb = 1, 1
14936 4764201 : ks_bd = 0.0_dp
14937 4764201 : ks_bc = 0.0_dp
14938 4764201 : p_bd = pbd((md - 1)*1 + mb)
14939 4764201 : p_bc = pbc((mc - 1)*1 + mb)
14940 19056804 : DO ma = 1, 3
14941 14292603 : p_index = p_index + 1
14942 14292603 : tmp = scale*prim(p_index)
14943 14292603 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
14944 14292603 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
14945 14292603 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
14946 19056804 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
14947 : END DO
14948 4764201 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
14949 9528402 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
14950 : END DO
14951 : END DO
14952 : END DO
14953 4764201 : END SUBROUTINE block_3_1_1_1
14954 : ! **************************************************************************************************
14955 : !> \brief ...
14956 : !> \param kbd ...
14957 : !> \param kbc ...
14958 : !> \param kad ...
14959 : !> \param kac ...
14960 : !> \param pbd ...
14961 : !> \param pbc ...
14962 : !> \param pad ...
14963 : !> \param pac ...
14964 : !> \param prim ...
14965 : !> \param scale ...
14966 : ! **************************************************************************************************
14967 10150 : SUBROUTINE block_3_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
14968 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(3*2), kac(3*1), &
14969 : pbd(1*2), pbc(1*1), pad(3*2), &
14970 : pac(3*1), prim(3*1*1*2), scale
14971 :
14972 : INTEGER :: ma, mb, mc, md, p_index
14973 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
14974 :
14975 10150 : kbd(1:1*2) = 0.0_dp
14976 10150 : kbc(1:1*1) = 0.0_dp
14977 10150 : kad(1:3*2) = 0.0_dp
14978 10150 : kac(1:3*1) = 0.0_dp
14979 10150 : p_index = 0
14980 30450 : DO md = 1, 2
14981 50750 : DO mc = 1, 1
14982 60900 : DO mb = 1, 1
14983 20300 : ks_bd = 0.0_dp
14984 20300 : ks_bc = 0.0_dp
14985 20300 : p_bd = pbd((md - 1)*1 + mb)
14986 20300 : p_bc = pbc((mc - 1)*1 + mb)
14987 81200 : DO ma = 1, 3
14988 60900 : p_index = p_index + 1
14989 60900 : tmp = scale*prim(p_index)
14990 60900 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
14991 60900 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
14992 60900 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
14993 81200 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
14994 : END DO
14995 20300 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
14996 40600 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
14997 : END DO
14998 : END DO
14999 : END DO
15000 10150 : END SUBROUTINE block_3_1_1_2
15001 : ! **************************************************************************************************
15002 : !> \brief ...
15003 : !> \param kbd ...
15004 : !> \param kbc ...
15005 : !> \param kad ...
15006 : !> \param kac ...
15007 : !> \param pbd ...
15008 : !> \param pbc ...
15009 : !> \param pad ...
15010 : !> \param pac ...
15011 : !> \param prim ...
15012 : !> \param scale ...
15013 : ! **************************************************************************************************
15014 2657866 : SUBROUTINE block_3_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15015 : REAL(KIND=dp) :: kbd(1*3), kbc(1*1), kad(3*3), kac(3*1), &
15016 : pbd(1*3), pbc(1*1), pad(3*3), &
15017 : pac(3*1), prim(3*1*1*3), scale
15018 :
15019 : INTEGER :: ma, mb, mc, md, p_index
15020 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15021 :
15022 2657866 : kbd(1:1*3) = 0.0_dp
15023 2657866 : kbc(1:1*1) = 0.0_dp
15024 2657866 : kad(1:3*3) = 0.0_dp
15025 2657866 : kac(1:3*1) = 0.0_dp
15026 2657866 : p_index = 0
15027 10631464 : DO md = 1, 3
15028 18605062 : DO mc = 1, 1
15029 23920794 : DO mb = 1, 1
15030 7973598 : ks_bd = 0.0_dp
15031 7973598 : ks_bc = 0.0_dp
15032 7973598 : p_bd = pbd((md - 1)*1 + mb)
15033 7973598 : p_bc = pbc((mc - 1)*1 + mb)
15034 31894392 : DO ma = 1, 3
15035 23920794 : p_index = p_index + 1
15036 23920794 : tmp = scale*prim(p_index)
15037 23920794 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15038 23920794 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15039 23920794 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15040 31894392 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15041 : END DO
15042 7973598 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15043 15947196 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15044 : END DO
15045 : END DO
15046 : END DO
15047 2657866 : END SUBROUTINE block_3_1_1_3
15048 : ! **************************************************************************************************
15049 : !> \brief ...
15050 : !> \param kbd ...
15051 : !> \param kbc ...
15052 : !> \param kad ...
15053 : !> \param kac ...
15054 : !> \param pbd ...
15055 : !> \param pbc ...
15056 : !> \param pad ...
15057 : !> \param pac ...
15058 : !> \param prim ...
15059 : !> \param scale ...
15060 : ! **************************************************************************************************
15061 45955 : SUBROUTINE block_3_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15062 : REAL(KIND=dp) :: kbd(1*4), kbc(1*1), kad(3*4), kac(3*1), &
15063 : pbd(1*4), pbc(1*1), pad(3*4), &
15064 : pac(3*1), prim(3*1*1*4), scale
15065 :
15066 : INTEGER :: ma, mb, mc, md, p_index
15067 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15068 :
15069 45955 : kbd(1:1*4) = 0.0_dp
15070 45955 : kbc(1:1*1) = 0.0_dp
15071 45955 : kad(1:3*4) = 0.0_dp
15072 45955 : kac(1:3*1) = 0.0_dp
15073 45955 : p_index = 0
15074 229775 : DO md = 1, 4
15075 413595 : DO mc = 1, 1
15076 551460 : DO mb = 1, 1
15077 183820 : ks_bd = 0.0_dp
15078 183820 : ks_bc = 0.0_dp
15079 183820 : p_bd = pbd((md - 1)*1 + mb)
15080 183820 : p_bc = pbc((mc - 1)*1 + mb)
15081 735280 : DO ma = 1, 3
15082 551460 : p_index = p_index + 1
15083 551460 : tmp = scale*prim(p_index)
15084 551460 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15085 551460 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15086 551460 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15087 735280 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15088 : END DO
15089 183820 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15090 367640 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15091 : END DO
15092 : END DO
15093 : END DO
15094 45955 : END SUBROUTINE block_3_1_1_4
15095 : ! **************************************************************************************************
15096 : !> \brief ...
15097 : !> \param kbd ...
15098 : !> \param kbc ...
15099 : !> \param kad ...
15100 : !> \param kac ...
15101 : !> \param pbd ...
15102 : !> \param pbc ...
15103 : !> \param pad ...
15104 : !> \param pac ...
15105 : !> \param prim ...
15106 : !> \param scale ...
15107 : ! **************************************************************************************************
15108 95766 : SUBROUTINE block_3_1_1_5(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15109 : REAL(KIND=dp) :: kbd(1*5), kbc(1*1), kad(3*5), kac(3*1), &
15110 : pbd(1*5), pbc(1*1), pad(3*5), &
15111 : pac(3*1), prim(3*1*1*5), scale
15112 :
15113 : INTEGER :: ma, mb, mc, md, p_index
15114 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15115 :
15116 95766 : kbd(1:1*5) = 0.0_dp
15117 95766 : kbc(1:1*1) = 0.0_dp
15118 95766 : kad(1:3*5) = 0.0_dp
15119 95766 : kac(1:3*1) = 0.0_dp
15120 95766 : p_index = 0
15121 574596 : DO md = 1, 5
15122 1053426 : DO mc = 1, 1
15123 1436490 : DO mb = 1, 1
15124 478830 : ks_bd = 0.0_dp
15125 478830 : ks_bc = 0.0_dp
15126 478830 : p_bd = pbd((md - 1)*1 + mb)
15127 478830 : p_bc = pbc((mc - 1)*1 + mb)
15128 1915320 : DO ma = 1, 3
15129 1436490 : p_index = p_index + 1
15130 1436490 : tmp = scale*prim(p_index)
15131 1436490 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15132 1436490 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15133 1436490 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15134 1915320 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15135 : END DO
15136 478830 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15137 957660 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15138 : END DO
15139 : END DO
15140 : END DO
15141 95766 : END SUBROUTINE block_3_1_1_5
15142 : ! **************************************************************************************************
15143 : !> \brief ...
15144 : !> \param kbd ...
15145 : !> \param kbc ...
15146 : !> \param kad ...
15147 : !> \param kac ...
15148 : !> \param pbd ...
15149 : !> \param pbc ...
15150 : !> \param pad ...
15151 : !> \param pac ...
15152 : !> \param prim ...
15153 : !> \param scale ...
15154 : ! **************************************************************************************************
15155 5 : SUBROUTINE block_3_1_1_6(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15156 : REAL(KIND=dp) :: kbd(1*6), kbc(1*1), kad(3*6), kac(3*1), &
15157 : pbd(1*6), pbc(1*1), pad(3*6), &
15158 : pac(3*1), prim(3*1*1*6), scale
15159 :
15160 : INTEGER :: ma, mb, mc, md, p_index
15161 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15162 :
15163 5 : kbd(1:1*6) = 0.0_dp
15164 5 : kbc(1:1*1) = 0.0_dp
15165 5 : kad(1:3*6) = 0.0_dp
15166 5 : kac(1:3*1) = 0.0_dp
15167 5 : p_index = 0
15168 35 : DO md = 1, 6
15169 65 : DO mc = 1, 1
15170 90 : DO mb = 1, 1
15171 30 : ks_bd = 0.0_dp
15172 30 : ks_bc = 0.0_dp
15173 30 : p_bd = pbd((md - 1)*1 + mb)
15174 30 : p_bc = pbc((mc - 1)*1 + mb)
15175 120 : DO ma = 1, 3
15176 90 : p_index = p_index + 1
15177 90 : tmp = scale*prim(p_index)
15178 90 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15179 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15180 90 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15181 120 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15182 : END DO
15183 30 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15184 60 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15185 : END DO
15186 : END DO
15187 : END DO
15188 5 : END SUBROUTINE block_3_1_1_6
15189 : ! **************************************************************************************************
15190 : !> \brief ...
15191 : !> \param md_max ...
15192 : !> \param kbd ...
15193 : !> \param kbc ...
15194 : !> \param kad ...
15195 : !> \param kac ...
15196 : !> \param pbd ...
15197 : !> \param pbc ...
15198 : !> \param pad ...
15199 : !> \param pac ...
15200 : !> \param prim ...
15201 : !> \param scale ...
15202 : ! **************************************************************************************************
15203 16729 : SUBROUTINE block_3_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15204 : INTEGER :: md_max
15205 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(3*md_max), kac(3*1), pbd(1*md_max), pbc(1*1), &
15206 : pad(3*md_max), pac(3*1), prim(3*1*1*md_max), scale
15207 :
15208 : INTEGER :: ma, mb, mc, md, p_index
15209 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15210 :
15211 133885 : kbd(1:1*md_max) = 0.0_dp
15212 16729 : kbc(1:1*1) = 0.0_dp
15213 368197 : kad(1:3*md_max) = 0.0_dp
15214 16729 : kac(1:3*1) = 0.0_dp
15215 16729 : p_index = 0
15216 133885 : DO md = 1, md_max
15217 251041 : DO mc = 1, 1
15218 351468 : DO mb = 1, 1
15219 117156 : ks_bd = 0.0_dp
15220 117156 : ks_bc = 0.0_dp
15221 117156 : p_bd = pbd((md - 1)*1 + mb)
15222 117156 : p_bc = pbc((mc - 1)*1 + mb)
15223 468624 : DO ma = 1, 3
15224 351468 : p_index = p_index + 1
15225 351468 : tmp = scale*prim(p_index)
15226 351468 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15227 351468 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15228 351468 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15229 468624 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15230 : END DO
15231 117156 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15232 234312 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15233 : END DO
15234 : END DO
15235 : END DO
15236 16729 : END SUBROUTINE block_3_1_1
15237 : ! **************************************************************************************************
15238 : !> \brief ...
15239 : !> \param kbd ...
15240 : !> \param kbc ...
15241 : !> \param kad ...
15242 : !> \param kac ...
15243 : !> \param pbd ...
15244 : !> \param pbc ...
15245 : !> \param pad ...
15246 : !> \param pac ...
15247 : !> \param prim ...
15248 : !> \param scale ...
15249 : ! **************************************************************************************************
15250 31980 : SUBROUTINE block_3_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15251 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(3*1), kac(3*2), &
15252 : pbd(1*1), pbc(1*2), pad(3*1), &
15253 : pac(3*2), prim(3*1*2*1), scale
15254 :
15255 : INTEGER :: ma, mb, mc, md, p_index
15256 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15257 :
15258 31980 : kbd(1:1*1) = 0.0_dp
15259 31980 : kbc(1:1*2) = 0.0_dp
15260 31980 : kad(1:3*1) = 0.0_dp
15261 31980 : kac(1:3*2) = 0.0_dp
15262 31980 : p_index = 0
15263 63960 : DO md = 1, 1
15264 127920 : DO mc = 1, 2
15265 159900 : DO mb = 1, 1
15266 63960 : ks_bd = 0.0_dp
15267 63960 : ks_bc = 0.0_dp
15268 63960 : p_bd = pbd((md - 1)*1 + mb)
15269 63960 : p_bc = pbc((mc - 1)*1 + mb)
15270 255840 : DO ma = 1, 3
15271 191880 : p_index = p_index + 1
15272 191880 : tmp = scale*prim(p_index)
15273 191880 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15274 191880 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15275 191880 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15276 255840 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15277 : END DO
15278 63960 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15279 127920 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15280 : END DO
15281 : END DO
15282 : END DO
15283 31980 : END SUBROUTINE block_3_1_2_1
15284 : ! **************************************************************************************************
15285 : !> \brief ...
15286 : !> \param kbd ...
15287 : !> \param kbc ...
15288 : !> \param kad ...
15289 : !> \param kac ...
15290 : !> \param pbd ...
15291 : !> \param pbc ...
15292 : !> \param pad ...
15293 : !> \param pac ...
15294 : !> \param prim ...
15295 : !> \param scale ...
15296 : ! **************************************************************************************************
15297 4869 : SUBROUTINE block_3_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15298 : REAL(KIND=dp) :: kbd(1*2), kbc(1*2), kad(3*2), kac(3*2), &
15299 : pbd(1*2), pbc(1*2), pad(3*2), &
15300 : pac(3*2), prim(3*1*2*2), scale
15301 :
15302 : INTEGER :: ma, mb, mc, md, p_index
15303 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15304 :
15305 4869 : kbd(1:1*2) = 0.0_dp
15306 4869 : kbc(1:1*2) = 0.0_dp
15307 4869 : kad(1:3*2) = 0.0_dp
15308 4869 : kac(1:3*2) = 0.0_dp
15309 4869 : p_index = 0
15310 14607 : DO md = 1, 2
15311 34083 : DO mc = 1, 2
15312 48690 : DO mb = 1, 1
15313 19476 : ks_bd = 0.0_dp
15314 19476 : ks_bc = 0.0_dp
15315 19476 : p_bd = pbd((md - 1)*1 + mb)
15316 19476 : p_bc = pbc((mc - 1)*1 + mb)
15317 77904 : DO ma = 1, 3
15318 58428 : p_index = p_index + 1
15319 58428 : tmp = scale*prim(p_index)
15320 58428 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15321 58428 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15322 58428 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15323 77904 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15324 : END DO
15325 19476 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15326 38952 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15327 : END DO
15328 : END DO
15329 : END DO
15330 4869 : END SUBROUTINE block_3_1_2_2
15331 : ! **************************************************************************************************
15332 : !> \brief ...
15333 : !> \param kbd ...
15334 : !> \param kbc ...
15335 : !> \param kad ...
15336 : !> \param kac ...
15337 : !> \param pbd ...
15338 : !> \param pbc ...
15339 : !> \param pad ...
15340 : !> \param pac ...
15341 : !> \param prim ...
15342 : !> \param scale ...
15343 : ! **************************************************************************************************
15344 29704 : SUBROUTINE block_3_1_2_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15345 : REAL(KIND=dp) :: kbd(1*3), kbc(1*2), kad(3*3), kac(3*2), &
15346 : pbd(1*3), pbc(1*2), pad(3*3), &
15347 : pac(3*2), prim(3*1*2*3), scale
15348 :
15349 : INTEGER :: ma, mb, mc, md, p_index
15350 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15351 :
15352 29704 : kbd(1:1*3) = 0.0_dp
15353 29704 : kbc(1:1*2) = 0.0_dp
15354 29704 : kad(1:3*3) = 0.0_dp
15355 29704 : kac(1:3*2) = 0.0_dp
15356 29704 : p_index = 0
15357 118816 : DO md = 1, 3
15358 297040 : DO mc = 1, 2
15359 445560 : DO mb = 1, 1
15360 178224 : ks_bd = 0.0_dp
15361 178224 : ks_bc = 0.0_dp
15362 178224 : p_bd = pbd((md - 1)*1 + mb)
15363 178224 : p_bc = pbc((mc - 1)*1 + mb)
15364 712896 : DO ma = 1, 3
15365 534672 : p_index = p_index + 1
15366 534672 : tmp = scale*prim(p_index)
15367 534672 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15368 534672 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15369 534672 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15370 712896 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15371 : END DO
15372 178224 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15373 356448 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15374 : END DO
15375 : END DO
15376 : END DO
15377 29704 : END SUBROUTINE block_3_1_2_3
15378 : ! **************************************************************************************************
15379 : !> \brief ...
15380 : !> \param md_max ...
15381 : !> \param kbd ...
15382 : !> \param kbc ...
15383 : !> \param kad ...
15384 : !> \param kac ...
15385 : !> \param pbd ...
15386 : !> \param pbc ...
15387 : !> \param pad ...
15388 : !> \param pac ...
15389 : !> \param prim ...
15390 : !> \param scale ...
15391 : ! **************************************************************************************************
15392 11118 : SUBROUTINE block_3_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15393 : INTEGER :: md_max
15394 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(3*md_max), kac(3*2), pbd(1*md_max), pbc(1*2), &
15395 : pad(3*md_max), pac(3*2), prim(3*1*2*md_max), scale
15396 :
15397 : INTEGER :: ma, mb, mc, md, p_index
15398 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15399 :
15400 68720 : kbd(1:1*md_max) = 0.0_dp
15401 11118 : kbc(1:1*2) = 0.0_dp
15402 183924 : kad(1:3*md_max) = 0.0_dp
15403 11118 : kac(1:3*2) = 0.0_dp
15404 11118 : p_index = 0
15405 68720 : DO md = 1, md_max
15406 183924 : DO mc = 1, 2
15407 288010 : DO mb = 1, 1
15408 115204 : ks_bd = 0.0_dp
15409 115204 : ks_bc = 0.0_dp
15410 115204 : p_bd = pbd((md - 1)*1 + mb)
15411 115204 : p_bc = pbc((mc - 1)*1 + mb)
15412 460816 : DO ma = 1, 3
15413 345612 : p_index = p_index + 1
15414 345612 : tmp = scale*prim(p_index)
15415 345612 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15416 345612 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15417 345612 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15418 460816 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15419 : END DO
15420 115204 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15421 230408 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15422 : END DO
15423 : END DO
15424 : END DO
15425 11118 : END SUBROUTINE block_3_1_2
15426 : ! **************************************************************************************************
15427 : !> \brief ...
15428 : !> \param kbd ...
15429 : !> \param kbc ...
15430 : !> \param kad ...
15431 : !> \param kac ...
15432 : !> \param pbd ...
15433 : !> \param pbc ...
15434 : !> \param pad ...
15435 : !> \param pac ...
15436 : !> \param prim ...
15437 : !> \param scale ...
15438 : ! **************************************************************************************************
15439 4096262 : SUBROUTINE block_3_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15440 : REAL(KIND=dp) :: kbd(1*1), kbc(1*3), kad(3*1), kac(3*3), &
15441 : pbd(1*1), pbc(1*3), pad(3*1), &
15442 : pac(3*3), prim(3*1*3*1), scale
15443 :
15444 : INTEGER :: ma, mb, mc, md, p_index
15445 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15446 :
15447 4096262 : kbd(1:1*1) = 0.0_dp
15448 4096262 : kbc(1:1*3) = 0.0_dp
15449 4096262 : kad(1:3*1) = 0.0_dp
15450 4096262 : kac(1:3*3) = 0.0_dp
15451 4096262 : p_index = 0
15452 8192524 : DO md = 1, 1
15453 20481310 : DO mc = 1, 3
15454 28673834 : DO mb = 1, 1
15455 12288786 : ks_bd = 0.0_dp
15456 12288786 : ks_bc = 0.0_dp
15457 12288786 : p_bd = pbd((md - 1)*1 + mb)
15458 12288786 : p_bc = pbc((mc - 1)*1 + mb)
15459 49155144 : DO ma = 1, 3
15460 36866358 : p_index = p_index + 1
15461 36866358 : tmp = scale*prim(p_index)
15462 36866358 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15463 36866358 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15464 36866358 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15465 49155144 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15466 : END DO
15467 12288786 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15468 24577572 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15469 : END DO
15470 : END DO
15471 : END DO
15472 4096262 : END SUBROUTINE block_3_1_3_1
15473 : ! **************************************************************************************************
15474 : !> \brief ...
15475 : !> \param kbd ...
15476 : !> \param kbc ...
15477 : !> \param kad ...
15478 : !> \param kac ...
15479 : !> \param pbd ...
15480 : !> \param pbc ...
15481 : !> \param pad ...
15482 : !> \param pac ...
15483 : !> \param prim ...
15484 : !> \param scale ...
15485 : ! **************************************************************************************************
15486 15149 : SUBROUTINE block_3_1_3_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15487 : REAL(KIND=dp) :: kbd(1*2), kbc(1*3), kad(3*2), kac(3*3), &
15488 : pbd(1*2), pbc(1*3), pad(3*2), &
15489 : pac(3*3), prim(3*1*3*2), scale
15490 :
15491 : INTEGER :: ma, mb, mc, md, p_index
15492 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15493 :
15494 15149 : kbd(1:1*2) = 0.0_dp
15495 15149 : kbc(1:1*3) = 0.0_dp
15496 15149 : kad(1:3*2) = 0.0_dp
15497 15149 : kac(1:3*3) = 0.0_dp
15498 15149 : p_index = 0
15499 45447 : DO md = 1, 2
15500 136341 : DO mc = 1, 3
15501 212086 : DO mb = 1, 1
15502 90894 : ks_bd = 0.0_dp
15503 90894 : ks_bc = 0.0_dp
15504 90894 : p_bd = pbd((md - 1)*1 + mb)
15505 90894 : p_bc = pbc((mc - 1)*1 + mb)
15506 363576 : DO ma = 1, 3
15507 272682 : p_index = p_index + 1
15508 272682 : tmp = scale*prim(p_index)
15509 272682 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15510 272682 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15511 272682 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15512 363576 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15513 : END DO
15514 90894 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15515 181788 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15516 : END DO
15517 : END DO
15518 : END DO
15519 15149 : END SUBROUTINE block_3_1_3_2
15520 : ! **************************************************************************************************
15521 : !> \brief ...
15522 : !> \param md_max ...
15523 : !> \param kbd ...
15524 : !> \param kbc ...
15525 : !> \param kad ...
15526 : !> \param kac ...
15527 : !> \param pbd ...
15528 : !> \param pbc ...
15529 : !> \param pad ...
15530 : !> \param pac ...
15531 : !> \param prim ...
15532 : !> \param scale ...
15533 : ! **************************************************************************************************
15534 2654042 : SUBROUTINE block_3_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15535 : INTEGER :: md_max
15536 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*3), kad(3*md_max), kac(3*3), pbd(1*md_max), pbc(1*3), &
15537 : pad(3*md_max), pac(3*3), prim(3*1*3*md_max), scale
15538 :
15539 : INTEGER :: ma, mb, mc, md, p_index
15540 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15541 :
15542 10868521 : kbd(1:1*md_max) = 0.0_dp
15543 2654042 : kbc(1:1*3) = 0.0_dp
15544 27297479 : kad(1:3*md_max) = 0.0_dp
15545 2654042 : kac(1:3*3) = 0.0_dp
15546 2654042 : p_index = 0
15547 10868521 : DO md = 1, md_max
15548 35511958 : DO mc = 1, 3
15549 57501353 : DO mb = 1, 1
15550 24643437 : ks_bd = 0.0_dp
15551 24643437 : ks_bc = 0.0_dp
15552 24643437 : p_bd = pbd((md - 1)*1 + mb)
15553 24643437 : p_bc = pbc((mc - 1)*1 + mb)
15554 98573748 : DO ma = 1, 3
15555 73930311 : p_index = p_index + 1
15556 73930311 : tmp = scale*prim(p_index)
15557 73930311 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15558 73930311 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15559 73930311 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15560 98573748 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15561 : END DO
15562 24643437 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15563 49286874 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15564 : END DO
15565 : END DO
15566 : END DO
15567 2654042 : END SUBROUTINE block_3_1_3
15568 : ! **************************************************************************************************
15569 : !> \brief ...
15570 : !> \param kbd ...
15571 : !> \param kbc ...
15572 : !> \param kad ...
15573 : !> \param kac ...
15574 : !> \param pbd ...
15575 : !> \param pbc ...
15576 : !> \param pad ...
15577 : !> \param pac ...
15578 : !> \param prim ...
15579 : !> \param scale ...
15580 : ! **************************************************************************************************
15581 226628 : SUBROUTINE block_3_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15582 : REAL(KIND=dp) :: kbd(1*1), kbc(1*4), kad(3*1), kac(3*4), &
15583 : pbd(1*1), pbc(1*4), pad(3*1), &
15584 : pac(3*4), prim(3*1*4*1), scale
15585 :
15586 : INTEGER :: ma, mb, mc, md, p_index
15587 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15588 :
15589 226628 : kbd(1:1*1) = 0.0_dp
15590 226628 : kbc(1:1*4) = 0.0_dp
15591 226628 : kad(1:3*1) = 0.0_dp
15592 226628 : kac(1:3*4) = 0.0_dp
15593 226628 : p_index = 0
15594 453256 : DO md = 1, 1
15595 1359768 : DO mc = 1, 4
15596 2039652 : DO mb = 1, 1
15597 906512 : ks_bd = 0.0_dp
15598 906512 : ks_bc = 0.0_dp
15599 906512 : p_bd = pbd((md - 1)*1 + mb)
15600 906512 : p_bc = pbc((mc - 1)*1 + mb)
15601 3626048 : DO ma = 1, 3
15602 2719536 : p_index = p_index + 1
15603 2719536 : tmp = scale*prim(p_index)
15604 2719536 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15605 2719536 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15606 2719536 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15607 3626048 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15608 : END DO
15609 906512 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15610 1813024 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15611 : END DO
15612 : END DO
15613 : END DO
15614 226628 : END SUBROUTINE block_3_1_4_1
15615 : ! **************************************************************************************************
15616 : !> \brief ...
15617 : !> \param md_max ...
15618 : !> \param kbd ...
15619 : !> \param kbc ...
15620 : !> \param kad ...
15621 : !> \param kac ...
15622 : !> \param pbd ...
15623 : !> \param pbc ...
15624 : !> \param pad ...
15625 : !> \param pac ...
15626 : !> \param prim ...
15627 : !> \param scale ...
15628 : ! **************************************************************************************************
15629 267633 : SUBROUTINE block_3_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15630 : INTEGER :: md_max
15631 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*4), kad(3*md_max), kac(3*4), pbd(1*md_max), pbc(1*4), &
15632 : pad(3*md_max), pac(3*4), prim(3*1*4*md_max), scale
15633 :
15634 : INTEGER :: ma, mb, mc, md, p_index
15635 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15636 :
15637 1290109 : kbd(1:1*md_max) = 0.0_dp
15638 267633 : kbc(1:1*4) = 0.0_dp
15639 3335061 : kad(1:3*md_max) = 0.0_dp
15640 267633 : kac(1:3*4) = 0.0_dp
15641 267633 : p_index = 0
15642 1290109 : DO md = 1, md_max
15643 5380013 : DO mc = 1, 4
15644 9202284 : DO mb = 1, 1
15645 4089904 : ks_bd = 0.0_dp
15646 4089904 : ks_bc = 0.0_dp
15647 4089904 : p_bd = pbd((md - 1)*1 + mb)
15648 4089904 : p_bc = pbc((mc - 1)*1 + mb)
15649 16359616 : DO ma = 1, 3
15650 12269712 : p_index = p_index + 1
15651 12269712 : tmp = scale*prim(p_index)
15652 12269712 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15653 12269712 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15654 12269712 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15655 16359616 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15656 : END DO
15657 4089904 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15658 8179808 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15659 : END DO
15660 : END DO
15661 : END DO
15662 267633 : END SUBROUTINE block_3_1_4
15663 : ! **************************************************************************************************
15664 : !> \brief ...
15665 : !> \param kbd ...
15666 : !> \param kbc ...
15667 : !> \param kad ...
15668 : !> \param kac ...
15669 : !> \param pbd ...
15670 : !> \param pbc ...
15671 : !> \param pad ...
15672 : !> \param pac ...
15673 : !> \param prim ...
15674 : !> \param scale ...
15675 : ! **************************************************************************************************
15676 281568 : SUBROUTINE block_3_1_5_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15677 : REAL(KIND=dp) :: kbd(1*1), kbc(1*5), kad(3*1), kac(3*5), &
15678 : pbd(1*1), pbc(1*5), pad(3*1), &
15679 : pac(3*5), prim(3*1*5*1), scale
15680 :
15681 : INTEGER :: ma, mb, mc, md, p_index
15682 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15683 :
15684 281568 : kbd(1:1*1) = 0.0_dp
15685 281568 : kbc(1:1*5) = 0.0_dp
15686 281568 : kad(1:3*1) = 0.0_dp
15687 281568 : kac(1:3*5) = 0.0_dp
15688 281568 : p_index = 0
15689 563136 : DO md = 1, 1
15690 1970976 : DO mc = 1, 5
15691 3097248 : DO mb = 1, 1
15692 1407840 : ks_bd = 0.0_dp
15693 1407840 : ks_bc = 0.0_dp
15694 1407840 : p_bd = pbd((md - 1)*1 + mb)
15695 1407840 : p_bc = pbc((mc - 1)*1 + mb)
15696 5631360 : DO ma = 1, 3
15697 4223520 : p_index = p_index + 1
15698 4223520 : tmp = scale*prim(p_index)
15699 4223520 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15700 4223520 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15701 4223520 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15702 5631360 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15703 : END DO
15704 1407840 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15705 2815680 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15706 : END DO
15707 : END DO
15708 : END DO
15709 281568 : END SUBROUTINE block_3_1_5_1
15710 : ! **************************************************************************************************
15711 : !> \brief ...
15712 : !> \param md_max ...
15713 : !> \param kbd ...
15714 : !> \param kbc ...
15715 : !> \param kad ...
15716 : !> \param kac ...
15717 : !> \param pbd ...
15718 : !> \param pbc ...
15719 : !> \param pad ...
15720 : !> \param pac ...
15721 : !> \param prim ...
15722 : !> \param scale ...
15723 : ! **************************************************************************************************
15724 314114 : SUBROUTINE block_3_1_5(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15725 : INTEGER :: md_max
15726 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*5), kad(3*md_max), kac(3*5), pbd(1*md_max), pbc(1*5), &
15727 : pad(3*md_max), pac(3*5), prim(3*1*5*md_max), scale
15728 :
15729 : INTEGER :: ma, mb, mc, md, p_index
15730 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15731 :
15732 1470226 : kbd(1:1*md_max) = 0.0_dp
15733 314114 : kbc(1:1*5) = 0.0_dp
15734 3782450 : kad(1:3*md_max) = 0.0_dp
15735 314114 : kac(1:3*5) = 0.0_dp
15736 314114 : p_index = 0
15737 1470226 : DO md = 1, md_max
15738 7250786 : DO mc = 1, 5
15739 12717232 : DO mb = 1, 1
15740 5780560 : ks_bd = 0.0_dp
15741 5780560 : ks_bc = 0.0_dp
15742 5780560 : p_bd = pbd((md - 1)*1 + mb)
15743 5780560 : p_bc = pbc((mc - 1)*1 + mb)
15744 23122240 : DO ma = 1, 3
15745 17341680 : p_index = p_index + 1
15746 17341680 : tmp = scale*prim(p_index)
15747 17341680 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15748 17341680 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15749 17341680 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15750 23122240 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15751 : END DO
15752 5780560 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15753 11561120 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15754 : END DO
15755 : END DO
15756 : END DO
15757 314114 : END SUBROUTINE block_3_1_5
15758 : ! **************************************************************************************************
15759 : !> \brief ...
15760 : !> \param kbd ...
15761 : !> \param kbc ...
15762 : !> \param kad ...
15763 : !> \param kac ...
15764 : !> \param pbd ...
15765 : !> \param pbc ...
15766 : !> \param pad ...
15767 : !> \param pac ...
15768 : !> \param prim ...
15769 : !> \param scale ...
15770 : ! **************************************************************************************************
15771 1 : SUBROUTINE block_3_1_6_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15772 : REAL(KIND=dp) :: kbd(1*1), kbc(1*6), kad(3*1), kac(3*6), &
15773 : pbd(1*1), pbc(1*6), pad(3*1), &
15774 : pac(3*6), prim(3*1*6*1), scale
15775 :
15776 : INTEGER :: ma, mb, mc, md, p_index
15777 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15778 :
15779 1 : kbd(1:1*1) = 0.0_dp
15780 1 : kbc(1:1*6) = 0.0_dp
15781 1 : kad(1:3*1) = 0.0_dp
15782 1 : kac(1:3*6) = 0.0_dp
15783 1 : p_index = 0
15784 2 : DO md = 1, 1
15785 8 : DO mc = 1, 6
15786 13 : DO mb = 1, 1
15787 6 : ks_bd = 0.0_dp
15788 6 : ks_bc = 0.0_dp
15789 6 : p_bd = pbd((md - 1)*1 + mb)
15790 6 : p_bc = pbc((mc - 1)*1 + mb)
15791 24 : DO ma = 1, 3
15792 18 : p_index = p_index + 1
15793 18 : tmp = scale*prim(p_index)
15794 18 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15795 18 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15796 18 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15797 24 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15798 : END DO
15799 6 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15800 12 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15801 : END DO
15802 : END DO
15803 : END DO
15804 1 : END SUBROUTINE block_3_1_6_1
15805 : ! **************************************************************************************************
15806 : !> \brief ...
15807 : !> \param md_max ...
15808 : !> \param kbd ...
15809 : !> \param kbc ...
15810 : !> \param kad ...
15811 : !> \param kac ...
15812 : !> \param pbd ...
15813 : !> \param pbc ...
15814 : !> \param pad ...
15815 : !> \param pac ...
15816 : !> \param prim ...
15817 : !> \param scale ...
15818 : ! **************************************************************************************************
15819 10 : SUBROUTINE block_3_1_6(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15820 : INTEGER :: md_max
15821 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*6), kad(3*md_max), kac(3*6), pbd(1*md_max), pbc(1*6), &
15822 : pad(3*md_max), pac(3*6), prim(3*1*6*md_max), scale
15823 :
15824 : INTEGER :: ma, mb, mc, md, p_index
15825 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15826 :
15827 68 : kbd(1:1*md_max) = 0.0_dp
15828 10 : kbc(1:1*6) = 0.0_dp
15829 184 : kad(1:3*md_max) = 0.0_dp
15830 10 : kac(1:3*6) = 0.0_dp
15831 10 : p_index = 0
15832 68 : DO md = 1, md_max
15833 416 : DO mc = 1, 6
15834 754 : DO mb = 1, 1
15835 348 : ks_bd = 0.0_dp
15836 348 : ks_bc = 0.0_dp
15837 348 : p_bd = pbd((md - 1)*1 + mb)
15838 348 : p_bc = pbc((mc - 1)*1 + mb)
15839 1392 : DO ma = 1, 3
15840 1044 : p_index = p_index + 1
15841 1044 : tmp = scale*prim(p_index)
15842 1044 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15843 1044 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15844 1044 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15845 1392 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15846 : END DO
15847 348 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15848 696 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15849 : END DO
15850 : END DO
15851 : END DO
15852 10 : END SUBROUTINE block_3_1_6
15853 : ! **************************************************************************************************
15854 : !> \brief ...
15855 : !> \param mc_max ...
15856 : !> \param md_max ...
15857 : !> \param kbd ...
15858 : !> \param kbc ...
15859 : !> \param kad ...
15860 : !> \param kac ...
15861 : !> \param pbd ...
15862 : !> \param pbc ...
15863 : !> \param pad ...
15864 : !> \param pac ...
15865 : !> \param prim ...
15866 : !> \param scale ...
15867 : ! **************************************************************************************************
15868 73036 : SUBROUTINE block_3_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15869 : INTEGER :: mc_max, md_max
15870 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(3*md_max), kac(3*mc_max), pbd(1*md_max), &
15871 : pbc(1*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*1*mc_max*md_max), scale
15872 :
15873 : INTEGER :: ma, mb, mc, md, p_index
15874 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15875 :
15876 257802 : kbd(1:1*md_max) = 0.0_dp
15877 584459 : kbc(1:1*mc_max) = 0.0_dp
15878 627334 : kad(1:3*md_max) = 0.0_dp
15879 1607305 : kac(1:3*mc_max) = 0.0_dp
15880 : p_index = 0
15881 257802 : DO md = 1, md_max
15882 1552195 : DO mc = 1, mc_max
15883 2773552 : DO mb = 1, 1
15884 1294393 : ks_bd = 0.0_dp
15885 1294393 : ks_bc = 0.0_dp
15886 1294393 : p_bd = pbd((md - 1)*1 + mb)
15887 1294393 : p_bc = pbc((mc - 1)*1 + mb)
15888 5177572 : DO ma = 1, 3
15889 3883179 : p_index = p_index + 1
15890 3883179 : tmp = scale*prim(p_index)
15891 3883179 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15892 3883179 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15893 3883179 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15894 5177572 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15895 : END DO
15896 1294393 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
15897 2588786 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
15898 : END DO
15899 : END DO
15900 : END DO
15901 73036 : END SUBROUTINE block_3_1
15902 : ! **************************************************************************************************
15903 : !> \brief ...
15904 : !> \param kbd ...
15905 : !> \param kbc ...
15906 : !> \param kad ...
15907 : !> \param kac ...
15908 : !> \param pbd ...
15909 : !> \param pbc ...
15910 : !> \param pad ...
15911 : !> \param pac ...
15912 : !> \param prim ...
15913 : !> \param scale ...
15914 : ! **************************************************************************************************
15915 2425 : SUBROUTINE block_3_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15916 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(3*1), kac(3*1), &
15917 : pbd(2*1), pbc(2*1), pad(3*1), &
15918 : pac(3*1), prim(3*2*1*1), scale
15919 :
15920 : INTEGER :: ma, mb, mc, md, p_index
15921 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15922 :
15923 2425 : kbd(1:2*1) = 0.0_dp
15924 2425 : kbc(1:2*1) = 0.0_dp
15925 2425 : kad(1:3*1) = 0.0_dp
15926 2425 : kac(1:3*1) = 0.0_dp
15927 2425 : p_index = 0
15928 4850 : DO md = 1, 1
15929 7275 : DO mc = 1, 1
15930 9700 : DO mb = 1, 2
15931 4850 : ks_bd = 0.0_dp
15932 4850 : ks_bc = 0.0_dp
15933 4850 : p_bd = pbd((md - 1)*2 + mb)
15934 4850 : p_bc = pbc((mc - 1)*2 + mb)
15935 19400 : DO ma = 1, 3
15936 14550 : p_index = p_index + 1
15937 14550 : tmp = scale*prim(p_index)
15938 14550 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15939 14550 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15940 14550 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15941 19400 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15942 : END DO
15943 4850 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
15944 7275 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
15945 : END DO
15946 : END DO
15947 : END DO
15948 2425 : END SUBROUTINE block_3_2_1_1
15949 : ! **************************************************************************************************
15950 : !> \brief ...
15951 : !> \param kbd ...
15952 : !> \param kbc ...
15953 : !> \param kad ...
15954 : !> \param kac ...
15955 : !> \param pbd ...
15956 : !> \param pbc ...
15957 : !> \param pad ...
15958 : !> \param pac ...
15959 : !> \param prim ...
15960 : !> \param scale ...
15961 : ! **************************************************************************************************
15962 942 : SUBROUTINE block_3_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
15963 : REAL(KIND=dp) :: kbd(2*2), kbc(2*1), kad(3*2), kac(3*1), &
15964 : pbd(2*2), pbc(2*1), pad(3*2), &
15965 : pac(3*1), prim(3*2*1*2), scale
15966 :
15967 : INTEGER :: ma, mb, mc, md, p_index
15968 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
15969 :
15970 942 : kbd(1:2*2) = 0.0_dp
15971 942 : kbc(1:2*1) = 0.0_dp
15972 942 : kad(1:3*2) = 0.0_dp
15973 942 : kac(1:3*1) = 0.0_dp
15974 942 : p_index = 0
15975 2826 : DO md = 1, 2
15976 4710 : DO mc = 1, 1
15977 7536 : DO mb = 1, 2
15978 3768 : ks_bd = 0.0_dp
15979 3768 : ks_bc = 0.0_dp
15980 3768 : p_bd = pbd((md - 1)*2 + mb)
15981 3768 : p_bc = pbc((mc - 1)*2 + mb)
15982 15072 : DO ma = 1, 3
15983 11304 : p_index = p_index + 1
15984 11304 : tmp = scale*prim(p_index)
15985 11304 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
15986 11304 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
15987 11304 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
15988 15072 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
15989 : END DO
15990 3768 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
15991 5652 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
15992 : END DO
15993 : END DO
15994 : END DO
15995 942 : END SUBROUTINE block_3_2_1_2
15996 : ! **************************************************************************************************
15997 : !> \brief ...
15998 : !> \param kbd ...
15999 : !> \param kbc ...
16000 : !> \param kad ...
16001 : !> \param kac ...
16002 : !> \param pbd ...
16003 : !> \param pbc ...
16004 : !> \param pad ...
16005 : !> \param pac ...
16006 : !> \param prim ...
16007 : !> \param scale ...
16008 : ! **************************************************************************************************
16009 3540 : SUBROUTINE block_3_2_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16010 : REAL(KIND=dp) :: kbd(2*3), kbc(2*1), kad(3*3), kac(3*1), &
16011 : pbd(2*3), pbc(2*1), pad(3*3), &
16012 : pac(3*1), prim(3*2*1*3), scale
16013 :
16014 : INTEGER :: ma, mb, mc, md, p_index
16015 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16016 :
16017 3540 : kbd(1:2*3) = 0.0_dp
16018 3540 : kbc(1:2*1) = 0.0_dp
16019 3540 : kad(1:3*3) = 0.0_dp
16020 3540 : kac(1:3*1) = 0.0_dp
16021 3540 : p_index = 0
16022 14160 : DO md = 1, 3
16023 24780 : DO mc = 1, 1
16024 42480 : DO mb = 1, 2
16025 21240 : ks_bd = 0.0_dp
16026 21240 : ks_bc = 0.0_dp
16027 21240 : p_bd = pbd((md - 1)*2 + mb)
16028 21240 : p_bc = pbc((mc - 1)*2 + mb)
16029 84960 : DO ma = 1, 3
16030 63720 : p_index = p_index + 1
16031 63720 : tmp = scale*prim(p_index)
16032 63720 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16033 63720 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16034 63720 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16035 84960 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16036 : END DO
16037 21240 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
16038 31860 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
16039 : END DO
16040 : END DO
16041 : END DO
16042 3540 : END SUBROUTINE block_3_2_1_3
16043 : ! **************************************************************************************************
16044 : !> \brief ...
16045 : !> \param md_max ...
16046 : !> \param kbd ...
16047 : !> \param kbc ...
16048 : !> \param kad ...
16049 : !> \param kac ...
16050 : !> \param pbd ...
16051 : !> \param pbc ...
16052 : !> \param pad ...
16053 : !> \param pac ...
16054 : !> \param prim ...
16055 : !> \param scale ...
16056 : ! **************************************************************************************************
16057 3367 : SUBROUTINE block_3_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16058 : INTEGER :: md_max
16059 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(3*md_max), kac(3*1), pbd(2*md_max), pbc(2*1), &
16060 : pad(3*md_max), pac(3*1), prim(3*2*1*md_max), scale
16061 :
16062 : INTEGER :: ma, mb, mc, md, p_index
16063 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16064 :
16065 40931 : kbd(1:2*md_max) = 0.0_dp
16066 3367 : kbc(1:2*1) = 0.0_dp
16067 59713 : kad(1:3*md_max) = 0.0_dp
16068 3367 : kac(1:3*1) = 0.0_dp
16069 3367 : p_index = 0
16070 22149 : DO md = 1, md_max
16071 40931 : DO mc = 1, 1
16072 75128 : DO mb = 1, 2
16073 37564 : ks_bd = 0.0_dp
16074 37564 : ks_bc = 0.0_dp
16075 37564 : p_bd = pbd((md - 1)*2 + mb)
16076 37564 : p_bc = pbc((mc - 1)*2 + mb)
16077 150256 : DO ma = 1, 3
16078 112692 : p_index = p_index + 1
16079 112692 : tmp = scale*prim(p_index)
16080 112692 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16081 112692 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16082 112692 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16083 150256 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16084 : END DO
16085 37564 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
16086 56346 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
16087 : END DO
16088 : END DO
16089 : END DO
16090 3367 : END SUBROUTINE block_3_2_1
16091 : ! **************************************************************************************************
16092 : !> \brief ...
16093 : !> \param kbd ...
16094 : !> \param kbc ...
16095 : !> \param kad ...
16096 : !> \param kac ...
16097 : !> \param pbd ...
16098 : !> \param pbc ...
16099 : !> \param pad ...
16100 : !> \param pac ...
16101 : !> \param prim ...
16102 : !> \param scale ...
16103 : ! **************************************************************************************************
16104 939 : SUBROUTINE block_3_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16105 : REAL(KIND=dp) :: kbd(2*1), kbc(2*2), kad(3*1), kac(3*2), &
16106 : pbd(2*1), pbc(2*2), pad(3*1), &
16107 : pac(3*2), prim(3*2*2*1), scale
16108 :
16109 : INTEGER :: ma, mb, mc, md, p_index
16110 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16111 :
16112 939 : kbd(1:2*1) = 0.0_dp
16113 939 : kbc(1:2*2) = 0.0_dp
16114 939 : kad(1:3*1) = 0.0_dp
16115 939 : kac(1:3*2) = 0.0_dp
16116 939 : p_index = 0
16117 1878 : DO md = 1, 1
16118 3756 : DO mc = 1, 2
16119 6573 : DO mb = 1, 2
16120 3756 : ks_bd = 0.0_dp
16121 3756 : ks_bc = 0.0_dp
16122 3756 : p_bd = pbd((md - 1)*2 + mb)
16123 3756 : p_bc = pbc((mc - 1)*2 + mb)
16124 15024 : DO ma = 1, 3
16125 11268 : p_index = p_index + 1
16126 11268 : tmp = scale*prim(p_index)
16127 11268 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16128 11268 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16129 11268 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16130 15024 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16131 : END DO
16132 3756 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
16133 5634 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
16134 : END DO
16135 : END DO
16136 : END DO
16137 939 : END SUBROUTINE block_3_2_2_1
16138 : ! **************************************************************************************************
16139 : !> \brief ...
16140 : !> \param md_max ...
16141 : !> \param kbd ...
16142 : !> \param kbc ...
16143 : !> \param kad ...
16144 : !> \param kac ...
16145 : !> \param pbd ...
16146 : !> \param pbc ...
16147 : !> \param pad ...
16148 : !> \param pac ...
16149 : !> \param prim ...
16150 : !> \param scale ...
16151 : ! **************************************************************************************************
16152 31151 : SUBROUTINE block_3_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16153 : INTEGER :: md_max
16154 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*2), kad(3*md_max), kac(3*2), pbd(2*md_max), pbc(2*2), &
16155 : pad(3*md_max), pac(3*2), prim(3*2*2*md_max), scale
16156 :
16157 : INTEGER :: ma, mb, mc, md, p_index
16158 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16159 :
16160 194413 : kbd(1:2*md_max) = 0.0_dp
16161 31151 : kbc(1:2*2) = 0.0_dp
16162 276044 : kad(1:3*md_max) = 0.0_dp
16163 31151 : kac(1:3*2) = 0.0_dp
16164 31151 : p_index = 0
16165 112782 : DO md = 1, md_max
16166 276044 : DO mc = 1, 2
16167 571417 : DO mb = 1, 2
16168 326524 : ks_bd = 0.0_dp
16169 326524 : ks_bc = 0.0_dp
16170 326524 : p_bd = pbd((md - 1)*2 + mb)
16171 326524 : p_bc = pbc((mc - 1)*2 + mb)
16172 1306096 : DO ma = 1, 3
16173 979572 : p_index = p_index + 1
16174 979572 : tmp = scale*prim(p_index)
16175 979572 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16176 979572 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16177 979572 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16178 1306096 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16179 : END DO
16180 326524 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
16181 489786 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
16182 : END DO
16183 : END DO
16184 : END DO
16185 31151 : END SUBROUTINE block_3_2_2
16186 : ! **************************************************************************************************
16187 : !> \brief ...
16188 : !> \param kbd ...
16189 : !> \param kbc ...
16190 : !> \param kad ...
16191 : !> \param kac ...
16192 : !> \param pbd ...
16193 : !> \param pbc ...
16194 : !> \param pad ...
16195 : !> \param pac ...
16196 : !> \param prim ...
16197 : !> \param scale ...
16198 : ! **************************************************************************************************
16199 3538 : SUBROUTINE block_3_2_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16200 : REAL(KIND=dp) :: kbd(2*1), kbc(2*3), kad(3*1), kac(3*3), &
16201 : pbd(2*1), pbc(2*3), pad(3*1), &
16202 : pac(3*3), prim(3*2*3*1), scale
16203 :
16204 : INTEGER :: ma, mb, mc, md, p_index
16205 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16206 :
16207 3538 : kbd(1:2*1) = 0.0_dp
16208 3538 : kbc(1:2*3) = 0.0_dp
16209 3538 : kad(1:3*1) = 0.0_dp
16210 3538 : kac(1:3*3) = 0.0_dp
16211 3538 : p_index = 0
16212 7076 : DO md = 1, 1
16213 17690 : DO mc = 1, 3
16214 35380 : DO mb = 1, 2
16215 21228 : ks_bd = 0.0_dp
16216 21228 : ks_bc = 0.0_dp
16217 21228 : p_bd = pbd((md - 1)*2 + mb)
16218 21228 : p_bc = pbc((mc - 1)*2 + mb)
16219 84912 : DO ma = 1, 3
16220 63684 : p_index = p_index + 1
16221 63684 : tmp = scale*prim(p_index)
16222 63684 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16223 63684 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16224 63684 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16225 84912 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16226 : END DO
16227 21228 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
16228 31842 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
16229 : END DO
16230 : END DO
16231 : END DO
16232 3538 : END SUBROUTINE block_3_2_3_1
16233 : ! **************************************************************************************************
16234 : !> \brief ...
16235 : !> \param md_max ...
16236 : !> \param kbd ...
16237 : !> \param kbc ...
16238 : !> \param kad ...
16239 : !> \param kac ...
16240 : !> \param pbd ...
16241 : !> \param pbc ...
16242 : !> \param pad ...
16243 : !> \param pac ...
16244 : !> \param prim ...
16245 : !> \param scale ...
16246 : ! **************************************************************************************************
16247 35411 : SUBROUTINE block_3_2_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16248 : INTEGER :: md_max
16249 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*3), kad(3*md_max), kac(3*3), pbd(2*md_max), pbc(2*3), &
16250 : pad(3*md_max), pac(3*3), prim(3*2*3*md_max), scale
16251 :
16252 : INTEGER :: ma, mb, mc, md, p_index
16253 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16254 :
16255 243049 : kbd(1:2*md_max) = 0.0_dp
16256 35411 : kbc(1:2*3) = 0.0_dp
16257 346868 : kad(1:3*md_max) = 0.0_dp
16258 35411 : kac(1:3*3) = 0.0_dp
16259 35411 : p_index = 0
16260 139230 : DO md = 1, md_max
16261 450687 : DO mc = 1, 3
16262 1038190 : DO mb = 1, 2
16263 622914 : ks_bd = 0.0_dp
16264 622914 : ks_bc = 0.0_dp
16265 622914 : p_bd = pbd((md - 1)*2 + mb)
16266 622914 : p_bc = pbc((mc - 1)*2 + mb)
16267 2491656 : DO ma = 1, 3
16268 1868742 : p_index = p_index + 1
16269 1868742 : tmp = scale*prim(p_index)
16270 1868742 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16271 1868742 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16272 1868742 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16273 2491656 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16274 : END DO
16275 622914 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
16276 934371 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
16277 : END DO
16278 : END DO
16279 : END DO
16280 35411 : END SUBROUTINE block_3_2_3
16281 : ! **************************************************************************************************
16282 : !> \brief ...
16283 : !> \param mc_max ...
16284 : !> \param md_max ...
16285 : !> \param kbd ...
16286 : !> \param kbc ...
16287 : !> \param kad ...
16288 : !> \param kac ...
16289 : !> \param pbd ...
16290 : !> \param pbc ...
16291 : !> \param pad ...
16292 : !> \param pac ...
16293 : !> \param prim ...
16294 : !> \param scale ...
16295 : ! **************************************************************************************************
16296 39121 : SUBROUTINE block_3_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16297 : INTEGER :: mc_max, md_max
16298 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(3*md_max), kac(3*mc_max), pbd(2*md_max), &
16299 : pbc(2*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*2*mc_max*md_max), scale
16300 :
16301 : INTEGER :: ma, mb, mc, md, p_index
16302 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16303 :
16304 342669 : kbd(1:2*md_max) = 0.0_dp
16305 447871 : kbc(1:2*mc_max) = 0.0_dp
16306 494443 : kad(1:3*md_max) = 0.0_dp
16307 652246 : kac(1:3*mc_max) = 0.0_dp
16308 : p_index = 0
16309 190895 : DO md = 1, md_max
16310 981497 : DO mc = 1, mc_max
16311 2523580 : DO mb = 1, 2
16312 1581204 : ks_bd = 0.0_dp
16313 1581204 : ks_bc = 0.0_dp
16314 1581204 : p_bd = pbd((md - 1)*2 + mb)
16315 1581204 : p_bc = pbc((mc - 1)*2 + mb)
16316 6324816 : DO ma = 1, 3
16317 4743612 : p_index = p_index + 1
16318 4743612 : tmp = scale*prim(p_index)
16319 4743612 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16320 4743612 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16321 4743612 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16322 6324816 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16323 : END DO
16324 1581204 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
16325 2371806 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
16326 : END DO
16327 : END DO
16328 : END DO
16329 39121 : END SUBROUTINE block_3_2
16330 : ! **************************************************************************************************
16331 : !> \brief ...
16332 : !> \param kbd ...
16333 : !> \param kbc ...
16334 : !> \param kad ...
16335 : !> \param kac ...
16336 : !> \param pbd ...
16337 : !> \param pbc ...
16338 : !> \param pad ...
16339 : !> \param pac ...
16340 : !> \param prim ...
16341 : !> \param scale ...
16342 : ! **************************************************************************************************
16343 1555822 : SUBROUTINE block_3_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16344 : REAL(KIND=dp) :: kbd(3*1), kbc(3*1), kad(3*1), kac(3*1), &
16345 : pbd(3*1), pbc(3*1), pad(3*1), &
16346 : pac(3*1), prim(3*3*1*1), scale
16347 :
16348 : INTEGER :: ma, mb, mc, md, p_index
16349 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16350 :
16351 1555822 : kbd(1:3*1) = 0.0_dp
16352 1555822 : kbc(1:3*1) = 0.0_dp
16353 1555822 : kad(1:3*1) = 0.0_dp
16354 1555822 : kac(1:3*1) = 0.0_dp
16355 1555822 : p_index = 0
16356 3111644 : DO md = 1, 1
16357 4667466 : DO mc = 1, 1
16358 7779110 : DO mb = 1, 3
16359 4667466 : ks_bd = 0.0_dp
16360 4667466 : ks_bc = 0.0_dp
16361 4667466 : p_bd = pbd((md - 1)*3 + mb)
16362 4667466 : p_bc = pbc((mc - 1)*3 + mb)
16363 18669864 : DO ma = 1, 3
16364 14002398 : p_index = p_index + 1
16365 14002398 : tmp = scale*prim(p_index)
16366 14002398 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16367 14002398 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16368 14002398 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16369 18669864 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16370 : END DO
16371 4667466 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
16372 6223288 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
16373 : END DO
16374 : END DO
16375 : END DO
16376 1555822 : END SUBROUTINE block_3_3_1_1
16377 : ! **************************************************************************************************
16378 : !> \brief ...
16379 : !> \param kbd ...
16380 : !> \param kbc ...
16381 : !> \param kad ...
16382 : !> \param kac ...
16383 : !> \param pbd ...
16384 : !> \param pbc ...
16385 : !> \param pad ...
16386 : !> \param pac ...
16387 : !> \param prim ...
16388 : !> \param scale ...
16389 : ! **************************************************************************************************
16390 8672 : SUBROUTINE block_3_3_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16391 : REAL(KIND=dp) :: kbd(3*2), kbc(3*1), kad(3*2), kac(3*1), &
16392 : pbd(3*2), pbc(3*1), pad(3*2), &
16393 : pac(3*1), prim(3*3*1*2), scale
16394 :
16395 : INTEGER :: ma, mb, mc, md, p_index
16396 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16397 :
16398 8672 : kbd(1:3*2) = 0.0_dp
16399 8672 : kbc(1:3*1) = 0.0_dp
16400 8672 : kad(1:3*2) = 0.0_dp
16401 8672 : kac(1:3*1) = 0.0_dp
16402 8672 : p_index = 0
16403 26016 : DO md = 1, 2
16404 43360 : DO mc = 1, 1
16405 86720 : DO mb = 1, 3
16406 52032 : ks_bd = 0.0_dp
16407 52032 : ks_bc = 0.0_dp
16408 52032 : p_bd = pbd((md - 1)*3 + mb)
16409 52032 : p_bc = pbc((mc - 1)*3 + mb)
16410 208128 : DO ma = 1, 3
16411 156096 : p_index = p_index + 1
16412 156096 : tmp = scale*prim(p_index)
16413 156096 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16414 156096 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16415 156096 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16416 208128 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16417 : END DO
16418 52032 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
16419 69376 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
16420 : END DO
16421 : END DO
16422 : END DO
16423 8672 : END SUBROUTINE block_3_3_1_2
16424 : ! **************************************************************************************************
16425 : !> \brief ...
16426 : !> \param md_max ...
16427 : !> \param kbd ...
16428 : !> \param kbc ...
16429 : !> \param kad ...
16430 : !> \param kac ...
16431 : !> \param pbd ...
16432 : !> \param pbc ...
16433 : !> \param pad ...
16434 : !> \param pac ...
16435 : !> \param prim ...
16436 : !> \param scale ...
16437 : ! **************************************************************************************************
16438 1472588 : SUBROUTINE block_3_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16439 : INTEGER :: md_max
16440 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*1), kad(3*md_max), kac(3*1), pbd(3*md_max), pbc(3*1), &
16441 : pad(3*md_max), pac(3*1), prim(3*3*1*md_max), scale
16442 :
16443 : INTEGER :: ma, mb, mc, md, p_index
16444 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16445 :
16446 15238829 : kbd(1:3*md_max) = 0.0_dp
16447 1472588 : kbc(1:3*1) = 0.0_dp
16448 15238829 : kad(1:3*md_max) = 0.0_dp
16449 1472588 : kac(1:3*1) = 0.0_dp
16450 1472588 : p_index = 0
16451 6061335 : DO md = 1, md_max
16452 10650082 : DO mc = 1, 1
16453 22943735 : DO mb = 1, 3
16454 13766241 : ks_bd = 0.0_dp
16455 13766241 : ks_bc = 0.0_dp
16456 13766241 : p_bd = pbd((md - 1)*3 + mb)
16457 13766241 : p_bc = pbc((mc - 1)*3 + mb)
16458 55064964 : DO ma = 1, 3
16459 41298723 : p_index = p_index + 1
16460 41298723 : tmp = scale*prim(p_index)
16461 41298723 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16462 41298723 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16463 41298723 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16464 55064964 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16465 : END DO
16466 13766241 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
16467 18354988 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
16468 : END DO
16469 : END DO
16470 : END DO
16471 1472588 : END SUBROUTINE block_3_3_1
16472 : ! **************************************************************************************************
16473 : !> \brief ...
16474 : !> \param kbd ...
16475 : !> \param kbc ...
16476 : !> \param kad ...
16477 : !> \param kac ...
16478 : !> \param pbd ...
16479 : !> \param pbc ...
16480 : !> \param pad ...
16481 : !> \param pac ...
16482 : !> \param prim ...
16483 : !> \param scale ...
16484 : ! **************************************************************************************************
16485 23222 : SUBROUTINE block_3_3_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16486 : REAL(KIND=dp) :: kbd(3*1), kbc(3*2), kad(3*1), kac(3*2), &
16487 : pbd(3*1), pbc(3*2), pad(3*1), &
16488 : pac(3*2), prim(3*3*2*1), scale
16489 :
16490 : INTEGER :: ma, mb, mc, md, p_index
16491 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16492 :
16493 23222 : kbd(1:3*1) = 0.0_dp
16494 23222 : kbc(1:3*2) = 0.0_dp
16495 23222 : kad(1:3*1) = 0.0_dp
16496 23222 : kac(1:3*2) = 0.0_dp
16497 23222 : p_index = 0
16498 46444 : DO md = 1, 1
16499 92888 : DO mc = 1, 2
16500 208998 : DO mb = 1, 3
16501 139332 : ks_bd = 0.0_dp
16502 139332 : ks_bc = 0.0_dp
16503 139332 : p_bd = pbd((md - 1)*3 + mb)
16504 139332 : p_bc = pbc((mc - 1)*3 + mb)
16505 557328 : DO ma = 1, 3
16506 417996 : p_index = p_index + 1
16507 417996 : tmp = scale*prim(p_index)
16508 417996 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16509 417996 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16510 417996 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16511 557328 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16512 : END DO
16513 139332 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
16514 185776 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
16515 : END DO
16516 : END DO
16517 : END DO
16518 23222 : END SUBROUTINE block_3_3_2_1
16519 : ! **************************************************************************************************
16520 : !> \brief ...
16521 : !> \param md_max ...
16522 : !> \param kbd ...
16523 : !> \param kbc ...
16524 : !> \param kad ...
16525 : !> \param kac ...
16526 : !> \param pbd ...
16527 : !> \param pbc ...
16528 : !> \param pad ...
16529 : !> \param pac ...
16530 : !> \param prim ...
16531 : !> \param scale ...
16532 : ! **************************************************************************************************
16533 60574 : SUBROUTINE block_3_3_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16534 : INTEGER :: md_max
16535 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*2), kad(3*md_max), kac(3*2), pbd(3*md_max), pbc(3*2), &
16536 : pad(3*md_max), pac(3*2), prim(3*3*2*md_max), scale
16537 :
16538 : INTEGER :: ma, mb, mc, md, p_index
16539 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16540 :
16541 622294 : kbd(1:3*md_max) = 0.0_dp
16542 60574 : kbc(1:3*2) = 0.0_dp
16543 622294 : kad(1:3*md_max) = 0.0_dp
16544 60574 : kac(1:3*2) = 0.0_dp
16545 60574 : p_index = 0
16546 247814 : DO md = 1, md_max
16547 622294 : DO mc = 1, 2
16548 1685160 : DO mb = 1, 3
16549 1123440 : ks_bd = 0.0_dp
16550 1123440 : ks_bc = 0.0_dp
16551 1123440 : p_bd = pbd((md - 1)*3 + mb)
16552 1123440 : p_bc = pbc((mc - 1)*3 + mb)
16553 4493760 : DO ma = 1, 3
16554 3370320 : p_index = p_index + 1
16555 3370320 : tmp = scale*prim(p_index)
16556 3370320 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16557 3370320 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16558 3370320 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16559 4493760 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16560 : END DO
16561 1123440 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
16562 1497920 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
16563 : END DO
16564 : END DO
16565 : END DO
16566 60574 : END SUBROUTINE block_3_3_2
16567 : ! **************************************************************************************************
16568 : !> \brief ...
16569 : !> \param mc_max ...
16570 : !> \param md_max ...
16571 : !> \param kbd ...
16572 : !> \param kbc ...
16573 : !> \param kad ...
16574 : !> \param kac ...
16575 : !> \param pbd ...
16576 : !> \param pbc ...
16577 : !> \param pad ...
16578 : !> \param pac ...
16579 : !> \param prim ...
16580 : !> \param scale ...
16581 : ! **************************************************************************************************
16582 3513758 : SUBROUTINE block_3_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16583 : INTEGER :: mc_max, md_max
16584 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(3*md_max), kac(3*mc_max), pbd(3*md_max), &
16585 : pbc(3*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*3*mc_max*md_max), scale
16586 :
16587 : INTEGER :: ma, mb, mc, md, p_index
16588 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16589 :
16590 26218676 : kbd(1:3*md_max) = 0.0_dp
16591 38473235 : kbc(1:3*mc_max) = 0.0_dp
16592 26218676 : kad(1:3*md_max) = 0.0_dp
16593 38473235 : kac(1:3*mc_max) = 0.0_dp
16594 : p_index = 0
16595 11082064 : DO md = 1, md_max
16596 36731237 : DO mc = 1, mc_max
16597 110164998 : DO mb = 1, 3
16598 76947519 : ks_bd = 0.0_dp
16599 76947519 : ks_bc = 0.0_dp
16600 76947519 : p_bd = pbd((md - 1)*3 + mb)
16601 76947519 : p_bc = pbc((mc - 1)*3 + mb)
16602 307790076 : DO ma = 1, 3
16603 230842557 : p_index = p_index + 1
16604 230842557 : tmp = scale*prim(p_index)
16605 230842557 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16606 230842557 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16607 230842557 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16608 307790076 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16609 : END DO
16610 76947519 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
16611 102596692 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
16612 : END DO
16613 : END DO
16614 : END DO
16615 3513758 : END SUBROUTINE block_3_3
16616 : ! **************************************************************************************************
16617 : !> \brief ...
16618 : !> \param kbd ...
16619 : !> \param kbc ...
16620 : !> \param kad ...
16621 : !> \param kac ...
16622 : !> \param pbd ...
16623 : !> \param pbc ...
16624 : !> \param pad ...
16625 : !> \param pac ...
16626 : !> \param prim ...
16627 : !> \param scale ...
16628 : ! **************************************************************************************************
16629 30314 : SUBROUTINE block_3_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16630 : REAL(KIND=dp) :: kbd(4*1), kbc(4*1), kad(3*1), kac(3*1), &
16631 : pbd(4*1), pbc(4*1), pad(3*1), &
16632 : pac(3*1), prim(3*4*1*1), scale
16633 :
16634 : INTEGER :: ma, mb, mc, md, p_index
16635 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16636 :
16637 30314 : kbd(1:4*1) = 0.0_dp
16638 30314 : kbc(1:4*1) = 0.0_dp
16639 30314 : kad(1:3*1) = 0.0_dp
16640 30314 : kac(1:3*1) = 0.0_dp
16641 30314 : p_index = 0
16642 60628 : DO md = 1, 1
16643 90942 : DO mc = 1, 1
16644 181884 : DO mb = 1, 4
16645 121256 : ks_bd = 0.0_dp
16646 121256 : ks_bc = 0.0_dp
16647 121256 : p_bd = pbd((md - 1)*4 + mb)
16648 121256 : p_bc = pbc((mc - 1)*4 + mb)
16649 485024 : DO ma = 1, 3
16650 363768 : p_index = p_index + 1
16651 363768 : tmp = scale*prim(p_index)
16652 363768 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16653 363768 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16654 363768 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16655 485024 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16656 : END DO
16657 121256 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
16658 151570 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
16659 : END DO
16660 : END DO
16661 : END DO
16662 30314 : END SUBROUTINE block_3_4_1_1
16663 : ! **************************************************************************************************
16664 : !> \brief ...
16665 : !> \param md_max ...
16666 : !> \param kbd ...
16667 : !> \param kbc ...
16668 : !> \param kad ...
16669 : !> \param kac ...
16670 : !> \param pbd ...
16671 : !> \param pbc ...
16672 : !> \param pad ...
16673 : !> \param pac ...
16674 : !> \param prim ...
16675 : !> \param scale ...
16676 : ! **************************************************************************************************
16677 29042 : SUBROUTINE block_3_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16678 : INTEGER :: md_max
16679 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*1), kad(3*md_max), kac(3*1), pbd(4*md_max), pbc(4*1), &
16680 : pad(3*md_max), pac(3*1), prim(3*4*1*md_max), scale
16681 :
16682 : INTEGER :: ma, mb, mc, md, p_index
16683 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16684 :
16685 470634 : kbd(1:4*md_max) = 0.0_dp
16686 29042 : kbc(1:4*1) = 0.0_dp
16687 360236 : kad(1:3*md_max) = 0.0_dp
16688 29042 : kac(1:3*1) = 0.0_dp
16689 29042 : p_index = 0
16690 139440 : DO md = 1, md_max
16691 249838 : DO mc = 1, 1
16692 662388 : DO mb = 1, 4
16693 441592 : ks_bd = 0.0_dp
16694 441592 : ks_bc = 0.0_dp
16695 441592 : p_bd = pbd((md - 1)*4 + mb)
16696 441592 : p_bc = pbc((mc - 1)*4 + mb)
16697 1766368 : DO ma = 1, 3
16698 1324776 : p_index = p_index + 1
16699 1324776 : tmp = scale*prim(p_index)
16700 1324776 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16701 1324776 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16702 1324776 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16703 1766368 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16704 : END DO
16705 441592 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
16706 551990 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
16707 : END DO
16708 : END DO
16709 : END DO
16710 29042 : END SUBROUTINE block_3_4_1
16711 : ! **************************************************************************************************
16712 : !> \brief ...
16713 : !> \param mc_max ...
16714 : !> \param md_max ...
16715 : !> \param kbd ...
16716 : !> \param kbc ...
16717 : !> \param kad ...
16718 : !> \param kac ...
16719 : !> \param pbd ...
16720 : !> \param pbc ...
16721 : !> \param pad ...
16722 : !> \param pac ...
16723 : !> \param prim ...
16724 : !> \param scale ...
16725 : ! **************************************************************************************************
16726 71386 : SUBROUTINE block_3_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16727 : INTEGER :: mc_max, md_max
16728 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(3*md_max), kac(3*mc_max), pbd(4*md_max), &
16729 : pbc(4*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*4*mc_max*md_max), scale
16730 :
16731 : INTEGER :: ma, mb, mc, md, p_index
16732 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16733 :
16734 785398 : kbd(1:4*md_max) = 0.0_dp
16735 1199838 : kbc(1:4*mc_max) = 0.0_dp
16736 606895 : kad(1:3*md_max) = 0.0_dp
16737 917725 : kac(1:3*mc_max) = 0.0_dp
16738 : p_index = 0
16739 249889 : DO md = 1, md_max
16740 957534 : DO mc = 1, mc_max
16741 3716728 : DO mb = 1, 4
16742 2830580 : ks_bd = 0.0_dp
16743 2830580 : ks_bc = 0.0_dp
16744 2830580 : p_bd = pbd((md - 1)*4 + mb)
16745 2830580 : p_bc = pbc((mc - 1)*4 + mb)
16746 11322320 : DO ma = 1, 3
16747 8491740 : p_index = p_index + 1
16748 8491740 : tmp = scale*prim(p_index)
16749 8491740 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16750 8491740 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16751 8491740 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16752 11322320 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16753 : END DO
16754 2830580 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
16755 3538225 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
16756 : END DO
16757 : END DO
16758 : END DO
16759 71386 : END SUBROUTINE block_3_4
16760 : ! **************************************************************************************************
16761 : !> \brief ...
16762 : !> \param kbd ...
16763 : !> \param kbc ...
16764 : !> \param kad ...
16765 : !> \param kac ...
16766 : !> \param pbd ...
16767 : !> \param pbc ...
16768 : !> \param pad ...
16769 : !> \param pac ...
16770 : !> \param prim ...
16771 : !> \param scale ...
16772 : ! **************************************************************************************************
16773 40121 : SUBROUTINE block_3_5_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16774 : REAL(KIND=dp) :: kbd(5*1), kbc(5*1), kad(3*1), kac(3*1), &
16775 : pbd(5*1), pbc(5*1), pad(3*1), &
16776 : pac(3*1), prim(3*5*1*1), scale
16777 :
16778 : INTEGER :: ma, mb, mc, md, p_index
16779 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16780 :
16781 40121 : kbd(1:5*1) = 0.0_dp
16782 40121 : kbc(1:5*1) = 0.0_dp
16783 40121 : kad(1:3*1) = 0.0_dp
16784 40121 : kac(1:3*1) = 0.0_dp
16785 40121 : p_index = 0
16786 80242 : DO md = 1, 1
16787 120363 : DO mc = 1, 1
16788 280847 : DO mb = 1, 5
16789 200605 : ks_bd = 0.0_dp
16790 200605 : ks_bc = 0.0_dp
16791 200605 : p_bd = pbd((md - 1)*5 + mb)
16792 200605 : p_bc = pbc((mc - 1)*5 + mb)
16793 802420 : DO ma = 1, 3
16794 601815 : p_index = p_index + 1
16795 601815 : tmp = scale*prim(p_index)
16796 601815 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16797 601815 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16798 601815 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16799 802420 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16800 : END DO
16801 200605 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
16802 240726 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
16803 : END DO
16804 : END DO
16805 : END DO
16806 40121 : END SUBROUTINE block_3_5_1_1
16807 : ! **************************************************************************************************
16808 : !> \brief ...
16809 : !> \param md_max ...
16810 : !> \param kbd ...
16811 : !> \param kbc ...
16812 : !> \param kad ...
16813 : !> \param kac ...
16814 : !> \param pbd ...
16815 : !> \param pbc ...
16816 : !> \param pad ...
16817 : !> \param pac ...
16818 : !> \param prim ...
16819 : !> \param scale ...
16820 : ! **************************************************************************************************
16821 57684 : SUBROUTINE block_3_5_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16822 : INTEGER :: md_max
16823 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*1), kad(3*md_max), kac(3*1), pbd(5*md_max), pbc(5*1), &
16824 : pad(3*md_max), pac(3*1), prim(3*5*1*md_max), scale
16825 :
16826 : INTEGER :: ma, mb, mc, md, p_index
16827 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16828 :
16829 1179984 : kbd(1:5*md_max) = 0.0_dp
16830 57684 : kbc(1:5*1) = 0.0_dp
16831 731064 : kad(1:3*md_max) = 0.0_dp
16832 57684 : kac(1:3*1) = 0.0_dp
16833 57684 : p_index = 0
16834 282144 : DO md = 1, md_max
16835 506604 : DO mc = 1, 1
16836 1571220 : DO mb = 1, 5
16837 1122300 : ks_bd = 0.0_dp
16838 1122300 : ks_bc = 0.0_dp
16839 1122300 : p_bd = pbd((md - 1)*5 + mb)
16840 1122300 : p_bc = pbc((mc - 1)*5 + mb)
16841 4489200 : DO ma = 1, 3
16842 3366900 : p_index = p_index + 1
16843 3366900 : tmp = scale*prim(p_index)
16844 3366900 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16845 3366900 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16846 3366900 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16847 4489200 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16848 : END DO
16849 1122300 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
16850 1346760 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
16851 : END DO
16852 : END DO
16853 : END DO
16854 57684 : END SUBROUTINE block_3_5_1
16855 : ! **************************************************************************************************
16856 : !> \brief ...
16857 : !> \param mc_max ...
16858 : !> \param md_max ...
16859 : !> \param kbd ...
16860 : !> \param kbc ...
16861 : !> \param kad ...
16862 : !> \param kac ...
16863 : !> \param pbd ...
16864 : !> \param pbc ...
16865 : !> \param pad ...
16866 : !> \param pac ...
16867 : !> \param prim ...
16868 : !> \param scale ...
16869 : ! **************************************************************************************************
16870 175158 : SUBROUTINE block_3_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16871 : INTEGER :: mc_max, md_max
16872 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(3*md_max), kac(3*mc_max), pbd(5*md_max), &
16873 : pbc(5*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*5*mc_max*md_max), scale
16874 :
16875 : INTEGER :: ma, mb, mc, md, p_index
16876 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16877 :
16878 2766343 : kbd(1:5*md_max) = 0.0_dp
16879 3662238 : kbc(1:5*mc_max) = 0.0_dp
16880 1729869 : kad(1:3*md_max) = 0.0_dp
16881 2267406 : kac(1:3*mc_max) = 0.0_dp
16882 : p_index = 0
16883 693395 : DO md = 1, md_max
16884 2776342 : DO mc = 1, mc_max
16885 13015919 : DO mb = 1, 5
16886 10414735 : ks_bd = 0.0_dp
16887 10414735 : ks_bc = 0.0_dp
16888 10414735 : p_bd = pbd((md - 1)*5 + mb)
16889 10414735 : p_bc = pbc((mc - 1)*5 + mb)
16890 41658940 : DO ma = 1, 3
16891 31244205 : p_index = p_index + 1
16892 31244205 : tmp = scale*prim(p_index)
16893 31244205 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16894 31244205 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16895 31244205 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16896 41658940 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16897 : END DO
16898 10414735 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
16899 12497682 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
16900 : END DO
16901 : END DO
16902 : END DO
16903 175158 : END SUBROUTINE block_3_5
16904 : ! **************************************************************************************************
16905 : !> \brief ...
16906 : !> \param kbd ...
16907 : !> \param kbc ...
16908 : !> \param kad ...
16909 : !> \param kac ...
16910 : !> \param pbd ...
16911 : !> \param pbc ...
16912 : !> \param pad ...
16913 : !> \param pac ...
16914 : !> \param prim ...
16915 : !> \param scale ...
16916 : ! **************************************************************************************************
16917 11 : SUBROUTINE block_3_6_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16918 : REAL(KIND=dp) :: kbd(6*1), kbc(6*1), kad(3*1), kac(3*1), &
16919 : pbd(6*1), pbc(6*1), pad(3*1), &
16920 : pac(3*1), prim(3*6*1*1), scale
16921 :
16922 : INTEGER :: ma, mb, mc, md, p_index
16923 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16924 :
16925 11 : kbd(1:6*1) = 0.0_dp
16926 11 : kbc(1:6*1) = 0.0_dp
16927 11 : kad(1:3*1) = 0.0_dp
16928 11 : kac(1:3*1) = 0.0_dp
16929 11 : p_index = 0
16930 22 : DO md = 1, 1
16931 33 : DO mc = 1, 1
16932 88 : DO mb = 1, 6
16933 66 : ks_bd = 0.0_dp
16934 66 : ks_bc = 0.0_dp
16935 66 : p_bd = pbd((md - 1)*6 + mb)
16936 66 : p_bc = pbc((mc - 1)*6 + mb)
16937 264 : DO ma = 1, 3
16938 198 : p_index = p_index + 1
16939 198 : tmp = scale*prim(p_index)
16940 198 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16941 198 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16942 198 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16943 264 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16944 : END DO
16945 66 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
16946 77 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
16947 : END DO
16948 : END DO
16949 : END DO
16950 11 : END SUBROUTINE block_3_6_1_1
16951 : ! **************************************************************************************************
16952 : !> \brief ...
16953 : !> \param md_max ...
16954 : !> \param kbd ...
16955 : !> \param kbc ...
16956 : !> \param kad ...
16957 : !> \param kac ...
16958 : !> \param pbd ...
16959 : !> \param pbc ...
16960 : !> \param pad ...
16961 : !> \param pac ...
16962 : !> \param prim ...
16963 : !> \param scale ...
16964 : ! **************************************************************************************************
16965 46 : SUBROUTINE block_3_6_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
16966 : INTEGER :: md_max
16967 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*1), kad(3*md_max), kac(3*1), pbd(6*md_max), pbc(6*1), &
16968 : pad(3*md_max), pac(3*1), prim(3*6*1*md_max), scale
16969 :
16970 : INTEGER :: ma, mb, mc, md, p_index
16971 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
16972 :
16973 1210 : kbd(1:6*md_max) = 0.0_dp
16974 46 : kbc(1:6*1) = 0.0_dp
16975 628 : kad(1:3*md_max) = 0.0_dp
16976 46 : kac(1:3*1) = 0.0_dp
16977 46 : p_index = 0
16978 240 : DO md = 1, md_max
16979 434 : DO mc = 1, 1
16980 1552 : DO mb = 1, 6
16981 1164 : ks_bd = 0.0_dp
16982 1164 : ks_bc = 0.0_dp
16983 1164 : p_bd = pbd((md - 1)*6 + mb)
16984 1164 : p_bc = pbc((mc - 1)*6 + mb)
16985 4656 : DO ma = 1, 3
16986 3492 : p_index = p_index + 1
16987 3492 : tmp = scale*prim(p_index)
16988 3492 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
16989 3492 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
16990 3492 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
16991 4656 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
16992 : END DO
16993 1164 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
16994 1358 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
16995 : END DO
16996 : END DO
16997 : END DO
16998 46 : END SUBROUTINE block_3_6_1
16999 : ! **************************************************************************************************
17000 : !> \brief ...
17001 : !> \param mc_max ...
17002 : !> \param md_max ...
17003 : !> \param kbd ...
17004 : !> \param kbc ...
17005 : !> \param kad ...
17006 : !> \param kac ...
17007 : !> \param pbd ...
17008 : !> \param pbc ...
17009 : !> \param pad ...
17010 : !> \param pac ...
17011 : !> \param prim ...
17012 : !> \param scale ...
17013 : ! **************************************************************************************************
17014 145 : SUBROUTINE block_3_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17015 : INTEGER :: mc_max, md_max
17016 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(3*md_max), kac(3*mc_max), pbd(6*md_max), &
17017 : pbc(6*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*6*mc_max*md_max), scale
17018 :
17019 : INTEGER :: ma, mb, mc, md, p_index
17020 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17021 :
17022 3667 : kbd(1:6*md_max) = 0.0_dp
17023 3061 : kbc(1:6*mc_max) = 0.0_dp
17024 1906 : kad(1:3*md_max) = 0.0_dp
17025 1603 : kac(1:3*mc_max) = 0.0_dp
17026 : p_index = 0
17027 732 : DO md = 1, md_max
17028 2686 : DO mc = 1, mc_max
17029 14265 : DO mb = 1, 6
17030 11724 : ks_bd = 0.0_dp
17031 11724 : ks_bc = 0.0_dp
17032 11724 : p_bd = pbd((md - 1)*6 + mb)
17033 11724 : p_bc = pbc((mc - 1)*6 + mb)
17034 46896 : DO ma = 1, 3
17035 35172 : p_index = p_index + 1
17036 35172 : tmp = scale*prim(p_index)
17037 35172 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
17038 35172 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
17039 35172 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
17040 46896 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
17041 : END DO
17042 11724 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
17043 13678 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
17044 : END DO
17045 : END DO
17046 : END DO
17047 145 : END SUBROUTINE block_3_6
17048 : ! **************************************************************************************************
17049 : !> \brief ...
17050 : !> \param mc_max ...
17051 : !> \param md_max ...
17052 : !> \param kbd ...
17053 : !> \param kbc ...
17054 : !> \param kad ...
17055 : !> \param kac ...
17056 : !> \param pbd ...
17057 : !> \param pbc ...
17058 : !> \param pad ...
17059 : !> \param pac ...
17060 : !> \param prim ...
17061 : !> \param scale ...
17062 : ! **************************************************************************************************
17063 75295 : SUBROUTINE block_3_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17064 : INTEGER :: mc_max, md_max
17065 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(3*md_max), kac(3*mc_max), pbd(7*md_max), &
17066 : pbc(7*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*7*mc_max*md_max), scale
17067 :
17068 : INTEGER :: ma, mb, mc, md, p_index
17069 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17070 :
17071 1842662 : kbd(1:7*md_max) = 0.0_dp
17072 1842039 : kbc(1:7*mc_max) = 0.0_dp
17073 832738 : kad(1:3*md_max) = 0.0_dp
17074 832471 : kac(1:3*mc_max) = 0.0_dp
17075 : p_index = 0
17076 327776 : DO md = 1, md_max
17077 1180119 : DO mc = 1, mc_max
17078 7071225 : DO mb = 1, 7
17079 5966401 : ks_bd = 0.0_dp
17080 5966401 : ks_bc = 0.0_dp
17081 5966401 : p_bd = pbd((md - 1)*7 + mb)
17082 5966401 : p_bc = pbc((mc - 1)*7 + mb)
17083 23865604 : DO ma = 1, 3
17084 17899203 : p_index = p_index + 1
17085 17899203 : tmp = scale*prim(p_index)
17086 17899203 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
17087 17899203 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
17088 17899203 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
17089 23865604 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
17090 : END DO
17091 5966401 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
17092 6818744 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
17093 : END DO
17094 : END DO
17095 : END DO
17096 75295 : END SUBROUTINE block_3_7
17097 : ! **************************************************************************************************
17098 : !> \brief ...
17099 : !> \param mc_max ...
17100 : !> \param md_max ...
17101 : !> \param kbd ...
17102 : !> \param kbc ...
17103 : !> \param kad ...
17104 : !> \param kac ...
17105 : !> \param pbd ...
17106 : !> \param pbc ...
17107 : !> \param pad ...
17108 : !> \param pac ...
17109 : !> \param prim ...
17110 : !> \param scale ...
17111 : ! **************************************************************************************************
17112 165 : SUBROUTINE block_3_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17113 : INTEGER :: mc_max, md_max
17114 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(3*md_max), kac(3*mc_max), pbd(9*md_max), &
17115 : pbc(9*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*9*mc_max*md_max), scale
17116 :
17117 : INTEGER :: ma, mb, mc, md, p_index
17118 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17119 :
17120 8526 : kbd(1:9*md_max) = 0.0_dp
17121 6933 : kbc(1:9*mc_max) = 0.0_dp
17122 2952 : kad(1:3*md_max) = 0.0_dp
17123 2421 : kac(1:3*mc_max) = 0.0_dp
17124 : p_index = 0
17125 1094 : DO md = 1, md_max
17126 5458 : DO mc = 1, mc_max
17127 44569 : DO mb = 1, 9
17128 39276 : ks_bd = 0.0_dp
17129 39276 : ks_bc = 0.0_dp
17130 39276 : p_bd = pbd((md - 1)*9 + mb)
17131 39276 : p_bc = pbc((mc - 1)*9 + mb)
17132 157104 : DO ma = 1, 3
17133 117828 : p_index = p_index + 1
17134 117828 : tmp = scale*prim(p_index)
17135 117828 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
17136 117828 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
17137 117828 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
17138 157104 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
17139 : END DO
17140 39276 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
17141 43640 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
17142 : END DO
17143 : END DO
17144 : END DO
17145 165 : END SUBROUTINE block_3_9
17146 : ! **************************************************************************************************
17147 : !> \brief ...
17148 : !> \param mc_max ...
17149 : !> \param md_max ...
17150 : !> \param kbd ...
17151 : !> \param kbc ...
17152 : !> \param kad ...
17153 : !> \param kac ...
17154 : !> \param pbd ...
17155 : !> \param pbc ...
17156 : !> \param pad ...
17157 : !> \param pac ...
17158 : !> \param prim ...
17159 : !> \param scale ...
17160 : ! **************************************************************************************************
17161 94 : SUBROUTINE block_3_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17162 : INTEGER :: mc_max, md_max
17163 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(3*md_max), kac(3*mc_max), &
17164 : pbd(10*md_max), pbc(10*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*10*mc_max*md_max), &
17165 : scale
17166 :
17167 : INTEGER :: ma, mb, mc, md, p_index
17168 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17169 :
17170 5484 : kbd(1:10*md_max) = 0.0_dp
17171 2714 : kbc(1:10*mc_max) = 0.0_dp
17172 1711 : kad(1:3*md_max) = 0.0_dp
17173 880 : kac(1:3*mc_max) = 0.0_dp
17174 : p_index = 0
17175 633 : DO md = 1, md_max
17176 2178 : DO mc = 1, mc_max
17177 17534 : DO mb = 1, 10
17178 15450 : ks_bd = 0.0_dp
17179 15450 : ks_bc = 0.0_dp
17180 15450 : p_bd = pbd((md - 1)*10 + mb)
17181 15450 : p_bc = pbc((mc - 1)*10 + mb)
17182 61800 : DO ma = 1, 3
17183 46350 : p_index = p_index + 1
17184 46350 : tmp = scale*prim(p_index)
17185 46350 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
17186 46350 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
17187 46350 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
17188 61800 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
17189 : END DO
17190 15450 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
17191 16995 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
17192 : END DO
17193 : END DO
17194 : END DO
17195 94 : END SUBROUTINE block_3_10
17196 : ! **************************************************************************************************
17197 : !> \brief ...
17198 : !> \param mc_max ...
17199 : !> \param md_max ...
17200 : !> \param kbd ...
17201 : !> \param kbc ...
17202 : !> \param kad ...
17203 : !> \param kac ...
17204 : !> \param pbd ...
17205 : !> \param pbc ...
17206 : !> \param pad ...
17207 : !> \param pac ...
17208 : !> \param prim ...
17209 : !> \param scale ...
17210 : ! **************************************************************************************************
17211 123 : SUBROUTINE block_3_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17212 : INTEGER :: mc_max, md_max
17213 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(3*md_max), kac(3*mc_max), &
17214 : pbd(11*md_max), pbc(11*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*11*mc_max*md_max), &
17215 : scale
17216 :
17217 : INTEGER :: ma, mb, mc, md, p_index
17218 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17219 :
17220 9088 : kbd(1:11*md_max) = 0.0_dp
17221 4171 : kbc(1:11*mc_max) = 0.0_dp
17222 2568 : kad(1:3*md_max) = 0.0_dp
17223 1227 : kac(1:3*mc_max) = 0.0_dp
17224 : p_index = 0
17225 938 : DO md = 1, md_max
17226 3387 : DO mc = 1, mc_max
17227 30203 : DO mb = 1, 11
17228 26939 : ks_bd = 0.0_dp
17229 26939 : ks_bc = 0.0_dp
17230 26939 : p_bd = pbd((md - 1)*11 + mb)
17231 26939 : p_bc = pbc((mc - 1)*11 + mb)
17232 107756 : DO ma = 1, 3
17233 80817 : p_index = p_index + 1
17234 80817 : tmp = scale*prim(p_index)
17235 80817 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
17236 80817 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
17237 80817 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
17238 107756 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
17239 : END DO
17240 26939 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
17241 29388 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
17242 : END DO
17243 : END DO
17244 : END DO
17245 123 : END SUBROUTINE block_3_11
17246 : ! **************************************************************************************************
17247 : !> \brief ...
17248 : !> \param mc_max ...
17249 : !> \param md_max ...
17250 : !> \param kbd ...
17251 : !> \param kbc ...
17252 : !> \param kad ...
17253 : !> \param kac ...
17254 : !> \param pbd ...
17255 : !> \param pbc ...
17256 : !> \param pad ...
17257 : !> \param pac ...
17258 : !> \param prim ...
17259 : !> \param scale ...
17260 : ! **************************************************************************************************
17261 107 : SUBROUTINE block_3_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17262 : INTEGER :: mc_max, md_max
17263 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(3*md_max), kac(3*mc_max), &
17264 : pbd(15*md_max), pbc(15*mc_max), pad(3*md_max), pac(3*mc_max), prim(3*15*mc_max*md_max), &
17265 : scale
17266 :
17267 : INTEGER :: ma, mb, mc, md, p_index
17268 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17269 :
17270 10472 : kbd(1:15*md_max) = 0.0_dp
17271 4682 : kbc(1:15*mc_max) = 0.0_dp
17272 2180 : kad(1:3*md_max) = 0.0_dp
17273 1022 : kac(1:3*mc_max) = 0.0_dp
17274 : p_index = 0
17275 798 : DO md = 1, md_max
17276 2809 : DO mc = 1, mc_max
17277 32867 : DO mb = 1, 15
17278 30165 : ks_bd = 0.0_dp
17279 30165 : ks_bc = 0.0_dp
17280 30165 : p_bd = pbd((md - 1)*15 + mb)
17281 30165 : p_bc = pbc((mc - 1)*15 + mb)
17282 120660 : DO ma = 1, 3
17283 90495 : p_index = p_index + 1
17284 90495 : tmp = scale*prim(p_index)
17285 90495 : ks_bc = ks_bc + tmp*pad((md - 1)*3 + ma)
17286 90495 : ks_bd = ks_bd + tmp*pac((mc - 1)*3 + ma)
17287 90495 : kad((md - 1)*3 + ma) = kad((md - 1)*3 + ma) - tmp*p_bc
17288 120660 : kac((mc - 1)*3 + ma) = kac((mc - 1)*3 + ma) - tmp*p_bd
17289 : END DO
17290 30165 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
17291 32176 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
17292 : END DO
17293 : END DO
17294 : END DO
17295 107 : END SUBROUTINE block_3_15
17296 : ! **************************************************************************************************
17297 : !> \brief ...
17298 : !> \param kbd ...
17299 : !> \param kbc ...
17300 : !> \param kad ...
17301 : !> \param kac ...
17302 : !> \param pbd ...
17303 : !> \param pbc ...
17304 : !> \param pad ...
17305 : !> \param pac ...
17306 : !> \param prim ...
17307 : !> \param scale ...
17308 : ! **************************************************************************************************
17309 256011 : SUBROUTINE block_4_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17310 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(4*1), kac(4*1), &
17311 : pbd(1*1), pbc(1*1), pad(4*1), &
17312 : pac(4*1), prim(4*1*1*1), scale
17313 :
17314 : INTEGER :: ma, mb, mc, md, p_index
17315 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17316 :
17317 256011 : kbd(1:1*1) = 0.0_dp
17318 256011 : kbc(1:1*1) = 0.0_dp
17319 256011 : kad(1:4*1) = 0.0_dp
17320 256011 : kac(1:4*1) = 0.0_dp
17321 256011 : p_index = 0
17322 512022 : DO md = 1, 1
17323 768033 : DO mc = 1, 1
17324 768033 : DO mb = 1, 1
17325 256011 : ks_bd = 0.0_dp
17326 256011 : ks_bc = 0.0_dp
17327 256011 : p_bd = pbd((md - 1)*1 + mb)
17328 256011 : p_bc = pbc((mc - 1)*1 + mb)
17329 1280055 : DO ma = 1, 4
17330 1024044 : p_index = p_index + 1
17331 1024044 : tmp = scale*prim(p_index)
17332 1024044 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17333 1024044 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17334 1024044 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17335 1280055 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17336 : END DO
17337 256011 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17338 512022 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17339 : END DO
17340 : END DO
17341 : END DO
17342 256011 : END SUBROUTINE block_4_1_1_1
17343 : ! **************************************************************************************************
17344 : !> \brief ...
17345 : !> \param kbd ...
17346 : !> \param kbc ...
17347 : !> \param kad ...
17348 : !> \param kac ...
17349 : !> \param pbd ...
17350 : !> \param pbc ...
17351 : !> \param pad ...
17352 : !> \param pac ...
17353 : !> \param prim ...
17354 : !> \param scale ...
17355 : ! **************************************************************************************************
17356 6 : SUBROUTINE block_4_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17357 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(4*2), kac(4*1), &
17358 : pbd(1*2), pbc(1*1), pad(4*2), &
17359 : pac(4*1), prim(4*1*1*2), scale
17360 :
17361 : INTEGER :: ma, mb, mc, md, p_index
17362 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17363 :
17364 6 : kbd(1:1*2) = 0.0_dp
17365 6 : kbc(1:1*1) = 0.0_dp
17366 6 : kad(1:4*2) = 0.0_dp
17367 6 : kac(1:4*1) = 0.0_dp
17368 6 : p_index = 0
17369 18 : DO md = 1, 2
17370 30 : DO mc = 1, 1
17371 36 : DO mb = 1, 1
17372 12 : ks_bd = 0.0_dp
17373 12 : ks_bc = 0.0_dp
17374 12 : p_bd = pbd((md - 1)*1 + mb)
17375 12 : p_bc = pbc((mc - 1)*1 + mb)
17376 60 : DO ma = 1, 4
17377 48 : p_index = p_index + 1
17378 48 : tmp = scale*prim(p_index)
17379 48 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17380 48 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17381 48 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17382 60 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17383 : END DO
17384 12 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17385 24 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17386 : END DO
17387 : END DO
17388 : END DO
17389 6 : END SUBROUTINE block_4_1_1_2
17390 : ! **************************************************************************************************
17391 : !> \brief ...
17392 : !> \param kbd ...
17393 : !> \param kbc ...
17394 : !> \param kad ...
17395 : !> \param kac ...
17396 : !> \param pbd ...
17397 : !> \param pbc ...
17398 : !> \param pad ...
17399 : !> \param pac ...
17400 : !> \param prim ...
17401 : !> \param scale ...
17402 : ! **************************************************************************************************
17403 87533 : SUBROUTINE block_4_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17404 : REAL(KIND=dp) :: kbd(1*3), kbc(1*1), kad(4*3), kac(4*1), &
17405 : pbd(1*3), pbc(1*1), pad(4*3), &
17406 : pac(4*1), prim(4*1*1*3), scale
17407 :
17408 : INTEGER :: ma, mb, mc, md, p_index
17409 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17410 :
17411 87533 : kbd(1:1*3) = 0.0_dp
17412 87533 : kbc(1:1*1) = 0.0_dp
17413 87533 : kad(1:4*3) = 0.0_dp
17414 87533 : kac(1:4*1) = 0.0_dp
17415 87533 : p_index = 0
17416 350132 : DO md = 1, 3
17417 612731 : DO mc = 1, 1
17418 787797 : DO mb = 1, 1
17419 262599 : ks_bd = 0.0_dp
17420 262599 : ks_bc = 0.0_dp
17421 262599 : p_bd = pbd((md - 1)*1 + mb)
17422 262599 : p_bc = pbc((mc - 1)*1 + mb)
17423 1312995 : DO ma = 1, 4
17424 1050396 : p_index = p_index + 1
17425 1050396 : tmp = scale*prim(p_index)
17426 1050396 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17427 1050396 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17428 1050396 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17429 1312995 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17430 : END DO
17431 262599 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17432 525198 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17433 : END DO
17434 : END DO
17435 : END DO
17436 87533 : END SUBROUTINE block_4_1_1_3
17437 : ! **************************************************************************************************
17438 : !> \brief ...
17439 : !> \param kbd ...
17440 : !> \param kbc ...
17441 : !> \param kad ...
17442 : !> \param kac ...
17443 : !> \param pbd ...
17444 : !> \param pbc ...
17445 : !> \param pad ...
17446 : !> \param pac ...
17447 : !> \param prim ...
17448 : !> \param scale ...
17449 : ! **************************************************************************************************
17450 84912 : SUBROUTINE block_4_1_1_4(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17451 : REAL(KIND=dp) :: kbd(1*4), kbc(1*1), kad(4*4), kac(4*1), &
17452 : pbd(1*4), pbc(1*1), pad(4*4), &
17453 : pac(4*1), prim(4*1*1*4), scale
17454 :
17455 : INTEGER :: ma, mb, mc, md, p_index
17456 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17457 :
17458 84912 : kbd(1:1*4) = 0.0_dp
17459 84912 : kbc(1:1*1) = 0.0_dp
17460 84912 : kad(1:4*4) = 0.0_dp
17461 84912 : kac(1:4*1) = 0.0_dp
17462 84912 : p_index = 0
17463 424560 : DO md = 1, 4
17464 764208 : DO mc = 1, 1
17465 1018944 : DO mb = 1, 1
17466 339648 : ks_bd = 0.0_dp
17467 339648 : ks_bc = 0.0_dp
17468 339648 : p_bd = pbd((md - 1)*1 + mb)
17469 339648 : p_bc = pbc((mc - 1)*1 + mb)
17470 1698240 : DO ma = 1, 4
17471 1358592 : p_index = p_index + 1
17472 1358592 : tmp = scale*prim(p_index)
17473 1358592 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17474 1358592 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17475 1358592 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17476 1698240 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17477 : END DO
17478 339648 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17479 679296 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17480 : END DO
17481 : END DO
17482 : END DO
17483 84912 : END SUBROUTINE block_4_1_1_4
17484 : ! **************************************************************************************************
17485 : !> \brief ...
17486 : !> \param md_max ...
17487 : !> \param kbd ...
17488 : !> \param kbc ...
17489 : !> \param kad ...
17490 : !> \param kac ...
17491 : !> \param pbd ...
17492 : !> \param pbc ...
17493 : !> \param pad ...
17494 : !> \param pac ...
17495 : !> \param prim ...
17496 : !> \param scale ...
17497 : ! **************************************************************************************************
17498 30220 : SUBROUTINE block_4_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17499 : INTEGER :: md_max
17500 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(4*md_max), kac(4*1), pbd(1*md_max), pbc(1*1), &
17501 : pad(4*md_max), pac(4*1), prim(4*1*1*md_max), scale
17502 :
17503 : INTEGER :: ma, mb, mc, md, p_index
17504 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17505 :
17506 181614 : kbd(1:1*md_max) = 0.0_dp
17507 30220 : kbc(1:1*1) = 0.0_dp
17508 635796 : kad(1:4*md_max) = 0.0_dp
17509 30220 : kac(1:4*1) = 0.0_dp
17510 30220 : p_index = 0
17511 181614 : DO md = 1, md_max
17512 333008 : DO mc = 1, 1
17513 454182 : DO mb = 1, 1
17514 151394 : ks_bd = 0.0_dp
17515 151394 : ks_bc = 0.0_dp
17516 151394 : p_bd = pbd((md - 1)*1 + mb)
17517 151394 : p_bc = pbc((mc - 1)*1 + mb)
17518 756970 : DO ma = 1, 4
17519 605576 : p_index = p_index + 1
17520 605576 : tmp = scale*prim(p_index)
17521 605576 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17522 605576 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17523 605576 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17524 756970 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17525 : END DO
17526 151394 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17527 302788 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17528 : END DO
17529 : END DO
17530 : END DO
17531 30220 : END SUBROUTINE block_4_1_1
17532 : ! **************************************************************************************************
17533 : !> \brief ...
17534 : !> \param kbd ...
17535 : !> \param kbc ...
17536 : !> \param kad ...
17537 : !> \param kac ...
17538 : !> \param pbd ...
17539 : !> \param pbc ...
17540 : !> \param pad ...
17541 : !> \param pac ...
17542 : !> \param prim ...
17543 : !> \param scale ...
17544 : ! **************************************************************************************************
17545 3 : SUBROUTINE block_4_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17546 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(4*1), kac(4*2), &
17547 : pbd(1*1), pbc(1*2), pad(4*1), &
17548 : pac(4*2), prim(4*1*2*1), scale
17549 :
17550 : INTEGER :: ma, mb, mc, md, p_index
17551 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17552 :
17553 3 : kbd(1:1*1) = 0.0_dp
17554 3 : kbc(1:1*2) = 0.0_dp
17555 3 : kad(1:4*1) = 0.0_dp
17556 3 : kac(1:4*2) = 0.0_dp
17557 3 : p_index = 0
17558 6 : DO md = 1, 1
17559 12 : DO mc = 1, 2
17560 15 : DO mb = 1, 1
17561 6 : ks_bd = 0.0_dp
17562 6 : ks_bc = 0.0_dp
17563 6 : p_bd = pbd((md - 1)*1 + mb)
17564 6 : p_bc = pbc((mc - 1)*1 + mb)
17565 30 : DO ma = 1, 4
17566 24 : p_index = p_index + 1
17567 24 : tmp = scale*prim(p_index)
17568 24 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17569 24 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17570 24 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17571 30 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17572 : END DO
17573 6 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17574 12 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17575 : END DO
17576 : END DO
17577 : END DO
17578 3 : END SUBROUTINE block_4_1_2_1
17579 : ! **************************************************************************************************
17580 : !> \brief ...
17581 : !> \param kbd ...
17582 : !> \param kbc ...
17583 : !> \param kad ...
17584 : !> \param kac ...
17585 : !> \param pbd ...
17586 : !> \param pbc ...
17587 : !> \param pad ...
17588 : !> \param pac ...
17589 : !> \param prim ...
17590 : !> \param scale ...
17591 : ! **************************************************************************************************
17592 5 : SUBROUTINE block_4_1_2_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17593 : REAL(KIND=dp) :: kbd(1*2), kbc(1*2), kad(4*2), kac(4*2), &
17594 : pbd(1*2), pbc(1*2), pad(4*2), &
17595 : pac(4*2), prim(4*1*2*2), scale
17596 :
17597 : INTEGER :: ma, mb, mc, md, p_index
17598 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17599 :
17600 5 : kbd(1:1*2) = 0.0_dp
17601 5 : kbc(1:1*2) = 0.0_dp
17602 5 : kad(1:4*2) = 0.0_dp
17603 5 : kac(1:4*2) = 0.0_dp
17604 5 : p_index = 0
17605 15 : DO md = 1, 2
17606 35 : DO mc = 1, 2
17607 50 : DO mb = 1, 1
17608 20 : ks_bd = 0.0_dp
17609 20 : ks_bc = 0.0_dp
17610 20 : p_bd = pbd((md - 1)*1 + mb)
17611 20 : p_bc = pbc((mc - 1)*1 + mb)
17612 100 : DO ma = 1, 4
17613 80 : p_index = p_index + 1
17614 80 : tmp = scale*prim(p_index)
17615 80 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17616 80 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17617 80 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17618 100 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17619 : END DO
17620 20 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17621 40 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17622 : END DO
17623 : END DO
17624 : END DO
17625 5 : END SUBROUTINE block_4_1_2_2
17626 : ! **************************************************************************************************
17627 : !> \brief ...
17628 : !> \param md_max ...
17629 : !> \param kbd ...
17630 : !> \param kbc ...
17631 : !> \param kad ...
17632 : !> \param kac ...
17633 : !> \param pbd ...
17634 : !> \param pbc ...
17635 : !> \param pad ...
17636 : !> \param pac ...
17637 : !> \param prim ...
17638 : !> \param scale ...
17639 : ! **************************************************************************************************
17640 25 : SUBROUTINE block_4_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17641 : INTEGER :: md_max
17642 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(4*md_max), kac(4*2), pbd(1*md_max), pbc(1*2), &
17643 : pad(4*md_max), pac(4*2), prim(4*1*2*md_max), scale
17644 :
17645 : INTEGER :: ma, mb, mc, md, p_index
17646 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17647 :
17648 207 : kbd(1:1*md_max) = 0.0_dp
17649 25 : kbc(1:1*2) = 0.0_dp
17650 753 : kad(1:4*md_max) = 0.0_dp
17651 25 : kac(1:4*2) = 0.0_dp
17652 25 : p_index = 0
17653 207 : DO md = 1, md_max
17654 571 : DO mc = 1, 2
17655 910 : DO mb = 1, 1
17656 364 : ks_bd = 0.0_dp
17657 364 : ks_bc = 0.0_dp
17658 364 : p_bd = pbd((md - 1)*1 + mb)
17659 364 : p_bc = pbc((mc - 1)*1 + mb)
17660 1820 : DO ma = 1, 4
17661 1456 : p_index = p_index + 1
17662 1456 : tmp = scale*prim(p_index)
17663 1456 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17664 1456 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17665 1456 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17666 1820 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17667 : END DO
17668 364 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17669 728 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17670 : END DO
17671 : END DO
17672 : END DO
17673 25 : END SUBROUTINE block_4_1_2
17674 : ! **************************************************************************************************
17675 : !> \brief ...
17676 : !> \param kbd ...
17677 : !> \param kbc ...
17678 : !> \param kad ...
17679 : !> \param kac ...
17680 : !> \param pbd ...
17681 : !> \param pbc ...
17682 : !> \param pad ...
17683 : !> \param pac ...
17684 : !> \param prim ...
17685 : !> \param scale ...
17686 : ! **************************************************************************************************
17687 76067 : SUBROUTINE block_4_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17688 : REAL(KIND=dp) :: kbd(1*1), kbc(1*3), kad(4*1), kac(4*3), &
17689 : pbd(1*1), pbc(1*3), pad(4*1), &
17690 : pac(4*3), prim(4*1*3*1), scale
17691 :
17692 : INTEGER :: ma, mb, mc, md, p_index
17693 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17694 :
17695 76067 : kbd(1:1*1) = 0.0_dp
17696 76067 : kbc(1:1*3) = 0.0_dp
17697 76067 : kad(1:4*1) = 0.0_dp
17698 76067 : kac(1:4*3) = 0.0_dp
17699 76067 : p_index = 0
17700 152134 : DO md = 1, 1
17701 380335 : DO mc = 1, 3
17702 532469 : DO mb = 1, 1
17703 228201 : ks_bd = 0.0_dp
17704 228201 : ks_bc = 0.0_dp
17705 228201 : p_bd = pbd((md - 1)*1 + mb)
17706 228201 : p_bc = pbc((mc - 1)*1 + mb)
17707 1141005 : DO ma = 1, 4
17708 912804 : p_index = p_index + 1
17709 912804 : tmp = scale*prim(p_index)
17710 912804 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17711 912804 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17712 912804 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17713 1141005 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17714 : END DO
17715 228201 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17716 456402 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17717 : END DO
17718 : END DO
17719 : END DO
17720 76067 : END SUBROUTINE block_4_1_3_1
17721 : ! **************************************************************************************************
17722 : !> \brief ...
17723 : !> \param md_max ...
17724 : !> \param kbd ...
17725 : !> \param kbc ...
17726 : !> \param kad ...
17727 : !> \param kac ...
17728 : !> \param pbd ...
17729 : !> \param pbc ...
17730 : !> \param pad ...
17731 : !> \param pac ...
17732 : !> \param prim ...
17733 : !> \param scale ...
17734 : ! **************************************************************************************************
17735 60727 : SUBROUTINE block_4_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17736 : INTEGER :: md_max
17737 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*3), kad(4*md_max), kac(4*3), pbd(1*md_max), pbc(1*3), &
17738 : pad(4*md_max), pac(4*3), prim(4*1*3*md_max), scale
17739 :
17740 : INTEGER :: ma, mb, mc, md, p_index
17741 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17742 :
17743 276719 : kbd(1:1*md_max) = 0.0_dp
17744 60727 : kbc(1:1*3) = 0.0_dp
17745 924695 : kad(1:4*md_max) = 0.0_dp
17746 60727 : kac(1:4*3) = 0.0_dp
17747 60727 : p_index = 0
17748 276719 : DO md = 1, md_max
17749 924695 : DO mc = 1, 3
17750 1511944 : DO mb = 1, 1
17751 647976 : ks_bd = 0.0_dp
17752 647976 : ks_bc = 0.0_dp
17753 647976 : p_bd = pbd((md - 1)*1 + mb)
17754 647976 : p_bc = pbc((mc - 1)*1 + mb)
17755 3239880 : DO ma = 1, 4
17756 2591904 : p_index = p_index + 1
17757 2591904 : tmp = scale*prim(p_index)
17758 2591904 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17759 2591904 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17760 2591904 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17761 3239880 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17762 : END DO
17763 647976 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17764 1295952 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17765 : END DO
17766 : END DO
17767 : END DO
17768 60727 : END SUBROUTINE block_4_1_3
17769 : ! **************************************************************************************************
17770 : !> \brief ...
17771 : !> \param kbd ...
17772 : !> \param kbc ...
17773 : !> \param kad ...
17774 : !> \param kac ...
17775 : !> \param pbd ...
17776 : !> \param pbc ...
17777 : !> \param pad ...
17778 : !> \param pac ...
17779 : !> \param prim ...
17780 : !> \param scale ...
17781 : ! **************************************************************************************************
17782 311129 : SUBROUTINE block_4_1_4_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17783 : REAL(KIND=dp) :: kbd(1*1), kbc(1*4), kad(4*1), kac(4*4), &
17784 : pbd(1*1), pbc(1*4), pad(4*1), &
17785 : pac(4*4), prim(4*1*4*1), scale
17786 :
17787 : INTEGER :: ma, mb, mc, md, p_index
17788 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17789 :
17790 311129 : kbd(1:1*1) = 0.0_dp
17791 311129 : kbc(1:1*4) = 0.0_dp
17792 311129 : kad(1:4*1) = 0.0_dp
17793 311129 : kac(1:4*4) = 0.0_dp
17794 311129 : p_index = 0
17795 622258 : DO md = 1, 1
17796 1866774 : DO mc = 1, 4
17797 2800161 : DO mb = 1, 1
17798 1244516 : ks_bd = 0.0_dp
17799 1244516 : ks_bc = 0.0_dp
17800 1244516 : p_bd = pbd((md - 1)*1 + mb)
17801 1244516 : p_bc = pbc((mc - 1)*1 + mb)
17802 6222580 : DO ma = 1, 4
17803 4978064 : p_index = p_index + 1
17804 4978064 : tmp = scale*prim(p_index)
17805 4978064 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17806 4978064 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17807 4978064 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17808 6222580 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17809 : END DO
17810 1244516 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17811 2489032 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17812 : END DO
17813 : END DO
17814 : END DO
17815 311129 : END SUBROUTINE block_4_1_4_1
17816 : ! **************************************************************************************************
17817 : !> \brief ...
17818 : !> \param md_max ...
17819 : !> \param kbd ...
17820 : !> \param kbc ...
17821 : !> \param kad ...
17822 : !> \param kac ...
17823 : !> \param pbd ...
17824 : !> \param pbc ...
17825 : !> \param pad ...
17826 : !> \param pac ...
17827 : !> \param prim ...
17828 : !> \param scale ...
17829 : ! **************************************************************************************************
17830 392312 : SUBROUTINE block_4_1_4(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17831 : INTEGER :: md_max
17832 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*4), kad(4*md_max), kac(4*4), pbd(1*md_max), pbc(1*4), &
17833 : pad(4*md_max), pac(4*4), prim(4*1*4*md_max), scale
17834 :
17835 : INTEGER :: ma, mb, mc, md, p_index
17836 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17837 :
17838 1929014 : kbd(1:1*md_max) = 0.0_dp
17839 392312 : kbc(1:1*4) = 0.0_dp
17840 6539120 : kad(1:4*md_max) = 0.0_dp
17841 392312 : kac(1:4*4) = 0.0_dp
17842 392312 : p_index = 0
17843 1929014 : DO md = 1, md_max
17844 8075822 : DO mc = 1, 4
17845 13830318 : DO mb = 1, 1
17846 6146808 : ks_bd = 0.0_dp
17847 6146808 : ks_bc = 0.0_dp
17848 6146808 : p_bd = pbd((md - 1)*1 + mb)
17849 6146808 : p_bc = pbc((mc - 1)*1 + mb)
17850 30734040 : DO ma = 1, 4
17851 24587232 : p_index = p_index + 1
17852 24587232 : tmp = scale*prim(p_index)
17853 24587232 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17854 24587232 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17855 24587232 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17856 30734040 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17857 : END DO
17858 6146808 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17859 12293616 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17860 : END DO
17861 : END DO
17862 : END DO
17863 392312 : END SUBROUTINE block_4_1_4
17864 : ! **************************************************************************************************
17865 : !> \brief ...
17866 : !> \param mc_max ...
17867 : !> \param md_max ...
17868 : !> \param kbd ...
17869 : !> \param kbc ...
17870 : !> \param kad ...
17871 : !> \param kac ...
17872 : !> \param pbd ...
17873 : !> \param pbc ...
17874 : !> \param pad ...
17875 : !> \param pac ...
17876 : !> \param prim ...
17877 : !> \param scale ...
17878 : ! **************************************************************************************************
17879 296685 : SUBROUTINE block_4_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17880 : INTEGER :: mc_max, md_max
17881 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(4*md_max), kac(4*mc_max), pbd(1*md_max), &
17882 : pbc(1*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*1*mc_max*md_max), scale
17883 :
17884 : INTEGER :: ma, mb, mc, md, p_index
17885 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17886 :
17887 1083044 : kbd(1:1*md_max) = 0.0_dp
17888 1783236 : kbc(1:1*mc_max) = 0.0_dp
17889 3442121 : kad(1:4*md_max) = 0.0_dp
17890 6242889 : kac(1:4*mc_max) = 0.0_dp
17891 : p_index = 0
17892 1083044 : DO md = 1, md_max
17893 5027925 : DO mc = 1, mc_max
17894 8676121 : DO mb = 1, 1
17895 3944881 : ks_bd = 0.0_dp
17896 3944881 : ks_bc = 0.0_dp
17897 3944881 : p_bd = pbd((md - 1)*1 + mb)
17898 3944881 : p_bc = pbc((mc - 1)*1 + mb)
17899 19724405 : DO ma = 1, 4
17900 15779524 : p_index = p_index + 1
17901 15779524 : tmp = scale*prim(p_index)
17902 15779524 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17903 15779524 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17904 15779524 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17905 19724405 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17906 : END DO
17907 3944881 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
17908 7889762 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
17909 : END DO
17910 : END DO
17911 : END DO
17912 296685 : END SUBROUTINE block_4_1
17913 : ! **************************************************************************************************
17914 : !> \brief ...
17915 : !> \param kbd ...
17916 : !> \param kbc ...
17917 : !> \param kad ...
17918 : !> \param kac ...
17919 : !> \param pbd ...
17920 : !> \param pbc ...
17921 : !> \param pad ...
17922 : !> \param pac ...
17923 : !> \param prim ...
17924 : !> \param scale ...
17925 : ! **************************************************************************************************
17926 5 : SUBROUTINE block_4_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17927 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(4*1), kac(4*1), &
17928 : pbd(2*1), pbc(2*1), pad(4*1), &
17929 : pac(4*1), prim(4*2*1*1), scale
17930 :
17931 : INTEGER :: ma, mb, mc, md, p_index
17932 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17933 :
17934 5 : kbd(1:2*1) = 0.0_dp
17935 5 : kbc(1:2*1) = 0.0_dp
17936 5 : kad(1:4*1) = 0.0_dp
17937 5 : kac(1:4*1) = 0.0_dp
17938 5 : p_index = 0
17939 10 : DO md = 1, 1
17940 15 : DO mc = 1, 1
17941 20 : DO mb = 1, 2
17942 10 : ks_bd = 0.0_dp
17943 10 : ks_bc = 0.0_dp
17944 10 : p_bd = pbd((md - 1)*2 + mb)
17945 10 : p_bc = pbc((mc - 1)*2 + mb)
17946 50 : DO ma = 1, 4
17947 40 : p_index = p_index + 1
17948 40 : tmp = scale*prim(p_index)
17949 40 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17950 40 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17951 40 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17952 50 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
17953 : END DO
17954 10 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
17955 15 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
17956 : END DO
17957 : END DO
17958 : END DO
17959 5 : END SUBROUTINE block_4_2_1_1
17960 : ! **************************************************************************************************
17961 : !> \brief ...
17962 : !> \param kbd ...
17963 : !> \param kbc ...
17964 : !> \param kad ...
17965 : !> \param kac ...
17966 : !> \param pbd ...
17967 : !> \param pbc ...
17968 : !> \param pad ...
17969 : !> \param pac ...
17970 : !> \param prim ...
17971 : !> \param scale ...
17972 : ! **************************************************************************************************
17973 3 : SUBROUTINE block_4_2_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
17974 : REAL(KIND=dp) :: kbd(2*2), kbc(2*1), kad(4*2), kac(4*1), &
17975 : pbd(2*2), pbc(2*1), pad(4*2), &
17976 : pac(4*1), prim(4*2*1*2), scale
17977 :
17978 : INTEGER :: ma, mb, mc, md, p_index
17979 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
17980 :
17981 3 : kbd(1:2*2) = 0.0_dp
17982 3 : kbc(1:2*1) = 0.0_dp
17983 3 : kad(1:4*2) = 0.0_dp
17984 3 : kac(1:4*1) = 0.0_dp
17985 3 : p_index = 0
17986 9 : DO md = 1, 2
17987 15 : DO mc = 1, 1
17988 24 : DO mb = 1, 2
17989 12 : ks_bd = 0.0_dp
17990 12 : ks_bc = 0.0_dp
17991 12 : p_bd = pbd((md - 1)*2 + mb)
17992 12 : p_bc = pbc((mc - 1)*2 + mb)
17993 60 : DO ma = 1, 4
17994 48 : p_index = p_index + 1
17995 48 : tmp = scale*prim(p_index)
17996 48 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
17997 48 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
17998 48 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
17999 60 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18000 : END DO
18001 12 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
18002 18 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
18003 : END DO
18004 : END DO
18005 : END DO
18006 3 : END SUBROUTINE block_4_2_1_2
18007 : ! **************************************************************************************************
18008 : !> \brief ...
18009 : !> \param md_max ...
18010 : !> \param kbd ...
18011 : !> \param kbc ...
18012 : !> \param kad ...
18013 : !> \param kac ...
18014 : !> \param pbd ...
18015 : !> \param pbc ...
18016 : !> \param pad ...
18017 : !> \param pac ...
18018 : !> \param prim ...
18019 : !> \param scale ...
18020 : ! **************************************************************************************************
18021 15 : SUBROUTINE block_4_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18022 : INTEGER :: md_max
18023 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(4*md_max), kac(4*1), pbd(2*md_max), pbc(2*1), &
18024 : pad(4*md_max), pac(4*1), prim(4*2*1*md_max), scale
18025 :
18026 : INTEGER :: ma, mb, mc, md, p_index
18027 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18028 :
18029 205 : kbd(1:2*md_max) = 0.0_dp
18030 15 : kbc(1:2*1) = 0.0_dp
18031 395 : kad(1:4*md_max) = 0.0_dp
18032 15 : kac(1:4*1) = 0.0_dp
18033 15 : p_index = 0
18034 110 : DO md = 1, md_max
18035 205 : DO mc = 1, 1
18036 380 : DO mb = 1, 2
18037 190 : ks_bd = 0.0_dp
18038 190 : ks_bc = 0.0_dp
18039 190 : p_bd = pbd((md - 1)*2 + mb)
18040 190 : p_bc = pbc((mc - 1)*2 + mb)
18041 950 : DO ma = 1, 4
18042 760 : p_index = p_index + 1
18043 760 : tmp = scale*prim(p_index)
18044 760 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18045 760 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18046 760 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18047 950 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18048 : END DO
18049 190 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
18050 285 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
18051 : END DO
18052 : END DO
18053 : END DO
18054 15 : END SUBROUTINE block_4_2_1
18055 : ! **************************************************************************************************
18056 : !> \brief ...
18057 : !> \param kbd ...
18058 : !> \param kbc ...
18059 : !> \param kad ...
18060 : !> \param kac ...
18061 : !> \param pbd ...
18062 : !> \param pbc ...
18063 : !> \param pad ...
18064 : !> \param pac ...
18065 : !> \param prim ...
18066 : !> \param scale ...
18067 : ! **************************************************************************************************
18068 1 : SUBROUTINE block_4_2_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18069 : REAL(KIND=dp) :: kbd(2*1), kbc(2*2), kad(4*1), kac(4*2), &
18070 : pbd(2*1), pbc(2*2), pad(4*1), &
18071 : pac(4*2), prim(4*2*2*1), scale
18072 :
18073 : INTEGER :: ma, mb, mc, md, p_index
18074 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18075 :
18076 1 : kbd(1:2*1) = 0.0_dp
18077 1 : kbc(1:2*2) = 0.0_dp
18078 1 : kad(1:4*1) = 0.0_dp
18079 1 : kac(1:4*2) = 0.0_dp
18080 1 : p_index = 0
18081 2 : DO md = 1, 1
18082 4 : DO mc = 1, 2
18083 7 : DO mb = 1, 2
18084 4 : ks_bd = 0.0_dp
18085 4 : ks_bc = 0.0_dp
18086 4 : p_bd = pbd((md - 1)*2 + mb)
18087 4 : p_bc = pbc((mc - 1)*2 + mb)
18088 20 : DO ma = 1, 4
18089 16 : p_index = p_index + 1
18090 16 : tmp = scale*prim(p_index)
18091 16 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18092 16 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18093 16 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18094 20 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18095 : END DO
18096 4 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
18097 6 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
18098 : END DO
18099 : END DO
18100 : END DO
18101 1 : END SUBROUTINE block_4_2_2_1
18102 : ! **************************************************************************************************
18103 : !> \brief ...
18104 : !> \param md_max ...
18105 : !> \param kbd ...
18106 : !> \param kbc ...
18107 : !> \param kad ...
18108 : !> \param kac ...
18109 : !> \param pbd ...
18110 : !> \param pbc ...
18111 : !> \param pad ...
18112 : !> \param pac ...
18113 : !> \param prim ...
18114 : !> \param scale ...
18115 : ! **************************************************************************************************
18116 7 : SUBROUTINE block_4_2_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18117 : INTEGER :: md_max
18118 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*2), kad(4*md_max), kac(4*2), pbd(2*md_max), pbc(2*2), &
18119 : pad(4*md_max), pac(4*2), prim(4*2*2*md_max), scale
18120 :
18121 : INTEGER :: ma, mb, mc, md, p_index
18122 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18123 :
18124 57 : kbd(1:2*md_max) = 0.0_dp
18125 7 : kbc(1:2*2) = 0.0_dp
18126 107 : kad(1:4*md_max) = 0.0_dp
18127 7 : kac(1:4*2) = 0.0_dp
18128 7 : p_index = 0
18129 32 : DO md = 1, md_max
18130 82 : DO mc = 1, 2
18131 175 : DO mb = 1, 2
18132 100 : ks_bd = 0.0_dp
18133 100 : ks_bc = 0.0_dp
18134 100 : p_bd = pbd((md - 1)*2 + mb)
18135 100 : p_bc = pbc((mc - 1)*2 + mb)
18136 500 : DO ma = 1, 4
18137 400 : p_index = p_index + 1
18138 400 : tmp = scale*prim(p_index)
18139 400 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18140 400 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18141 400 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18142 500 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18143 : END DO
18144 100 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
18145 150 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
18146 : END DO
18147 : END DO
18148 : END DO
18149 7 : END SUBROUTINE block_4_2_2
18150 : ! **************************************************************************************************
18151 : !> \brief ...
18152 : !> \param mc_max ...
18153 : !> \param md_max ...
18154 : !> \param kbd ...
18155 : !> \param kbc ...
18156 : !> \param kad ...
18157 : !> \param kac ...
18158 : !> \param pbd ...
18159 : !> \param pbc ...
18160 : !> \param pad ...
18161 : !> \param pac ...
18162 : !> \param prim ...
18163 : !> \param scale ...
18164 : ! **************************************************************************************************
18165 81 : SUBROUTINE block_4_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18166 : INTEGER :: mc_max, md_max
18167 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(4*md_max), kac(4*mc_max), pbd(2*md_max), &
18168 : pbc(2*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*2*mc_max*md_max), scale
18169 :
18170 : INTEGER :: ma, mb, mc, md, p_index
18171 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18172 :
18173 809 : kbd(1:2*md_max) = 0.0_dp
18174 1361 : kbc(1:2*mc_max) = 0.0_dp
18175 1537 : kad(1:4*md_max) = 0.0_dp
18176 2641 : kac(1:4*mc_max) = 0.0_dp
18177 : p_index = 0
18178 445 : DO md = 1, md_max
18179 3707 : DO mc = 1, mc_max
18180 10150 : DO mb = 1, 2
18181 6524 : ks_bd = 0.0_dp
18182 6524 : ks_bc = 0.0_dp
18183 6524 : p_bd = pbd((md - 1)*2 + mb)
18184 6524 : p_bc = pbc((mc - 1)*2 + mb)
18185 32620 : DO ma = 1, 4
18186 26096 : p_index = p_index + 1
18187 26096 : tmp = scale*prim(p_index)
18188 26096 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18189 26096 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18190 26096 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18191 32620 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18192 : END DO
18193 6524 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
18194 9786 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
18195 : END DO
18196 : END DO
18197 : END DO
18198 81 : END SUBROUTINE block_4_2
18199 : ! **************************************************************************************************
18200 : !> \brief ...
18201 : !> \param kbd ...
18202 : !> \param kbc ...
18203 : !> \param kad ...
18204 : !> \param kac ...
18205 : !> \param pbd ...
18206 : !> \param pbc ...
18207 : !> \param pad ...
18208 : !> \param pac ...
18209 : !> \param prim ...
18210 : !> \param scale ...
18211 : ! **************************************************************************************************
18212 92665 : SUBROUTINE block_4_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18213 : REAL(KIND=dp) :: kbd(3*1), kbc(3*1), kad(4*1), kac(4*1), &
18214 : pbd(3*1), pbc(3*1), pad(4*1), &
18215 : pac(4*1), prim(4*3*1*1), scale
18216 :
18217 : INTEGER :: ma, mb, mc, md, p_index
18218 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18219 :
18220 92665 : kbd(1:3*1) = 0.0_dp
18221 92665 : kbc(1:3*1) = 0.0_dp
18222 92665 : kad(1:4*1) = 0.0_dp
18223 92665 : kac(1:4*1) = 0.0_dp
18224 92665 : p_index = 0
18225 185330 : DO md = 1, 1
18226 277995 : DO mc = 1, 1
18227 463325 : DO mb = 1, 3
18228 277995 : ks_bd = 0.0_dp
18229 277995 : ks_bc = 0.0_dp
18230 277995 : p_bd = pbd((md - 1)*3 + mb)
18231 277995 : p_bc = pbc((mc - 1)*3 + mb)
18232 1389975 : DO ma = 1, 4
18233 1111980 : p_index = p_index + 1
18234 1111980 : tmp = scale*prim(p_index)
18235 1111980 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18236 1111980 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18237 1111980 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18238 1389975 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18239 : END DO
18240 277995 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
18241 370660 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
18242 : END DO
18243 : END DO
18244 : END DO
18245 92665 : END SUBROUTINE block_4_3_1_1
18246 : ! **************************************************************************************************
18247 : !> \brief ...
18248 : !> \param md_max ...
18249 : !> \param kbd ...
18250 : !> \param kbc ...
18251 : !> \param kad ...
18252 : !> \param kac ...
18253 : !> \param pbd ...
18254 : !> \param pbc ...
18255 : !> \param pad ...
18256 : !> \param pac ...
18257 : !> \param prim ...
18258 : !> \param scale ...
18259 : ! **************************************************************************************************
18260 72906 : SUBROUTINE block_4_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18261 : INTEGER :: md_max
18262 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*1), kad(4*md_max), kac(4*1), pbd(3*md_max), pbc(3*1), &
18263 : pad(4*md_max), pac(4*1), prim(4*3*1*md_max), scale
18264 :
18265 : INTEGER :: ma, mb, mc, md, p_index
18266 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18267 :
18268 862788 : kbd(1:3*md_max) = 0.0_dp
18269 72906 : kbc(1:3*1) = 0.0_dp
18270 1126082 : kad(1:4*md_max) = 0.0_dp
18271 72906 : kac(1:4*1) = 0.0_dp
18272 72906 : p_index = 0
18273 336200 : DO md = 1, md_max
18274 599494 : DO mc = 1, 1
18275 1316470 : DO mb = 1, 3
18276 789882 : ks_bd = 0.0_dp
18277 789882 : ks_bc = 0.0_dp
18278 789882 : p_bd = pbd((md - 1)*3 + mb)
18279 789882 : p_bc = pbc((mc - 1)*3 + mb)
18280 3949410 : DO ma = 1, 4
18281 3159528 : p_index = p_index + 1
18282 3159528 : tmp = scale*prim(p_index)
18283 3159528 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18284 3159528 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18285 3159528 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18286 3949410 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18287 : END DO
18288 789882 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
18289 1053176 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
18290 : END DO
18291 : END DO
18292 : END DO
18293 72906 : END SUBROUTINE block_4_3_1
18294 : ! **************************************************************************************************
18295 : !> \brief ...
18296 : !> \param mc_max ...
18297 : !> \param md_max ...
18298 : !> \param kbd ...
18299 : !> \param kbc ...
18300 : !> \param kad ...
18301 : !> \param kac ...
18302 : !> \param pbd ...
18303 : !> \param pbc ...
18304 : !> \param pad ...
18305 : !> \param pac ...
18306 : !> \param prim ...
18307 : !> \param scale ...
18308 : ! **************************************************************************************************
18309 447620 : SUBROUTINE block_4_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18310 : INTEGER :: mc_max, md_max
18311 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(4*md_max), kac(4*mc_max), pbd(3*md_max), &
18312 : pbc(3*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*3*mc_max*md_max), scale
18313 :
18314 : INTEGER :: ma, mb, mc, md, p_index
18315 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18316 :
18317 3853037 : kbd(1:3*md_max) = 0.0_dp
18318 6027365 : kbc(1:3*mc_max) = 0.0_dp
18319 4988176 : kad(1:4*md_max) = 0.0_dp
18320 7887280 : kac(1:4*mc_max) = 0.0_dp
18321 : p_index = 0
18322 1582759 : DO md = 1, md_max
18323 6336999 : DO mc = 1, mc_max
18324 20152099 : DO mb = 1, 3
18325 14262720 : ks_bd = 0.0_dp
18326 14262720 : ks_bc = 0.0_dp
18327 14262720 : p_bd = pbd((md - 1)*3 + mb)
18328 14262720 : p_bc = pbc((mc - 1)*3 + mb)
18329 71313600 : DO ma = 1, 4
18330 57050880 : p_index = p_index + 1
18331 57050880 : tmp = scale*prim(p_index)
18332 57050880 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18333 57050880 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18334 57050880 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18335 71313600 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18336 : END DO
18337 14262720 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
18338 19016960 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
18339 : END DO
18340 : END DO
18341 : END DO
18342 447620 : END SUBROUTINE block_4_3
18343 : ! **************************************************************************************************
18344 : !> \brief ...
18345 : !> \param kbd ...
18346 : !> \param kbc ...
18347 : !> \param kad ...
18348 : !> \param kac ...
18349 : !> \param pbd ...
18350 : !> \param pbc ...
18351 : !> \param pad ...
18352 : !> \param pac ...
18353 : !> \param prim ...
18354 : !> \param scale ...
18355 : ! **************************************************************************************************
18356 74559 : SUBROUTINE block_4_4_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18357 : REAL(KIND=dp) :: kbd(4*1), kbc(4*1), kad(4*1), kac(4*1), &
18358 : pbd(4*1), pbc(4*1), pad(4*1), &
18359 : pac(4*1), prim(4*4*1*1), scale
18360 :
18361 : INTEGER :: ma, mb, mc, md, p_index
18362 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18363 :
18364 74559 : kbd(1:4*1) = 0.0_dp
18365 74559 : kbc(1:4*1) = 0.0_dp
18366 74559 : kad(1:4*1) = 0.0_dp
18367 74559 : kac(1:4*1) = 0.0_dp
18368 74559 : p_index = 0
18369 149118 : DO md = 1, 1
18370 223677 : DO mc = 1, 1
18371 447354 : DO mb = 1, 4
18372 298236 : ks_bd = 0.0_dp
18373 298236 : ks_bc = 0.0_dp
18374 298236 : p_bd = pbd((md - 1)*4 + mb)
18375 298236 : p_bc = pbc((mc - 1)*4 + mb)
18376 1491180 : DO ma = 1, 4
18377 1192944 : p_index = p_index + 1
18378 1192944 : tmp = scale*prim(p_index)
18379 1192944 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18380 1192944 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18381 1192944 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18382 1491180 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18383 : END DO
18384 298236 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
18385 372795 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
18386 : END DO
18387 : END DO
18388 : END DO
18389 74559 : END SUBROUTINE block_4_4_1_1
18390 : ! **************************************************************************************************
18391 : !> \brief ...
18392 : !> \param md_max ...
18393 : !> \param kbd ...
18394 : !> \param kbc ...
18395 : !> \param kad ...
18396 : !> \param kac ...
18397 : !> \param pbd ...
18398 : !> \param pbc ...
18399 : !> \param pad ...
18400 : !> \param pac ...
18401 : !> \param prim ...
18402 : !> \param scale ...
18403 : ! **************************************************************************************************
18404 105755 : SUBROUTINE block_4_4_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18405 : INTEGER :: md_max
18406 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*1), kad(4*md_max), kac(4*1), pbd(4*md_max), pbc(4*1), &
18407 : pad(4*md_max), pac(4*1), prim(4*4*1*md_max), scale
18408 :
18409 : INTEGER :: ma, mb, mc, md, p_index
18410 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18411 :
18412 1786423 : kbd(1:4*md_max) = 0.0_dp
18413 105755 : kbc(1:4*1) = 0.0_dp
18414 1786423 : kad(1:4*md_max) = 0.0_dp
18415 105755 : kac(1:4*1) = 0.0_dp
18416 105755 : p_index = 0
18417 525922 : DO md = 1, md_max
18418 946089 : DO mc = 1, 1
18419 2521002 : DO mb = 1, 4
18420 1680668 : ks_bd = 0.0_dp
18421 1680668 : ks_bc = 0.0_dp
18422 1680668 : p_bd = pbd((md - 1)*4 + mb)
18423 1680668 : p_bc = pbc((mc - 1)*4 + mb)
18424 8403340 : DO ma = 1, 4
18425 6722672 : p_index = p_index + 1
18426 6722672 : tmp = scale*prim(p_index)
18427 6722672 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18428 6722672 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18429 6722672 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18430 8403340 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18431 : END DO
18432 1680668 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
18433 2100835 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
18434 : END DO
18435 : END DO
18436 : END DO
18437 105755 : END SUBROUTINE block_4_4_1
18438 : ! **************************************************************************************************
18439 : !> \brief ...
18440 : !> \param mc_max ...
18441 : !> \param md_max ...
18442 : !> \param kbd ...
18443 : !> \param kbc ...
18444 : !> \param kad ...
18445 : !> \param kac ...
18446 : !> \param pbd ...
18447 : !> \param pbc ...
18448 : !> \param pad ...
18449 : !> \param pac ...
18450 : !> \param prim ...
18451 : !> \param scale ...
18452 : ! **************************************************************************************************
18453 517446 : SUBROUTINE block_4_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18454 : INTEGER :: mc_max, md_max
18455 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(4*md_max), kac(4*mc_max), pbd(4*md_max), &
18456 : pbc(4*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*4*mc_max*md_max), scale
18457 :
18458 : INTEGER :: ma, mb, mc, md, p_index
18459 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18460 :
18461 7724194 : kbd(1:4*md_max) = 0.0_dp
18462 9137282 : kbc(1:4*mc_max) = 0.0_dp
18463 7724194 : kad(1:4*md_max) = 0.0_dp
18464 9137282 : kac(1:4*mc_max) = 0.0_dp
18465 : p_index = 0
18466 2319133 : DO md = 1, md_max
18467 9894991 : DO mc = 1, mc_max
18468 39680977 : DO mb = 1, 4
18469 30303432 : ks_bd = 0.0_dp
18470 30303432 : ks_bc = 0.0_dp
18471 30303432 : p_bd = pbd((md - 1)*4 + mb)
18472 30303432 : p_bc = pbc((mc - 1)*4 + mb)
18473 151517160 : DO ma = 1, 4
18474 121213728 : p_index = p_index + 1
18475 121213728 : tmp = scale*prim(p_index)
18476 121213728 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18477 121213728 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18478 121213728 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18479 151517160 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18480 : END DO
18481 30303432 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
18482 37879290 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
18483 : END DO
18484 : END DO
18485 : END DO
18486 517446 : END SUBROUTINE block_4_4
18487 : ! **************************************************************************************************
18488 : !> \brief ...
18489 : !> \param mc_max ...
18490 : !> \param md_max ...
18491 : !> \param kbd ...
18492 : !> \param kbc ...
18493 : !> \param kad ...
18494 : !> \param kac ...
18495 : !> \param pbd ...
18496 : !> \param pbc ...
18497 : !> \param pad ...
18498 : !> \param pac ...
18499 : !> \param prim ...
18500 : !> \param scale ...
18501 : ! **************************************************************************************************
18502 233545 : SUBROUTINE block_4_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18503 : INTEGER :: mc_max, md_max
18504 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(4*md_max), kac(4*mc_max), pbd(5*md_max), &
18505 : pbc(5*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*5*mc_max*md_max), scale
18506 :
18507 : INTEGER :: ma, mb, mc, md, p_index
18508 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18509 :
18510 4205735 : kbd(1:5*md_max) = 0.0_dp
18511 4320350 : kbc(1:5*mc_max) = 0.0_dp
18512 3411297 : kad(1:4*md_max) = 0.0_dp
18513 3502989 : kac(1:4*mc_max) = 0.0_dp
18514 : p_index = 0
18515 1027983 : DO md = 1, md_max
18516 3979487 : DO mc = 1, mc_max
18517 18503462 : DO mb = 1, 5
18518 14757520 : ks_bd = 0.0_dp
18519 14757520 : ks_bc = 0.0_dp
18520 14757520 : p_bd = pbd((md - 1)*5 + mb)
18521 14757520 : p_bc = pbc((mc - 1)*5 + mb)
18522 73787600 : DO ma = 1, 4
18523 59030080 : p_index = p_index + 1
18524 59030080 : tmp = scale*prim(p_index)
18525 59030080 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18526 59030080 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18527 59030080 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18528 73787600 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18529 : END DO
18530 14757520 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
18531 17709024 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
18532 : END DO
18533 : END DO
18534 : END DO
18535 233545 : END SUBROUTINE block_4_5
18536 : ! **************************************************************************************************
18537 : !> \brief ...
18538 : !> \param mc_max ...
18539 : !> \param md_max ...
18540 : !> \param kbd ...
18541 : !> \param kbc ...
18542 : !> \param kad ...
18543 : !> \param kac ...
18544 : !> \param pbd ...
18545 : !> \param pbc ...
18546 : !> \param pad ...
18547 : !> \param pac ...
18548 : !> \param prim ...
18549 : !> \param scale ...
18550 : ! **************************************************************************************************
18551 234 : SUBROUTINE block_4_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18552 : INTEGER :: mc_max, md_max
18553 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(4*md_max), kac(4*mc_max), pbd(6*md_max), &
18554 : pbc(6*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*6*mc_max*md_max), scale
18555 :
18556 : INTEGER :: ma, mb, mc, md, p_index
18557 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18558 :
18559 6216 : kbd(1:6*md_max) = 0.0_dp
18560 4134 : kbc(1:6*mc_max) = 0.0_dp
18561 4222 : kad(1:4*md_max) = 0.0_dp
18562 2834 : kac(1:4*mc_max) = 0.0_dp
18563 : p_index = 0
18564 1231 : DO md = 1, md_max
18565 4045 : DO mc = 1, mc_max
18566 20695 : DO mb = 1, 6
18567 16884 : ks_bd = 0.0_dp
18568 16884 : ks_bc = 0.0_dp
18569 16884 : p_bd = pbd((md - 1)*6 + mb)
18570 16884 : p_bc = pbc((mc - 1)*6 + mb)
18571 84420 : DO ma = 1, 4
18572 67536 : p_index = p_index + 1
18573 67536 : tmp = scale*prim(p_index)
18574 67536 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18575 67536 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18576 67536 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18577 84420 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18578 : END DO
18579 16884 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
18580 19698 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
18581 : END DO
18582 : END DO
18583 : END DO
18584 234 : END SUBROUTINE block_4_6
18585 : ! **************************************************************************************************
18586 : !> \brief ...
18587 : !> \param mc_max ...
18588 : !> \param md_max ...
18589 : !> \param kbd ...
18590 : !> \param kbc ...
18591 : !> \param kad ...
18592 : !> \param kac ...
18593 : !> \param pbd ...
18594 : !> \param pbc ...
18595 : !> \param pad ...
18596 : !> \param pac ...
18597 : !> \param prim ...
18598 : !> \param scale ...
18599 : ! **************************************************************************************************
18600 8056 : SUBROUTINE block_4_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18601 : INTEGER :: mc_max, md_max
18602 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(4*md_max), kac(4*mc_max), pbd(7*md_max), &
18603 : pbc(7*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*7*mc_max*md_max), scale
18604 :
18605 : INTEGER :: ma, mb, mc, md, p_index
18606 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18607 :
18608 253406 : kbd(1:7*md_max) = 0.0_dp
18609 252356 : kbc(1:7*mc_max) = 0.0_dp
18610 148256 : kad(1:4*md_max) = 0.0_dp
18611 147656 : kac(1:4*mc_max) = 0.0_dp
18612 : p_index = 0
18613 43106 : DO md = 1, md_max
18614 194945 : DO mc = 1, mc_max
18615 1249762 : DO mb = 1, 7
18616 1062873 : ks_bd = 0.0_dp
18617 1062873 : ks_bc = 0.0_dp
18618 1062873 : p_bd = pbd((md - 1)*7 + mb)
18619 1062873 : p_bc = pbc((mc - 1)*7 + mb)
18620 5314365 : DO ma = 1, 4
18621 4251492 : p_index = p_index + 1
18622 4251492 : tmp = scale*prim(p_index)
18623 4251492 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18624 4251492 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18625 4251492 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18626 5314365 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18627 : END DO
18628 1062873 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
18629 1214712 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
18630 : END DO
18631 : END DO
18632 : END DO
18633 8056 : END SUBROUTINE block_4_7
18634 : ! **************************************************************************************************
18635 : !> \brief ...
18636 : !> \param mc_max ...
18637 : !> \param md_max ...
18638 : !> \param kbd ...
18639 : !> \param kbc ...
18640 : !> \param kad ...
18641 : !> \param kac ...
18642 : !> \param pbd ...
18643 : !> \param pbc ...
18644 : !> \param pad ...
18645 : !> \param pac ...
18646 : !> \param prim ...
18647 : !> \param scale ...
18648 : ! **************************************************************************************************
18649 93 : SUBROUTINE block_4_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18650 : INTEGER :: mc_max, md_max
18651 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(4*md_max), kac(4*mc_max), pbd(9*md_max), &
18652 : pbc(9*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*9*mc_max*md_max), scale
18653 :
18654 : INTEGER :: ma, mb, mc, md, p_index
18655 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18656 :
18657 5169 : kbd(1:9*md_max) = 0.0_dp
18658 2460 : kbc(1:9*mc_max) = 0.0_dp
18659 2349 : kad(1:4*md_max) = 0.0_dp
18660 1145 : kac(1:4*mc_max) = 0.0_dp
18661 : p_index = 0
18662 657 : DO md = 1, md_max
18663 2295 : DO mc = 1, mc_max
18664 16944 : DO mb = 1, 9
18665 14742 : ks_bd = 0.0_dp
18666 14742 : ks_bc = 0.0_dp
18667 14742 : p_bd = pbd((md - 1)*9 + mb)
18668 14742 : p_bc = pbc((mc - 1)*9 + mb)
18669 73710 : DO ma = 1, 4
18670 58968 : p_index = p_index + 1
18671 58968 : tmp = scale*prim(p_index)
18672 58968 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18673 58968 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18674 58968 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18675 73710 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18676 : END DO
18677 14742 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
18678 16380 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
18679 : END DO
18680 : END DO
18681 : END DO
18682 93 : END SUBROUTINE block_4_9
18683 : ! **************************************************************************************************
18684 : !> \brief ...
18685 : !> \param mc_max ...
18686 : !> \param md_max ...
18687 : !> \param kbd ...
18688 : !> \param kbc ...
18689 : !> \param kad ...
18690 : !> \param kac ...
18691 : !> \param pbd ...
18692 : !> \param pbc ...
18693 : !> \param pad ...
18694 : !> \param pac ...
18695 : !> \param prim ...
18696 : !> \param scale ...
18697 : ! **************************************************************************************************
18698 118 : SUBROUTINE block_4_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18699 : INTEGER :: mc_max, md_max
18700 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(4*md_max), kac(4*mc_max), &
18701 : pbd(10*md_max), pbc(10*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*10*mc_max*md_max), &
18702 : scale
18703 :
18704 : INTEGER :: ma, mb, mc, md, p_index
18705 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18706 :
18707 7698 : kbd(1:10*md_max) = 0.0_dp
18708 3638 : kbc(1:10*mc_max) = 0.0_dp
18709 3150 : kad(1:4*md_max) = 0.0_dp
18710 1526 : kac(1:4*mc_max) = 0.0_dp
18711 : p_index = 0
18712 876 : DO md = 1, md_max
18713 3151 : DO mc = 1, mc_max
18714 25783 : DO mb = 1, 10
18715 22750 : ks_bd = 0.0_dp
18716 22750 : ks_bc = 0.0_dp
18717 22750 : p_bd = pbd((md - 1)*10 + mb)
18718 22750 : p_bc = pbc((mc - 1)*10 + mb)
18719 113750 : DO ma = 1, 4
18720 91000 : p_index = p_index + 1
18721 91000 : tmp = scale*prim(p_index)
18722 91000 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18723 91000 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18724 91000 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18725 113750 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18726 : END DO
18727 22750 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
18728 25025 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
18729 : END DO
18730 : END DO
18731 : END DO
18732 118 : END SUBROUTINE block_4_10
18733 : ! **************************************************************************************************
18734 : !> \brief ...
18735 : !> \param mc_max ...
18736 : !> \param md_max ...
18737 : !> \param kbd ...
18738 : !> \param kbc ...
18739 : !> \param kad ...
18740 : !> \param kac ...
18741 : !> \param pbd ...
18742 : !> \param pbc ...
18743 : !> \param pad ...
18744 : !> \param pac ...
18745 : !> \param prim ...
18746 : !> \param scale ...
18747 : ! **************************************************************************************************
18748 151 : SUBROUTINE block_4_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18749 : INTEGER :: mc_max, md_max
18750 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(4*md_max), kac(4*mc_max), &
18751 : pbd(11*md_max), pbc(11*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*11*mc_max*md_max), &
18752 : scale
18753 :
18754 : INTEGER :: ma, mb, mc, md, p_index
18755 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18756 :
18757 11811 : kbd(1:11*md_max) = 0.0_dp
18758 5651 : kbc(1:11*mc_max) = 0.0_dp
18759 4391 : kad(1:4*md_max) = 0.0_dp
18760 2151 : kac(1:4*mc_max) = 0.0_dp
18761 : p_index = 0
18762 1211 : DO md = 1, md_max
18763 4914 : DO mc = 1, mc_max
18764 45496 : DO mb = 1, 11
18765 40733 : ks_bd = 0.0_dp
18766 40733 : ks_bc = 0.0_dp
18767 40733 : p_bd = pbd((md - 1)*11 + mb)
18768 40733 : p_bc = pbc((mc - 1)*11 + mb)
18769 203665 : DO ma = 1, 4
18770 162932 : p_index = p_index + 1
18771 162932 : tmp = scale*prim(p_index)
18772 162932 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18773 162932 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18774 162932 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18775 203665 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18776 : END DO
18777 40733 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
18778 44436 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
18779 : END DO
18780 : END DO
18781 : END DO
18782 151 : END SUBROUTINE block_4_11
18783 : ! **************************************************************************************************
18784 : !> \brief ...
18785 : !> \param mc_max ...
18786 : !> \param md_max ...
18787 : !> \param kbd ...
18788 : !> \param kbc ...
18789 : !> \param kad ...
18790 : !> \param kac ...
18791 : !> \param pbd ...
18792 : !> \param pbc ...
18793 : !> \param pad ...
18794 : !> \param pac ...
18795 : !> \param prim ...
18796 : !> \param scale ...
18797 : ! **************************************************************************************************
18798 132 : SUBROUTINE block_4_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18799 : INTEGER :: mc_max, md_max
18800 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(4*md_max), kac(4*mc_max), &
18801 : pbd(15*md_max), pbc(15*mc_max), pad(4*md_max), pac(4*mc_max), prim(4*15*mc_max*md_max), &
18802 : scale
18803 :
18804 : INTEGER :: ma, mb, mc, md, p_index
18805 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18806 :
18807 13947 : kbd(1:15*md_max) = 0.0_dp
18808 6282 : kbc(1:15*mc_max) = 0.0_dp
18809 3816 : kad(1:4*md_max) = 0.0_dp
18810 1772 : kac(1:4*mc_max) = 0.0_dp
18811 : p_index = 0
18812 1053 : DO md = 1, md_max
18813 4070 : DO mc = 1, mc_max
18814 49193 : DO mb = 1, 15
18815 45255 : ks_bd = 0.0_dp
18816 45255 : ks_bc = 0.0_dp
18817 45255 : p_bd = pbd((md - 1)*15 + mb)
18818 45255 : p_bc = pbc((mc - 1)*15 + mb)
18819 226275 : DO ma = 1, 4
18820 181020 : p_index = p_index + 1
18821 181020 : tmp = scale*prim(p_index)
18822 181020 : ks_bc = ks_bc + tmp*pad((md - 1)*4 + ma)
18823 181020 : ks_bd = ks_bd + tmp*pac((mc - 1)*4 + ma)
18824 181020 : kad((md - 1)*4 + ma) = kad((md - 1)*4 + ma) - tmp*p_bc
18825 226275 : kac((mc - 1)*4 + ma) = kac((mc - 1)*4 + ma) - tmp*p_bd
18826 : END DO
18827 45255 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
18828 48272 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
18829 : END DO
18830 : END DO
18831 : END DO
18832 132 : END SUBROUTINE block_4_15
18833 : ! **************************************************************************************************
18834 : !> \brief ...
18835 : !> \param kbd ...
18836 : !> \param kbc ...
18837 : !> \param kad ...
18838 : !> \param kac ...
18839 : !> \param pbd ...
18840 : !> \param pbc ...
18841 : !> \param pad ...
18842 : !> \param pac ...
18843 : !> \param prim ...
18844 : !> \param scale ...
18845 : ! **************************************************************************************************
18846 243939 : SUBROUTINE block_5_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18847 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(5*1), kac(5*1), &
18848 : pbd(1*1), pbc(1*1), pad(5*1), &
18849 : pac(5*1), prim(5*1*1*1), scale
18850 :
18851 : INTEGER :: ma, mb, mc, md, p_index
18852 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18853 :
18854 243939 : kbd(1:1*1) = 0.0_dp
18855 243939 : kbc(1:1*1) = 0.0_dp
18856 243939 : kad(1:5*1) = 0.0_dp
18857 243939 : kac(1:5*1) = 0.0_dp
18858 243939 : p_index = 0
18859 487878 : DO md = 1, 1
18860 731817 : DO mc = 1, 1
18861 731817 : DO mb = 1, 1
18862 243939 : ks_bd = 0.0_dp
18863 243939 : ks_bc = 0.0_dp
18864 243939 : p_bd = pbd((md - 1)*1 + mb)
18865 243939 : p_bc = pbc((mc - 1)*1 + mb)
18866 1463634 : DO ma = 1, 5
18867 1219695 : p_index = p_index + 1
18868 1219695 : tmp = scale*prim(p_index)
18869 1219695 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
18870 1219695 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
18871 1219695 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
18872 1463634 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
18873 : END DO
18874 243939 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
18875 487878 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
18876 : END DO
18877 : END DO
18878 : END DO
18879 243939 : END SUBROUTINE block_5_1_1_1
18880 : ! **************************************************************************************************
18881 : !> \brief ...
18882 : !> \param kbd ...
18883 : !> \param kbc ...
18884 : !> \param kad ...
18885 : !> \param kac ...
18886 : !> \param pbd ...
18887 : !> \param pbc ...
18888 : !> \param pad ...
18889 : !> \param pac ...
18890 : !> \param prim ...
18891 : !> \param scale ...
18892 : ! **************************************************************************************************
18893 4134 : SUBROUTINE block_5_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18894 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(5*2), kac(5*1), &
18895 : pbd(1*2), pbc(1*1), pad(5*2), &
18896 : pac(5*1), prim(5*1*1*2), scale
18897 :
18898 : INTEGER :: ma, mb, mc, md, p_index
18899 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18900 :
18901 4134 : kbd(1:1*2) = 0.0_dp
18902 4134 : kbc(1:1*1) = 0.0_dp
18903 4134 : kad(1:5*2) = 0.0_dp
18904 4134 : kac(1:5*1) = 0.0_dp
18905 4134 : p_index = 0
18906 12402 : DO md = 1, 2
18907 20670 : DO mc = 1, 1
18908 24804 : DO mb = 1, 1
18909 8268 : ks_bd = 0.0_dp
18910 8268 : ks_bc = 0.0_dp
18911 8268 : p_bd = pbd((md - 1)*1 + mb)
18912 8268 : p_bc = pbc((mc - 1)*1 + mb)
18913 49608 : DO ma = 1, 5
18914 41340 : p_index = p_index + 1
18915 41340 : tmp = scale*prim(p_index)
18916 41340 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
18917 41340 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
18918 41340 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
18919 49608 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
18920 : END DO
18921 8268 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
18922 16536 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
18923 : END DO
18924 : END DO
18925 : END DO
18926 4134 : END SUBROUTINE block_5_1_1_2
18927 : ! **************************************************************************************************
18928 : !> \brief ...
18929 : !> \param kbd ...
18930 : !> \param kbc ...
18931 : !> \param kad ...
18932 : !> \param kac ...
18933 : !> \param pbd ...
18934 : !> \param pbc ...
18935 : !> \param pad ...
18936 : !> \param pac ...
18937 : !> \param prim ...
18938 : !> \param scale ...
18939 : ! **************************************************************************************************
18940 125691 : SUBROUTINE block_5_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18941 : REAL(KIND=dp) :: kbd(1*3), kbc(1*1), kad(5*3), kac(5*1), &
18942 : pbd(1*3), pbc(1*1), pad(5*3), &
18943 : pac(5*1), prim(5*1*1*3), scale
18944 :
18945 : INTEGER :: ma, mb, mc, md, p_index
18946 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18947 :
18948 125691 : kbd(1:1*3) = 0.0_dp
18949 125691 : kbc(1:1*1) = 0.0_dp
18950 125691 : kad(1:5*3) = 0.0_dp
18951 125691 : kac(1:5*1) = 0.0_dp
18952 125691 : p_index = 0
18953 502764 : DO md = 1, 3
18954 879837 : DO mc = 1, 1
18955 1131219 : DO mb = 1, 1
18956 377073 : ks_bd = 0.0_dp
18957 377073 : ks_bc = 0.0_dp
18958 377073 : p_bd = pbd((md - 1)*1 + mb)
18959 377073 : p_bc = pbc((mc - 1)*1 + mb)
18960 2262438 : DO ma = 1, 5
18961 1885365 : p_index = p_index + 1
18962 1885365 : tmp = scale*prim(p_index)
18963 1885365 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
18964 1885365 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
18965 1885365 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
18966 2262438 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
18967 : END DO
18968 377073 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
18969 754146 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
18970 : END DO
18971 : END DO
18972 : END DO
18973 125691 : END SUBROUTINE block_5_1_1_3
18974 : ! **************************************************************************************************
18975 : !> \brief ...
18976 : !> \param md_max ...
18977 : !> \param kbd ...
18978 : !> \param kbc ...
18979 : !> \param kad ...
18980 : !> \param kac ...
18981 : !> \param pbd ...
18982 : !> \param pbc ...
18983 : !> \param pad ...
18984 : !> \param pac ...
18985 : !> \param prim ...
18986 : !> \param scale ...
18987 : ! **************************************************************************************************
18988 78560 : SUBROUTINE block_5_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
18989 : INTEGER :: md_max
18990 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(5*md_max), kac(5*1), pbd(1*md_max), pbc(1*1), &
18991 : pad(5*md_max), pac(5*1), prim(5*1*1*md_max), scale
18992 :
18993 : INTEGER :: ma, mb, mc, md, p_index
18994 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
18995 :
18996 454009 : kbd(1:1*md_max) = 0.0_dp
18997 78560 : kbc(1:1*1) = 0.0_dp
18998 1955805 : kad(1:5*md_max) = 0.0_dp
18999 78560 : kac(1:5*1) = 0.0_dp
19000 78560 : p_index = 0
19001 454009 : DO md = 1, md_max
19002 829458 : DO mc = 1, 1
19003 1126347 : DO mb = 1, 1
19004 375449 : ks_bd = 0.0_dp
19005 375449 : ks_bc = 0.0_dp
19006 375449 : p_bd = pbd((md - 1)*1 + mb)
19007 375449 : p_bc = pbc((mc - 1)*1 + mb)
19008 2252694 : DO ma = 1, 5
19009 1877245 : p_index = p_index + 1
19010 1877245 : tmp = scale*prim(p_index)
19011 1877245 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19012 1877245 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19013 1877245 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19014 2252694 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19015 : END DO
19016 375449 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
19017 750898 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
19018 : END DO
19019 : END DO
19020 : END DO
19021 78560 : END SUBROUTINE block_5_1_1
19022 : ! **************************************************************************************************
19023 : !> \brief ...
19024 : !> \param kbd ...
19025 : !> \param kbc ...
19026 : !> \param kad ...
19027 : !> \param kac ...
19028 : !> \param pbd ...
19029 : !> \param pbc ...
19030 : !> \param pad ...
19031 : !> \param pac ...
19032 : !> \param prim ...
19033 : !> \param scale ...
19034 : ! **************************************************************************************************
19035 10288 : SUBROUTINE block_5_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19036 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(5*1), kac(5*2), &
19037 : pbd(1*1), pbc(1*2), pad(5*1), &
19038 : pac(5*2), prim(5*1*2*1), scale
19039 :
19040 : INTEGER :: ma, mb, mc, md, p_index
19041 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19042 :
19043 10288 : kbd(1:1*1) = 0.0_dp
19044 10288 : kbc(1:1*2) = 0.0_dp
19045 10288 : kad(1:5*1) = 0.0_dp
19046 10288 : kac(1:5*2) = 0.0_dp
19047 10288 : p_index = 0
19048 20576 : DO md = 1, 1
19049 41152 : DO mc = 1, 2
19050 51440 : DO mb = 1, 1
19051 20576 : ks_bd = 0.0_dp
19052 20576 : ks_bc = 0.0_dp
19053 20576 : p_bd = pbd((md - 1)*1 + mb)
19054 20576 : p_bc = pbc((mc - 1)*1 + mb)
19055 123456 : DO ma = 1, 5
19056 102880 : p_index = p_index + 1
19057 102880 : tmp = scale*prim(p_index)
19058 102880 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19059 102880 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19060 102880 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19061 123456 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19062 : END DO
19063 20576 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
19064 41152 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
19065 : END DO
19066 : END DO
19067 : END DO
19068 10288 : END SUBROUTINE block_5_1_2_1
19069 : ! **************************************************************************************************
19070 : !> \brief ...
19071 : !> \param md_max ...
19072 : !> \param kbd ...
19073 : !> \param kbc ...
19074 : !> \param kad ...
19075 : !> \param kac ...
19076 : !> \param pbd ...
19077 : !> \param pbc ...
19078 : !> \param pad ...
19079 : !> \param pac ...
19080 : !> \param prim ...
19081 : !> \param scale ...
19082 : ! **************************************************************************************************
19083 17034 : SUBROUTINE block_5_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19084 : INTEGER :: md_max
19085 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(5*md_max), kac(5*2), pbd(1*md_max), pbc(1*2), &
19086 : pad(5*md_max), pac(5*2), prim(5*1*2*md_max), scale
19087 :
19088 : INTEGER :: ma, mb, mc, md, p_index
19089 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19090 :
19091 77761 : kbd(1:1*md_max) = 0.0_dp
19092 17034 : kbc(1:1*2) = 0.0_dp
19093 320669 : kad(1:5*md_max) = 0.0_dp
19094 17034 : kac(1:5*2) = 0.0_dp
19095 17034 : p_index = 0
19096 77761 : DO md = 1, md_max
19097 199215 : DO mc = 1, 2
19098 303635 : DO mb = 1, 1
19099 121454 : ks_bd = 0.0_dp
19100 121454 : ks_bc = 0.0_dp
19101 121454 : p_bd = pbd((md - 1)*1 + mb)
19102 121454 : p_bc = pbc((mc - 1)*1 + mb)
19103 728724 : DO ma = 1, 5
19104 607270 : p_index = p_index + 1
19105 607270 : tmp = scale*prim(p_index)
19106 607270 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19107 607270 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19108 607270 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19109 728724 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19110 : END DO
19111 121454 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
19112 242908 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
19113 : END DO
19114 : END DO
19115 : END DO
19116 17034 : END SUBROUTINE block_5_1_2
19117 : ! **************************************************************************************************
19118 : !> \brief ...
19119 : !> \param kbd ...
19120 : !> \param kbc ...
19121 : !> \param kad ...
19122 : !> \param kac ...
19123 : !> \param pbd ...
19124 : !> \param pbc ...
19125 : !> \param pad ...
19126 : !> \param pac ...
19127 : !> \param prim ...
19128 : !> \param scale ...
19129 : ! **************************************************************************************************
19130 154159 : SUBROUTINE block_5_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19131 : REAL(KIND=dp) :: kbd(1*1), kbc(1*3), kad(5*1), kac(5*3), &
19132 : pbd(1*1), pbc(1*3), pad(5*1), &
19133 : pac(5*3), prim(5*1*3*1), scale
19134 :
19135 : INTEGER :: ma, mb, mc, md, p_index
19136 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19137 :
19138 154159 : kbd(1:1*1) = 0.0_dp
19139 154159 : kbc(1:1*3) = 0.0_dp
19140 154159 : kad(1:5*1) = 0.0_dp
19141 154159 : kac(1:5*3) = 0.0_dp
19142 154159 : p_index = 0
19143 308318 : DO md = 1, 1
19144 770795 : DO mc = 1, 3
19145 1079113 : DO mb = 1, 1
19146 462477 : ks_bd = 0.0_dp
19147 462477 : ks_bc = 0.0_dp
19148 462477 : p_bd = pbd((md - 1)*1 + mb)
19149 462477 : p_bc = pbc((mc - 1)*1 + mb)
19150 2774862 : DO ma = 1, 5
19151 2312385 : p_index = p_index + 1
19152 2312385 : tmp = scale*prim(p_index)
19153 2312385 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19154 2312385 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19155 2312385 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19156 2774862 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19157 : END DO
19158 462477 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
19159 924954 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
19160 : END DO
19161 : END DO
19162 : END DO
19163 154159 : END SUBROUTINE block_5_1_3_1
19164 : ! **************************************************************************************************
19165 : !> \brief ...
19166 : !> \param md_max ...
19167 : !> \param kbd ...
19168 : !> \param kbc ...
19169 : !> \param kad ...
19170 : !> \param kac ...
19171 : !> \param pbd ...
19172 : !> \param pbc ...
19173 : !> \param pad ...
19174 : !> \param pac ...
19175 : !> \param prim ...
19176 : !> \param scale ...
19177 : ! **************************************************************************************************
19178 152337 : SUBROUTINE block_5_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19179 : INTEGER :: md_max
19180 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*3), kad(5*md_max), kac(5*3), pbd(1*md_max), pbc(1*3), &
19181 : pad(5*md_max), pac(5*3), prim(5*1*3*md_max), scale
19182 :
19183 : INTEGER :: ma, mb, mc, md, p_index
19184 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19185 :
19186 704368 : kbd(1:1*md_max) = 0.0_dp
19187 152337 : kbc(1:1*3) = 0.0_dp
19188 2912492 : kad(1:5*md_max) = 0.0_dp
19189 152337 : kac(1:5*3) = 0.0_dp
19190 152337 : p_index = 0
19191 704368 : DO md = 1, md_max
19192 2360461 : DO mc = 1, 3
19193 3864217 : DO mb = 1, 1
19194 1656093 : ks_bd = 0.0_dp
19195 1656093 : ks_bc = 0.0_dp
19196 1656093 : p_bd = pbd((md - 1)*1 + mb)
19197 1656093 : p_bc = pbc((mc - 1)*1 + mb)
19198 9936558 : DO ma = 1, 5
19199 8280465 : p_index = p_index + 1
19200 8280465 : tmp = scale*prim(p_index)
19201 8280465 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19202 8280465 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19203 8280465 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19204 9936558 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19205 : END DO
19206 1656093 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
19207 3312186 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
19208 : END DO
19209 : END DO
19210 : END DO
19211 152337 : END SUBROUTINE block_5_1_3
19212 : ! **************************************************************************************************
19213 : !> \brief ...
19214 : !> \param mc_max ...
19215 : !> \param md_max ...
19216 : !> \param kbd ...
19217 : !> \param kbc ...
19218 : !> \param kad ...
19219 : !> \param kac ...
19220 : !> \param pbd ...
19221 : !> \param pbc ...
19222 : !> \param pad ...
19223 : !> \param pac ...
19224 : !> \param prim ...
19225 : !> \param scale ...
19226 : ! **************************************************************************************************
19227 585641 : SUBROUTINE block_5_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19228 : INTEGER :: mc_max, md_max
19229 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(5*md_max), kac(5*mc_max), pbd(1*md_max), &
19230 : pbc(1*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*1*mc_max*md_max), scale
19231 :
19232 : INTEGER :: ma, mb, mc, md, p_index
19233 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19234 :
19235 2116702 : kbd(1:1*md_max) = 0.0_dp
19236 3274415 : kbc(1:1*mc_max) = 0.0_dp
19237 8240946 : kad(1:5*md_max) = 0.0_dp
19238 14029511 : kac(1:5*mc_max) = 0.0_dp
19239 : p_index = 0
19240 2116702 : DO md = 1, md_max
19241 9153455 : DO mc = 1, mc_max
19242 15604567 : DO mb = 1, 1
19243 7036753 : ks_bd = 0.0_dp
19244 7036753 : ks_bc = 0.0_dp
19245 7036753 : p_bd = pbd((md - 1)*1 + mb)
19246 7036753 : p_bc = pbc((mc - 1)*1 + mb)
19247 42220518 : DO ma = 1, 5
19248 35183765 : p_index = p_index + 1
19249 35183765 : tmp = scale*prim(p_index)
19250 35183765 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19251 35183765 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19252 35183765 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19253 42220518 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19254 : END DO
19255 7036753 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
19256 14073506 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
19257 : END DO
19258 : END DO
19259 : END DO
19260 585641 : END SUBROUTINE block_5_1
19261 : ! **************************************************************************************************
19262 : !> \brief ...
19263 : !> \param kbd ...
19264 : !> \param kbc ...
19265 : !> \param kad ...
19266 : !> \param kac ...
19267 : !> \param pbd ...
19268 : !> \param pbc ...
19269 : !> \param pad ...
19270 : !> \param pac ...
19271 : !> \param prim ...
19272 : !> \param scale ...
19273 : ! **************************************************************************************************
19274 1724 : SUBROUTINE block_5_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19275 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(5*1), kac(5*1), &
19276 : pbd(2*1), pbc(2*1), pad(5*1), &
19277 : pac(5*1), prim(5*2*1*1), scale
19278 :
19279 : INTEGER :: ma, mb, mc, md, p_index
19280 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19281 :
19282 1724 : kbd(1:2*1) = 0.0_dp
19283 1724 : kbc(1:2*1) = 0.0_dp
19284 1724 : kad(1:5*1) = 0.0_dp
19285 1724 : kac(1:5*1) = 0.0_dp
19286 1724 : p_index = 0
19287 3448 : DO md = 1, 1
19288 5172 : DO mc = 1, 1
19289 6896 : DO mb = 1, 2
19290 3448 : ks_bd = 0.0_dp
19291 3448 : ks_bc = 0.0_dp
19292 3448 : p_bd = pbd((md - 1)*2 + mb)
19293 3448 : p_bc = pbc((mc - 1)*2 + mb)
19294 20688 : DO ma = 1, 5
19295 17240 : p_index = p_index + 1
19296 17240 : tmp = scale*prim(p_index)
19297 17240 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19298 17240 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19299 17240 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19300 20688 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19301 : END DO
19302 3448 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
19303 5172 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
19304 : END DO
19305 : END DO
19306 : END DO
19307 1724 : END SUBROUTINE block_5_2_1_1
19308 : ! **************************************************************************************************
19309 : !> \brief ...
19310 : !> \param md_max ...
19311 : !> \param kbd ...
19312 : !> \param kbc ...
19313 : !> \param kad ...
19314 : !> \param kac ...
19315 : !> \param pbd ...
19316 : !> \param pbc ...
19317 : !> \param pad ...
19318 : !> \param pac ...
19319 : !> \param prim ...
19320 : !> \param scale ...
19321 : ! **************************************************************************************************
19322 5531 : SUBROUTINE block_5_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19323 : INTEGER :: md_max
19324 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(5*md_max), kac(5*1), pbd(2*md_max), pbc(2*1), &
19325 : pad(5*md_max), pac(5*1), prim(5*2*1*md_max), scale
19326 :
19327 : INTEGER :: ma, mb, mc, md, p_index
19328 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19329 :
19330 50247 : kbd(1:2*md_max) = 0.0_dp
19331 5531 : kbc(1:2*1) = 0.0_dp
19332 117321 : kad(1:5*md_max) = 0.0_dp
19333 5531 : kac(1:5*1) = 0.0_dp
19334 5531 : p_index = 0
19335 27889 : DO md = 1, md_max
19336 50247 : DO mc = 1, 1
19337 89432 : DO mb = 1, 2
19338 44716 : ks_bd = 0.0_dp
19339 44716 : ks_bc = 0.0_dp
19340 44716 : p_bd = pbd((md - 1)*2 + mb)
19341 44716 : p_bc = pbc((mc - 1)*2 + mb)
19342 268296 : DO ma = 1, 5
19343 223580 : p_index = p_index + 1
19344 223580 : tmp = scale*prim(p_index)
19345 223580 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19346 223580 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19347 223580 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19348 268296 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19349 : END DO
19350 44716 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
19351 67074 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
19352 : END DO
19353 : END DO
19354 : END DO
19355 5531 : END SUBROUTINE block_5_2_1
19356 : ! **************************************************************************************************
19357 : !> \brief ...
19358 : !> \param mc_max ...
19359 : !> \param md_max ...
19360 : !> \param kbd ...
19361 : !> \param kbc ...
19362 : !> \param kad ...
19363 : !> \param kac ...
19364 : !> \param pbd ...
19365 : !> \param pbc ...
19366 : !> \param pad ...
19367 : !> \param pac ...
19368 : !> \param prim ...
19369 : !> \param scale ...
19370 : ! **************************************************************************************************
19371 75714 : SUBROUTINE block_5_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19372 : INTEGER :: mc_max, md_max
19373 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(5*md_max), kac(5*mc_max), pbd(2*md_max), &
19374 : pbc(2*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*2*mc_max*md_max), scale
19375 :
19376 : INTEGER :: ma, mb, mc, md, p_index
19377 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19378 :
19379 678952 : kbd(1:2*md_max) = 0.0_dp
19380 750508 : kbc(1:2*mc_max) = 0.0_dp
19381 1583809 : kad(1:5*md_max) = 0.0_dp
19382 1762699 : kac(1:5*mc_max) = 0.0_dp
19383 : p_index = 0
19384 377333 : DO md = 1, md_max
19385 1771451 : DO mc = 1, mc_max
19386 4483973 : DO mb = 1, 2
19387 2788236 : ks_bd = 0.0_dp
19388 2788236 : ks_bc = 0.0_dp
19389 2788236 : p_bd = pbd((md - 1)*2 + mb)
19390 2788236 : p_bc = pbc((mc - 1)*2 + mb)
19391 16729416 : DO ma = 1, 5
19392 13941180 : p_index = p_index + 1
19393 13941180 : tmp = scale*prim(p_index)
19394 13941180 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19395 13941180 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19396 13941180 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19397 16729416 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19398 : END DO
19399 2788236 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
19400 4182354 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
19401 : END DO
19402 : END DO
19403 : END DO
19404 75714 : END SUBROUTINE block_5_2
19405 : ! **************************************************************************************************
19406 : !> \brief ...
19407 : !> \param kbd ...
19408 : !> \param kbc ...
19409 : !> \param kad ...
19410 : !> \param kac ...
19411 : !> \param pbd ...
19412 : !> \param pbc ...
19413 : !> \param pad ...
19414 : !> \param pac ...
19415 : !> \param prim ...
19416 : !> \param scale ...
19417 : ! **************************************************************************************************
19418 109846 : SUBROUTINE block_5_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19419 : REAL(KIND=dp) :: kbd(3*1), kbc(3*1), kad(5*1), kac(5*1), &
19420 : pbd(3*1), pbc(3*1), pad(5*1), &
19421 : pac(5*1), prim(5*3*1*1), scale
19422 :
19423 : INTEGER :: ma, mb, mc, md, p_index
19424 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19425 :
19426 109846 : kbd(1:3*1) = 0.0_dp
19427 109846 : kbc(1:3*1) = 0.0_dp
19428 109846 : kad(1:5*1) = 0.0_dp
19429 109846 : kac(1:5*1) = 0.0_dp
19430 109846 : p_index = 0
19431 219692 : DO md = 1, 1
19432 329538 : DO mc = 1, 1
19433 549230 : DO mb = 1, 3
19434 329538 : ks_bd = 0.0_dp
19435 329538 : ks_bc = 0.0_dp
19436 329538 : p_bd = pbd((md - 1)*3 + mb)
19437 329538 : p_bc = pbc((mc - 1)*3 + mb)
19438 1977228 : DO ma = 1, 5
19439 1647690 : p_index = p_index + 1
19440 1647690 : tmp = scale*prim(p_index)
19441 1647690 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19442 1647690 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19443 1647690 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19444 1977228 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19445 : END DO
19446 329538 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
19447 439384 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
19448 : END DO
19449 : END DO
19450 : END DO
19451 109846 : END SUBROUTINE block_5_3_1_1
19452 : ! **************************************************************************************************
19453 : !> \brief ...
19454 : !> \param md_max ...
19455 : !> \param kbd ...
19456 : !> \param kbc ...
19457 : !> \param kad ...
19458 : !> \param kac ...
19459 : !> \param pbd ...
19460 : !> \param pbc ...
19461 : !> \param pad ...
19462 : !> \param pac ...
19463 : !> \param prim ...
19464 : !> \param scale ...
19465 : ! **************************************************************************************************
19466 113971 : SUBROUTINE block_5_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19467 : INTEGER :: md_max
19468 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*1), kad(5*md_max), kac(5*1), pbd(3*md_max), pbc(3*1), &
19469 : pad(5*md_max), pac(5*1), prim(5*3*1*md_max), scale
19470 :
19471 : INTEGER :: ma, mb, mc, md, p_index
19472 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19473 :
19474 1369171 : kbd(1:3*md_max) = 0.0_dp
19475 113971 : kbc(1:3*1) = 0.0_dp
19476 2205971 : kad(1:5*md_max) = 0.0_dp
19477 113971 : kac(1:5*1) = 0.0_dp
19478 113971 : p_index = 0
19479 532371 : DO md = 1, md_max
19480 950771 : DO mc = 1, 1
19481 2092000 : DO mb = 1, 3
19482 1255200 : ks_bd = 0.0_dp
19483 1255200 : ks_bc = 0.0_dp
19484 1255200 : p_bd = pbd((md - 1)*3 + mb)
19485 1255200 : p_bc = pbc((mc - 1)*3 + mb)
19486 7531200 : DO ma = 1, 5
19487 6276000 : p_index = p_index + 1
19488 6276000 : tmp = scale*prim(p_index)
19489 6276000 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19490 6276000 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19491 6276000 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19492 7531200 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19493 : END DO
19494 1255200 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
19495 1673600 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
19496 : END DO
19497 : END DO
19498 : END DO
19499 113971 : END SUBROUTINE block_5_3_1
19500 : ! **************************************************************************************************
19501 : !> \brief ...
19502 : !> \param mc_max ...
19503 : !> \param md_max ...
19504 : !> \param kbd ...
19505 : !> \param kbc ...
19506 : !> \param kad ...
19507 : !> \param kac ...
19508 : !> \param pbd ...
19509 : !> \param pbc ...
19510 : !> \param pad ...
19511 : !> \param pac ...
19512 : !> \param prim ...
19513 : !> \param scale ...
19514 : ! **************************************************************************************************
19515 522097 : SUBROUTINE block_5_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19516 : INTEGER :: mc_max, md_max
19517 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(5*md_max), kac(5*mc_max), pbd(3*md_max), &
19518 : pbc(3*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*3*mc_max*md_max), scale
19519 :
19520 : INTEGER :: ma, mb, mc, md, p_index
19521 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19522 :
19523 4737628 : kbd(1:3*md_max) = 0.0_dp
19524 6785062 : kbc(1:3*mc_max) = 0.0_dp
19525 7547982 : kad(1:5*md_max) = 0.0_dp
19526 10960372 : kac(1:5*mc_max) = 0.0_dp
19527 : p_index = 0
19528 1927274 : DO md = 1, md_max
19529 7643736 : DO mc = 1, mc_max
19530 24271025 : DO mb = 1, 3
19531 17149386 : ks_bd = 0.0_dp
19532 17149386 : ks_bc = 0.0_dp
19533 17149386 : p_bd = pbd((md - 1)*3 + mb)
19534 17149386 : p_bc = pbc((mc - 1)*3 + mb)
19535 102896316 : DO ma = 1, 5
19536 85746930 : p_index = p_index + 1
19537 85746930 : tmp = scale*prim(p_index)
19538 85746930 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19539 85746930 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19540 85746930 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19541 102896316 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19542 : END DO
19543 17149386 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
19544 22865848 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
19545 : END DO
19546 : END DO
19547 : END DO
19548 522097 : END SUBROUTINE block_5_3
19549 : ! **************************************************************************************************
19550 : !> \brief ...
19551 : !> \param mc_max ...
19552 : !> \param md_max ...
19553 : !> \param kbd ...
19554 : !> \param kbc ...
19555 : !> \param kad ...
19556 : !> \param kac ...
19557 : !> \param pbd ...
19558 : !> \param pbc ...
19559 : !> \param pad ...
19560 : !> \param pac ...
19561 : !> \param prim ...
19562 : !> \param scale ...
19563 : ! **************************************************************************************************
19564 231566 : SUBROUTINE block_5_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19565 : INTEGER :: mc_max, md_max
19566 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(5*md_max), kac(5*mc_max), pbd(4*md_max), &
19567 : pbc(4*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*4*mc_max*md_max), scale
19568 :
19569 : INTEGER :: ma, mb, mc, md, p_index
19570 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19571 :
19572 3384770 : kbd(1:4*md_max) = 0.0_dp
19573 3470310 : kbc(1:4*mc_max) = 0.0_dp
19574 4173071 : kad(1:5*md_max) = 0.0_dp
19575 4279996 : kac(1:5*mc_max) = 0.0_dp
19576 : p_index = 0
19577 1019867 : DO md = 1, md_max
19578 3947784 : DO mc = 1, mc_max
19579 15427886 : DO mb = 1, 4
19580 11711668 : ks_bd = 0.0_dp
19581 11711668 : ks_bc = 0.0_dp
19582 11711668 : p_bd = pbd((md - 1)*4 + mb)
19583 11711668 : p_bc = pbc((mc - 1)*4 + mb)
19584 70270008 : DO ma = 1, 5
19585 58558340 : p_index = p_index + 1
19586 58558340 : tmp = scale*prim(p_index)
19587 58558340 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19588 58558340 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19589 58558340 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19590 70270008 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19591 : END DO
19592 11711668 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
19593 14639585 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
19594 : END DO
19595 : END DO
19596 : END DO
19597 231566 : END SUBROUTINE block_5_4
19598 : ! **************************************************************************************************
19599 : !> \brief ...
19600 : !> \param mc_max ...
19601 : !> \param md_max ...
19602 : !> \param kbd ...
19603 : !> \param kbc ...
19604 : !> \param kad ...
19605 : !> \param kac ...
19606 : !> \param pbd ...
19607 : !> \param pbc ...
19608 : !> \param pad ...
19609 : !> \param pac ...
19610 : !> \param prim ...
19611 : !> \param scale ...
19612 : ! **************************************************************************************************
19613 283576 : SUBROUTINE block_5_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19614 : INTEGER :: mc_max, md_max
19615 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(5*md_max), kac(5*mc_max), pbd(5*md_max), &
19616 : pbc(5*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*5*mc_max*md_max), scale
19617 :
19618 : INTEGER :: ma, mb, mc, md, p_index
19619 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19620 :
19621 5499111 : kbd(1:5*md_max) = 0.0_dp
19622 5561121 : kbc(1:5*mc_max) = 0.0_dp
19623 5499111 : kad(1:5*md_max) = 0.0_dp
19624 5561121 : kac(1:5*mc_max) = 0.0_dp
19625 : p_index = 0
19626 1326683 : DO md = 1, md_max
19627 5658658 : DO mc = 1, mc_max
19628 27034957 : DO mb = 1, 5
19629 21659875 : ks_bd = 0.0_dp
19630 21659875 : ks_bc = 0.0_dp
19631 21659875 : p_bd = pbd((md - 1)*5 + mb)
19632 21659875 : p_bc = pbc((mc - 1)*5 + mb)
19633 129959250 : DO ma = 1, 5
19634 108299375 : p_index = p_index + 1
19635 108299375 : tmp = scale*prim(p_index)
19636 108299375 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19637 108299375 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19638 108299375 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19639 129959250 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19640 : END DO
19641 21659875 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
19642 25991850 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
19643 : END DO
19644 : END DO
19645 : END DO
19646 283576 : END SUBROUTINE block_5_5
19647 : ! **************************************************************************************************
19648 : !> \brief ...
19649 : !> \param mc_max ...
19650 : !> \param md_max ...
19651 : !> \param kbd ...
19652 : !> \param kbc ...
19653 : !> \param kad ...
19654 : !> \param kac ...
19655 : !> \param pbd ...
19656 : !> \param pbc ...
19657 : !> \param pad ...
19658 : !> \param pac ...
19659 : !> \param prim ...
19660 : !> \param scale ...
19661 : ! **************************************************************************************************
19662 267 : SUBROUTINE block_5_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19663 : INTEGER :: mc_max, md_max
19664 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(5*md_max), kac(5*mc_max), pbd(6*md_max), &
19665 : pbc(6*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*6*mc_max*md_max), scale
19666 :
19667 : INTEGER :: ma, mb, mc, md, p_index
19668 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19669 :
19670 7569 : kbd(1:6*md_max) = 0.0_dp
19671 4941 : kbc(1:6*mc_max) = 0.0_dp
19672 6352 : kad(1:5*md_max) = 0.0_dp
19673 4162 : kac(1:5*mc_max) = 0.0_dp
19674 : p_index = 0
19675 1484 : DO md = 1, md_max
19676 5207 : DO mc = 1, mc_max
19677 27278 : DO mb = 1, 6
19678 22338 : ks_bd = 0.0_dp
19679 22338 : ks_bc = 0.0_dp
19680 22338 : p_bd = pbd((md - 1)*6 + mb)
19681 22338 : p_bc = pbc((mc - 1)*6 + mb)
19682 134028 : DO ma = 1, 5
19683 111690 : p_index = p_index + 1
19684 111690 : tmp = scale*prim(p_index)
19685 111690 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19686 111690 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19687 111690 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19688 134028 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19689 : END DO
19690 22338 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
19691 26061 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
19692 : END DO
19693 : END DO
19694 : END DO
19695 267 : END SUBROUTINE block_5_6
19696 : ! **************************************************************************************************
19697 : !> \brief ...
19698 : !> \param mc_max ...
19699 : !> \param md_max ...
19700 : !> \param kbd ...
19701 : !> \param kbc ...
19702 : !> \param kad ...
19703 : !> \param kac ...
19704 : !> \param pbd ...
19705 : !> \param pbc ...
19706 : !> \param pad ...
19707 : !> \param pac ...
19708 : !> \param prim ...
19709 : !> \param scale ...
19710 : ! **************************************************************************************************
19711 55006 : SUBROUTINE block_5_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19712 : INTEGER :: mc_max, md_max
19713 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(5*md_max), kac(5*mc_max), pbd(7*md_max), &
19714 : pbc(7*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*7*mc_max*md_max), scale
19715 :
19716 : INTEGER :: ma, mb, mc, md, p_index
19717 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19718 :
19719 1410759 : kbd(1:7*md_max) = 0.0_dp
19720 1409800 : kbc(1:7*mc_max) = 0.0_dp
19721 1023401 : kad(1:5*md_max) = 0.0_dp
19722 1022716 : kac(1:5*mc_max) = 0.0_dp
19723 : p_index = 0
19724 248685 : DO md = 1, md_max
19725 936798 : DO mc = 1, mc_max
19726 5698583 : DO mb = 1, 7
19727 4816791 : ks_bd = 0.0_dp
19728 4816791 : ks_bc = 0.0_dp
19729 4816791 : p_bd = pbd((md - 1)*7 + mb)
19730 4816791 : p_bc = pbc((mc - 1)*7 + mb)
19731 28900746 : DO ma = 1, 5
19732 24083955 : p_index = p_index + 1
19733 24083955 : tmp = scale*prim(p_index)
19734 24083955 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19735 24083955 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19736 24083955 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19737 28900746 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19738 : END DO
19739 4816791 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
19740 5504904 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
19741 : END DO
19742 : END DO
19743 : END DO
19744 55006 : END SUBROUTINE block_5_7
19745 : ! **************************************************************************************************
19746 : !> \brief ...
19747 : !> \param mc_max ...
19748 : !> \param md_max ...
19749 : !> \param kbd ...
19750 : !> \param kbc ...
19751 : !> \param kad ...
19752 : !> \param kac ...
19753 : !> \param pbd ...
19754 : !> \param pbc ...
19755 : !> \param pad ...
19756 : !> \param pac ...
19757 : !> \param prim ...
19758 : !> \param scale ...
19759 : ! **************************************************************************************************
19760 77 : SUBROUTINE block_5_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19761 : INTEGER :: mc_max, md_max
19762 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(5*md_max), kac(5*mc_max), pbd(9*md_max), &
19763 : pbc(9*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*9*mc_max*md_max), scale
19764 :
19765 : INTEGER :: ma, mb, mc, md, p_index
19766 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19767 :
19768 4604 : kbd(1:9*md_max) = 0.0_dp
19769 2003 : kbc(1:9*mc_max) = 0.0_dp
19770 2592 : kad(1:5*md_max) = 0.0_dp
19771 1147 : kac(1:5*mc_max) = 0.0_dp
19772 : p_index = 0
19773 580 : DO md = 1, md_max
19774 1982 : DO mc = 1, mc_max
19775 14523 : DO mb = 1, 9
19776 12618 : ks_bd = 0.0_dp
19777 12618 : ks_bc = 0.0_dp
19778 12618 : p_bd = pbd((md - 1)*9 + mb)
19779 12618 : p_bc = pbc((mc - 1)*9 + mb)
19780 75708 : DO ma = 1, 5
19781 63090 : p_index = p_index + 1
19782 63090 : tmp = scale*prim(p_index)
19783 63090 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19784 63090 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19785 63090 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19786 75708 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19787 : END DO
19788 12618 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
19789 14020 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
19790 : END DO
19791 : END DO
19792 : END DO
19793 77 : END SUBROUTINE block_5_9
19794 : ! **************************************************************************************************
19795 : !> \brief ...
19796 : !> \param mc_max ...
19797 : !> \param md_max ...
19798 : !> \param kbd ...
19799 : !> \param kbc ...
19800 : !> \param kad ...
19801 : !> \param kac ...
19802 : !> \param pbd ...
19803 : !> \param pbc ...
19804 : !> \param pad ...
19805 : !> \param pac ...
19806 : !> \param prim ...
19807 : !> \param scale ...
19808 : ! **************************************************************************************************
19809 143 : SUBROUTINE block_5_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19810 : INTEGER :: mc_max, md_max
19811 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(5*md_max), kac(5*mc_max), &
19812 : pbd(10*md_max), pbc(10*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*10*mc_max*md_max), &
19813 : scale
19814 :
19815 : INTEGER :: ma, mb, mc, md, p_index
19816 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19817 :
19818 9823 : kbd(1:10*md_max) = 0.0_dp
19819 5103 : kbc(1:10*mc_max) = 0.0_dp
19820 4983 : kad(1:5*md_max) = 0.0_dp
19821 2623 : kac(1:5*mc_max) = 0.0_dp
19822 : p_index = 0
19823 1111 : DO md = 1, md_max
19824 4678 : DO mc = 1, mc_max
19825 40205 : DO mb = 1, 10
19826 35670 : ks_bd = 0.0_dp
19827 35670 : ks_bc = 0.0_dp
19828 35670 : p_bd = pbd((md - 1)*10 + mb)
19829 35670 : p_bc = pbc((mc - 1)*10 + mb)
19830 214020 : DO ma = 1, 5
19831 178350 : p_index = p_index + 1
19832 178350 : tmp = scale*prim(p_index)
19833 178350 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19834 178350 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19835 178350 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19836 214020 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19837 : END DO
19838 35670 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
19839 39237 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
19840 : END DO
19841 : END DO
19842 : END DO
19843 143 : END SUBROUTINE block_5_10
19844 : ! **************************************************************************************************
19845 : !> \brief ...
19846 : !> \param mc_max ...
19847 : !> \param md_max ...
19848 : !> \param kbd ...
19849 : !> \param kbc ...
19850 : !> \param kad ...
19851 : !> \param kac ...
19852 : !> \param pbd ...
19853 : !> \param pbc ...
19854 : !> \param pad ...
19855 : !> \param pac ...
19856 : !> \param prim ...
19857 : !> \param scale ...
19858 : ! **************************************************************************************************
19859 172 : SUBROUTINE block_5_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19860 : INTEGER :: mc_max, md_max
19861 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(5*md_max), kac(5*mc_max), &
19862 : pbd(11*md_max), pbc(11*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*11*mc_max*md_max), &
19863 : scale
19864 :
19865 : INTEGER :: ma, mb, mc, md, p_index
19866 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19867 :
19868 13834 : kbd(1:11*md_max) = 0.0_dp
19869 7157 : kbc(1:11*mc_max) = 0.0_dp
19870 6382 : kad(1:5*md_max) = 0.0_dp
19871 3347 : kac(1:5*mc_max) = 0.0_dp
19872 : p_index = 0
19873 1414 : DO md = 1, md_max
19874 6224 : DO mc = 1, mc_max
19875 58962 : DO mb = 1, 11
19876 52910 : ks_bd = 0.0_dp
19877 52910 : ks_bc = 0.0_dp
19878 52910 : p_bd = pbd((md - 1)*11 + mb)
19879 52910 : p_bc = pbc((mc - 1)*11 + mb)
19880 317460 : DO ma = 1, 5
19881 264550 : p_index = p_index + 1
19882 264550 : tmp = scale*prim(p_index)
19883 264550 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19884 264550 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19885 264550 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19886 317460 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19887 : END DO
19888 52910 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
19889 57720 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
19890 : END DO
19891 : END DO
19892 : END DO
19893 172 : END SUBROUTINE block_5_11
19894 : ! **************************************************************************************************
19895 : !> \brief ...
19896 : !> \param mc_max ...
19897 : !> \param md_max ...
19898 : !> \param kbd ...
19899 : !> \param kbc ...
19900 : !> \param kad ...
19901 : !> \param kac ...
19902 : !> \param pbd ...
19903 : !> \param pbc ...
19904 : !> \param pad ...
19905 : !> \param pac ...
19906 : !> \param prim ...
19907 : !> \param scale ...
19908 : ! **************************************************************************************************
19909 158 : SUBROUTINE block_5_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19910 : INTEGER :: mc_max, md_max
19911 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(5*md_max), kac(5*mc_max), &
19912 : pbd(15*md_max), pbc(15*mc_max), pad(5*md_max), pac(5*mc_max), prim(5*15*mc_max*md_max), &
19913 : scale
19914 :
19915 : INTEGER :: ma, mb, mc, md, p_index
19916 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19917 :
19918 17078 : kbd(1:15*md_max) = 0.0_dp
19919 8198 : kbc(1:15*mc_max) = 0.0_dp
19920 5798 : kad(1:5*md_max) = 0.0_dp
19921 2838 : kac(1:5*mc_max) = 0.0_dp
19922 : p_index = 0
19923 1286 : DO md = 1, md_max
19924 5315 : DO mc = 1, mc_max
19925 65592 : DO mb = 1, 15
19926 60435 : ks_bd = 0.0_dp
19927 60435 : ks_bc = 0.0_dp
19928 60435 : p_bd = pbd((md - 1)*15 + mb)
19929 60435 : p_bc = pbc((mc - 1)*15 + mb)
19930 362610 : DO ma = 1, 5
19931 302175 : p_index = p_index + 1
19932 302175 : tmp = scale*prim(p_index)
19933 302175 : ks_bc = ks_bc + tmp*pad((md - 1)*5 + ma)
19934 302175 : ks_bd = ks_bd + tmp*pac((mc - 1)*5 + ma)
19935 302175 : kad((md - 1)*5 + ma) = kad((md - 1)*5 + ma) - tmp*p_bc
19936 362610 : kac((mc - 1)*5 + ma) = kac((mc - 1)*5 + ma) - tmp*p_bd
19937 : END DO
19938 60435 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
19939 64464 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
19940 : END DO
19941 : END DO
19942 : END DO
19943 158 : END SUBROUTINE block_5_15
19944 : ! **************************************************************************************************
19945 : !> \brief ...
19946 : !> \param kbd ...
19947 : !> \param kbc ...
19948 : !> \param kad ...
19949 : !> \param kac ...
19950 : !> \param pbd ...
19951 : !> \param pbc ...
19952 : !> \param pad ...
19953 : !> \param pac ...
19954 : !> \param prim ...
19955 : !> \param scale ...
19956 : ! **************************************************************************************************
19957 10 : SUBROUTINE block_6_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
19958 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(6*1), kac(6*1), &
19959 : pbd(1*1), pbc(1*1), pad(6*1), &
19960 : pac(6*1), prim(6*1*1*1), scale
19961 :
19962 : INTEGER :: ma, mb, mc, md, p_index
19963 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
19964 :
19965 10 : kbd(1:1*1) = 0.0_dp
19966 10 : kbc(1:1*1) = 0.0_dp
19967 10 : kad(1:6*1) = 0.0_dp
19968 10 : kac(1:6*1) = 0.0_dp
19969 10 : p_index = 0
19970 20 : DO md = 1, 1
19971 30 : DO mc = 1, 1
19972 30 : DO mb = 1, 1
19973 10 : ks_bd = 0.0_dp
19974 10 : ks_bc = 0.0_dp
19975 10 : p_bd = pbd((md - 1)*1 + mb)
19976 10 : p_bc = pbc((mc - 1)*1 + mb)
19977 70 : DO ma = 1, 6
19978 60 : p_index = p_index + 1
19979 60 : tmp = scale*prim(p_index)
19980 60 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
19981 60 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
19982 60 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
19983 70 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
19984 : END DO
19985 10 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
19986 20 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
19987 : END DO
19988 : END DO
19989 : END DO
19990 10 : END SUBROUTINE block_6_1_1_1
19991 : ! **************************************************************************************************
19992 : !> \brief ...
19993 : !> \param kbd ...
19994 : !> \param kbc ...
19995 : !> \param kad ...
19996 : !> \param kac ...
19997 : !> \param pbd ...
19998 : !> \param pbc ...
19999 : !> \param pad ...
20000 : !> \param pac ...
20001 : !> \param prim ...
20002 : !> \param scale ...
20003 : ! **************************************************************************************************
20004 6 : SUBROUTINE block_6_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20005 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(6*2), kac(6*1), &
20006 : pbd(1*2), pbc(1*1), pad(6*2), &
20007 : pac(6*1), prim(6*1*1*2), scale
20008 :
20009 : INTEGER :: ma, mb, mc, md, p_index
20010 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20011 :
20012 6 : kbd(1:1*2) = 0.0_dp
20013 6 : kbc(1:1*1) = 0.0_dp
20014 6 : kad(1:6*2) = 0.0_dp
20015 6 : kac(1:6*1) = 0.0_dp
20016 6 : p_index = 0
20017 18 : DO md = 1, 2
20018 30 : DO mc = 1, 1
20019 36 : DO mb = 1, 1
20020 12 : ks_bd = 0.0_dp
20021 12 : ks_bc = 0.0_dp
20022 12 : p_bd = pbd((md - 1)*1 + mb)
20023 12 : p_bc = pbc((mc - 1)*1 + mb)
20024 84 : DO ma = 1, 6
20025 72 : p_index = p_index + 1
20026 72 : tmp = scale*prim(p_index)
20027 72 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20028 72 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20029 72 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20030 84 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20031 : END DO
20032 12 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20033 24 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20034 : END DO
20035 : END DO
20036 : END DO
20037 6 : END SUBROUTINE block_6_1_1_2
20038 : ! **************************************************************************************************
20039 : !> \brief ...
20040 : !> \param kbd ...
20041 : !> \param kbc ...
20042 : !> \param kad ...
20043 : !> \param kac ...
20044 : !> \param pbd ...
20045 : !> \param pbc ...
20046 : !> \param pad ...
20047 : !> \param pac ...
20048 : !> \param prim ...
20049 : !> \param scale ...
20050 : ! **************************************************************************************************
20051 5 : SUBROUTINE block_6_1_1_3(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20052 : REAL(KIND=dp) :: kbd(1*3), kbc(1*1), kad(6*3), kac(6*1), &
20053 : pbd(1*3), pbc(1*1), pad(6*3), &
20054 : pac(6*1), prim(6*1*1*3), scale
20055 :
20056 : INTEGER :: ma, mb, mc, md, p_index
20057 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20058 :
20059 5 : kbd(1:1*3) = 0.0_dp
20060 5 : kbc(1:1*1) = 0.0_dp
20061 5 : kad(1:6*3) = 0.0_dp
20062 5 : kac(1:6*1) = 0.0_dp
20063 5 : p_index = 0
20064 20 : DO md = 1, 3
20065 35 : DO mc = 1, 1
20066 45 : DO mb = 1, 1
20067 15 : ks_bd = 0.0_dp
20068 15 : ks_bc = 0.0_dp
20069 15 : p_bd = pbd((md - 1)*1 + mb)
20070 15 : p_bc = pbc((mc - 1)*1 + mb)
20071 105 : DO ma = 1, 6
20072 90 : p_index = p_index + 1
20073 90 : tmp = scale*prim(p_index)
20074 90 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20075 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20076 90 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20077 105 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20078 : END DO
20079 15 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20080 30 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20081 : END DO
20082 : END DO
20083 : END DO
20084 5 : END SUBROUTINE block_6_1_1_3
20085 : ! **************************************************************************************************
20086 : !> \brief ...
20087 : !> \param md_max ...
20088 : !> \param kbd ...
20089 : !> \param kbc ...
20090 : !> \param kad ...
20091 : !> \param kac ...
20092 : !> \param pbd ...
20093 : !> \param pbc ...
20094 : !> \param pad ...
20095 : !> \param pac ...
20096 : !> \param prim ...
20097 : !> \param scale ...
20098 : ! **************************************************************************************************
20099 36 : SUBROUTINE block_6_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20100 : INTEGER :: md_max
20101 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(6*md_max), kac(6*1), pbd(1*md_max), pbc(1*1), &
20102 : pad(6*md_max), pac(6*1), prim(6*1*1*md_max), scale
20103 :
20104 : INTEGER :: ma, mb, mc, md, p_index
20105 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20106 :
20107 324 : kbd(1:1*md_max) = 0.0_dp
20108 36 : kbc(1:1*1) = 0.0_dp
20109 1764 : kad(1:6*md_max) = 0.0_dp
20110 36 : kac(1:6*1) = 0.0_dp
20111 36 : p_index = 0
20112 324 : DO md = 1, md_max
20113 612 : DO mc = 1, 1
20114 864 : DO mb = 1, 1
20115 288 : ks_bd = 0.0_dp
20116 288 : ks_bc = 0.0_dp
20117 288 : p_bd = pbd((md - 1)*1 + mb)
20118 288 : p_bc = pbc((mc - 1)*1 + mb)
20119 2016 : DO ma = 1, 6
20120 1728 : p_index = p_index + 1
20121 1728 : tmp = scale*prim(p_index)
20122 1728 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20123 1728 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20124 1728 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20125 2016 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20126 : END DO
20127 288 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20128 576 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20129 : END DO
20130 : END DO
20131 : END DO
20132 36 : END SUBROUTINE block_6_1_1
20133 : ! **************************************************************************************************
20134 : !> \brief ...
20135 : !> \param kbd ...
20136 : !> \param kbc ...
20137 : !> \param kad ...
20138 : !> \param kac ...
20139 : !> \param pbd ...
20140 : !> \param pbc ...
20141 : !> \param pad ...
20142 : !> \param pac ...
20143 : !> \param prim ...
20144 : !> \param scale ...
20145 : ! **************************************************************************************************
20146 4 : SUBROUTINE block_6_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20147 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(6*1), kac(6*2), &
20148 : pbd(1*1), pbc(1*2), pad(6*1), &
20149 : pac(6*2), prim(6*1*2*1), scale
20150 :
20151 : INTEGER :: ma, mb, mc, md, p_index
20152 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20153 :
20154 4 : kbd(1:1*1) = 0.0_dp
20155 4 : kbc(1:1*2) = 0.0_dp
20156 4 : kad(1:6*1) = 0.0_dp
20157 4 : kac(1:6*2) = 0.0_dp
20158 4 : p_index = 0
20159 8 : DO md = 1, 1
20160 16 : DO mc = 1, 2
20161 20 : DO mb = 1, 1
20162 8 : ks_bd = 0.0_dp
20163 8 : ks_bc = 0.0_dp
20164 8 : p_bd = pbd((md - 1)*1 + mb)
20165 8 : p_bc = pbc((mc - 1)*1 + mb)
20166 56 : DO ma = 1, 6
20167 48 : p_index = p_index + 1
20168 48 : tmp = scale*prim(p_index)
20169 48 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20170 48 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20171 48 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20172 56 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20173 : END DO
20174 8 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20175 16 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20176 : END DO
20177 : END DO
20178 : END DO
20179 4 : END SUBROUTINE block_6_1_2_1
20180 : ! **************************************************************************************************
20181 : !> \brief ...
20182 : !> \param md_max ...
20183 : !> \param kbd ...
20184 : !> \param kbc ...
20185 : !> \param kad ...
20186 : !> \param kac ...
20187 : !> \param pbd ...
20188 : !> \param pbc ...
20189 : !> \param pad ...
20190 : !> \param pac ...
20191 : !> \param prim ...
20192 : !> \param scale ...
20193 : ! **************************************************************************************************
20194 35 : SUBROUTINE block_6_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20195 : INTEGER :: md_max
20196 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(6*md_max), kac(6*2), pbd(1*md_max), pbc(1*2), &
20197 : pad(6*md_max), pac(6*2), prim(6*1*2*md_max), scale
20198 :
20199 : INTEGER :: ma, mb, mc, md, p_index
20200 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20201 :
20202 270 : kbd(1:1*md_max) = 0.0_dp
20203 35 : kbc(1:1*2) = 0.0_dp
20204 1445 : kad(1:6*md_max) = 0.0_dp
20205 35 : kac(1:6*2) = 0.0_dp
20206 35 : p_index = 0
20207 270 : DO md = 1, md_max
20208 740 : DO mc = 1, 2
20209 1175 : DO mb = 1, 1
20210 470 : ks_bd = 0.0_dp
20211 470 : ks_bc = 0.0_dp
20212 470 : p_bd = pbd((md - 1)*1 + mb)
20213 470 : p_bc = pbc((mc - 1)*1 + mb)
20214 3290 : DO ma = 1, 6
20215 2820 : p_index = p_index + 1
20216 2820 : tmp = scale*prim(p_index)
20217 2820 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20218 2820 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20219 2820 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20220 3290 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20221 : END DO
20222 470 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20223 940 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20224 : END DO
20225 : END DO
20226 : END DO
20227 35 : END SUBROUTINE block_6_1_2
20228 : ! **************************************************************************************************
20229 : !> \brief ...
20230 : !> \param kbd ...
20231 : !> \param kbc ...
20232 : !> \param kad ...
20233 : !> \param kac ...
20234 : !> \param pbd ...
20235 : !> \param pbc ...
20236 : !> \param pad ...
20237 : !> \param pac ...
20238 : !> \param prim ...
20239 : !> \param scale ...
20240 : ! **************************************************************************************************
20241 5 : SUBROUTINE block_6_1_3_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20242 : REAL(KIND=dp) :: kbd(1*1), kbc(1*3), kad(6*1), kac(6*3), &
20243 : pbd(1*1), pbc(1*3), pad(6*1), &
20244 : pac(6*3), prim(6*1*3*1), scale
20245 :
20246 : INTEGER :: ma, mb, mc, md, p_index
20247 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20248 :
20249 5 : kbd(1:1*1) = 0.0_dp
20250 5 : kbc(1:1*3) = 0.0_dp
20251 5 : kad(1:6*1) = 0.0_dp
20252 5 : kac(1:6*3) = 0.0_dp
20253 5 : p_index = 0
20254 10 : DO md = 1, 1
20255 25 : DO mc = 1, 3
20256 35 : DO mb = 1, 1
20257 15 : ks_bd = 0.0_dp
20258 15 : ks_bc = 0.0_dp
20259 15 : p_bd = pbd((md - 1)*1 + mb)
20260 15 : p_bc = pbc((mc - 1)*1 + mb)
20261 105 : DO ma = 1, 6
20262 90 : p_index = p_index + 1
20263 90 : tmp = scale*prim(p_index)
20264 90 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20265 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20266 90 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20267 105 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20268 : END DO
20269 15 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20270 30 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20271 : END DO
20272 : END DO
20273 : END DO
20274 5 : END SUBROUTINE block_6_1_3_1
20275 : ! **************************************************************************************************
20276 : !> \brief ...
20277 : !> \param md_max ...
20278 : !> \param kbd ...
20279 : !> \param kbc ...
20280 : !> \param kad ...
20281 : !> \param kac ...
20282 : !> \param pbd ...
20283 : !> \param pbc ...
20284 : !> \param pad ...
20285 : !> \param pac ...
20286 : !> \param prim ...
20287 : !> \param scale ...
20288 : ! **************************************************************************************************
20289 35 : SUBROUTINE block_6_1_3(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20290 : INTEGER :: md_max
20291 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*3), kad(6*md_max), kac(6*3), pbd(1*md_max), pbc(1*3), &
20292 : pad(6*md_max), pac(6*3), prim(6*1*3*md_max), scale
20293 :
20294 : INTEGER :: ma, mb, mc, md, p_index
20295 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20296 :
20297 272 : kbd(1:1*md_max) = 0.0_dp
20298 35 : kbc(1:1*3) = 0.0_dp
20299 1457 : kad(1:6*md_max) = 0.0_dp
20300 35 : kac(1:6*3) = 0.0_dp
20301 35 : p_index = 0
20302 272 : DO md = 1, md_max
20303 983 : DO mc = 1, 3
20304 1659 : DO mb = 1, 1
20305 711 : ks_bd = 0.0_dp
20306 711 : ks_bc = 0.0_dp
20307 711 : p_bd = pbd((md - 1)*1 + mb)
20308 711 : p_bc = pbc((mc - 1)*1 + mb)
20309 4977 : DO ma = 1, 6
20310 4266 : p_index = p_index + 1
20311 4266 : tmp = scale*prim(p_index)
20312 4266 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20313 4266 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20314 4266 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20315 4977 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20316 : END DO
20317 711 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20318 1422 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20319 : END DO
20320 : END DO
20321 : END DO
20322 35 : END SUBROUTINE block_6_1_3
20323 : ! **************************************************************************************************
20324 : !> \brief ...
20325 : !> \param mc_max ...
20326 : !> \param md_max ...
20327 : !> \param kbd ...
20328 : !> \param kbc ...
20329 : !> \param kad ...
20330 : !> \param kac ...
20331 : !> \param pbd ...
20332 : !> \param pbc ...
20333 : !> \param pad ...
20334 : !> \param pac ...
20335 : !> \param prim ...
20336 : !> \param scale ...
20337 : ! **************************************************************************************************
20338 169 : SUBROUTINE block_6_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20339 : INTEGER :: mc_max, md_max
20340 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(6*md_max), kac(6*mc_max), pbd(1*md_max), &
20341 : pbc(1*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*1*mc_max*md_max), scale
20342 :
20343 : INTEGER :: ma, mb, mc, md, p_index
20344 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20345 :
20346 1330 : kbd(1:1*md_max) = 0.0_dp
20347 1383 : kbc(1:1*mc_max) = 0.0_dp
20348 7135 : kad(1:6*md_max) = 0.0_dp
20349 7453 : kac(1:6*mc_max) = 0.0_dp
20350 : p_index = 0
20351 1330 : DO md = 1, md_max
20352 9761 : DO mc = 1, mc_max
20353 18023 : DO mb = 1, 1
20354 8431 : ks_bd = 0.0_dp
20355 8431 : ks_bc = 0.0_dp
20356 8431 : p_bd = pbd((md - 1)*1 + mb)
20357 8431 : p_bc = pbc((mc - 1)*1 + mb)
20358 59017 : DO ma = 1, 6
20359 50586 : p_index = p_index + 1
20360 50586 : tmp = scale*prim(p_index)
20361 50586 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20362 50586 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20363 50586 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20364 59017 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20365 : END DO
20366 8431 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
20367 16862 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
20368 : END DO
20369 : END DO
20370 : END DO
20371 169 : END SUBROUTINE block_6_1
20372 : ! **************************************************************************************************
20373 : !> \brief ...
20374 : !> \param kbd ...
20375 : !> \param kbc ...
20376 : !> \param kad ...
20377 : !> \param kac ...
20378 : !> \param pbd ...
20379 : !> \param pbc ...
20380 : !> \param pad ...
20381 : !> \param pac ...
20382 : !> \param prim ...
20383 : !> \param scale ...
20384 : ! **************************************************************************************************
20385 5 : SUBROUTINE block_6_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20386 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(6*1), kac(6*1), &
20387 : pbd(2*1), pbc(2*1), pad(6*1), &
20388 : pac(6*1), prim(6*2*1*1), scale
20389 :
20390 : INTEGER :: ma, mb, mc, md, p_index
20391 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20392 :
20393 5 : kbd(1:2*1) = 0.0_dp
20394 5 : kbc(1:2*1) = 0.0_dp
20395 5 : kad(1:6*1) = 0.0_dp
20396 5 : kac(1:6*1) = 0.0_dp
20397 5 : p_index = 0
20398 10 : DO md = 1, 1
20399 15 : DO mc = 1, 1
20400 20 : DO mb = 1, 2
20401 10 : ks_bd = 0.0_dp
20402 10 : ks_bc = 0.0_dp
20403 10 : p_bd = pbd((md - 1)*2 + mb)
20404 10 : p_bc = pbc((mc - 1)*2 + mb)
20405 70 : DO ma = 1, 6
20406 60 : p_index = p_index + 1
20407 60 : tmp = scale*prim(p_index)
20408 60 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20409 60 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20410 60 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20411 70 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20412 : END DO
20413 10 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
20414 15 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
20415 : END DO
20416 : END DO
20417 : END DO
20418 5 : END SUBROUTINE block_6_2_1_1
20419 : ! **************************************************************************************************
20420 : !> \brief ...
20421 : !> \param md_max ...
20422 : !> \param kbd ...
20423 : !> \param kbc ...
20424 : !> \param kad ...
20425 : !> \param kac ...
20426 : !> \param pbd ...
20427 : !> \param pbc ...
20428 : !> \param pad ...
20429 : !> \param pac ...
20430 : !> \param prim ...
20431 : !> \param scale ...
20432 : ! **************************************************************************************************
20433 20 : SUBROUTINE block_6_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20434 : INTEGER :: md_max
20435 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(6*md_max), kac(6*1), pbd(2*md_max), pbc(2*1), &
20436 : pad(6*md_max), pac(6*1), prim(6*2*1*md_max), scale
20437 :
20438 : INTEGER :: ma, mb, mc, md, p_index
20439 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20440 :
20441 244 : kbd(1:2*md_max) = 0.0_dp
20442 20 : kbc(1:2*1) = 0.0_dp
20443 692 : kad(1:6*md_max) = 0.0_dp
20444 20 : kac(1:6*1) = 0.0_dp
20445 20 : p_index = 0
20446 132 : DO md = 1, md_max
20447 244 : DO mc = 1, 1
20448 448 : DO mb = 1, 2
20449 224 : ks_bd = 0.0_dp
20450 224 : ks_bc = 0.0_dp
20451 224 : p_bd = pbd((md - 1)*2 + mb)
20452 224 : p_bc = pbc((mc - 1)*2 + mb)
20453 1568 : DO ma = 1, 6
20454 1344 : p_index = p_index + 1
20455 1344 : tmp = scale*prim(p_index)
20456 1344 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20457 1344 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20458 1344 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20459 1568 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20460 : END DO
20461 224 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
20462 336 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
20463 : END DO
20464 : END DO
20465 : END DO
20466 20 : END SUBROUTINE block_6_2_1
20467 : ! **************************************************************************************************
20468 : !> \brief ...
20469 : !> \param mc_max ...
20470 : !> \param md_max ...
20471 : !> \param kbd ...
20472 : !> \param kbc ...
20473 : !> \param kad ...
20474 : !> \param kac ...
20475 : !> \param pbd ...
20476 : !> \param pbc ...
20477 : !> \param pad ...
20478 : !> \param pac ...
20479 : !> \param prim ...
20480 : !> \param scale ...
20481 : ! **************************************************************************************************
20482 84 : SUBROUTINE block_6_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20483 : INTEGER :: mc_max, md_max
20484 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(6*md_max), kac(6*mc_max), pbd(2*md_max), &
20485 : pbc(2*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*2*mc_max*md_max), scale
20486 :
20487 : INTEGER :: ma, mb, mc, md, p_index
20488 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20489 :
20490 854 : kbd(1:2*md_max) = 0.0_dp
20491 1352 : kbc(1:2*mc_max) = 0.0_dp
20492 2394 : kad(1:6*md_max) = 0.0_dp
20493 3888 : kac(1:6*mc_max) = 0.0_dp
20494 : p_index = 0
20495 469 : DO md = 1, md_max
20496 3752 : DO mc = 1, mc_max
20497 10234 : DO mb = 1, 2
20498 6566 : ks_bd = 0.0_dp
20499 6566 : ks_bc = 0.0_dp
20500 6566 : p_bd = pbd((md - 1)*2 + mb)
20501 6566 : p_bc = pbc((mc - 1)*2 + mb)
20502 45962 : DO ma = 1, 6
20503 39396 : p_index = p_index + 1
20504 39396 : tmp = scale*prim(p_index)
20505 39396 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20506 39396 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20507 39396 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20508 45962 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20509 : END DO
20510 6566 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
20511 9849 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
20512 : END DO
20513 : END DO
20514 : END DO
20515 84 : END SUBROUTINE block_6_2
20516 : ! **************************************************************************************************
20517 : !> \brief ...
20518 : !> \param kbd ...
20519 : !> \param kbc ...
20520 : !> \param kad ...
20521 : !> \param kac ...
20522 : !> \param pbd ...
20523 : !> \param pbc ...
20524 : !> \param pad ...
20525 : !> \param pac ...
20526 : !> \param prim ...
20527 : !> \param scale ...
20528 : ! **************************************************************************************************
20529 5 : SUBROUTINE block_6_3_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20530 : REAL(KIND=dp) :: kbd(3*1), kbc(3*1), kad(6*1), kac(6*1), &
20531 : pbd(3*1), pbc(3*1), pad(6*1), &
20532 : pac(6*1), prim(6*3*1*1), scale
20533 :
20534 : INTEGER :: ma, mb, mc, md, p_index
20535 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20536 :
20537 5 : kbd(1:3*1) = 0.0_dp
20538 5 : kbc(1:3*1) = 0.0_dp
20539 5 : kad(1:6*1) = 0.0_dp
20540 5 : kac(1:6*1) = 0.0_dp
20541 5 : p_index = 0
20542 10 : DO md = 1, 1
20543 15 : DO mc = 1, 1
20544 25 : DO mb = 1, 3
20545 15 : ks_bd = 0.0_dp
20546 15 : ks_bc = 0.0_dp
20547 15 : p_bd = pbd((md - 1)*3 + mb)
20548 15 : p_bc = pbc((mc - 1)*3 + mb)
20549 105 : DO ma = 1, 6
20550 90 : p_index = p_index + 1
20551 90 : tmp = scale*prim(p_index)
20552 90 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20553 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20554 90 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20555 105 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20556 : END DO
20557 15 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
20558 20 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
20559 : END DO
20560 : END DO
20561 : END DO
20562 5 : END SUBROUTINE block_6_3_1_1
20563 : ! **************************************************************************************************
20564 : !> \brief ...
20565 : !> \param md_max ...
20566 : !> \param kbd ...
20567 : !> \param kbc ...
20568 : !> \param kad ...
20569 : !> \param kac ...
20570 : !> \param pbd ...
20571 : !> \param pbc ...
20572 : !> \param pad ...
20573 : !> \param pac ...
20574 : !> \param prim ...
20575 : !> \param scale ...
20576 : ! **************************************************************************************************
20577 21 : SUBROUTINE block_6_3_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20578 : INTEGER :: md_max
20579 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*1), kad(6*md_max), kac(6*1), pbd(3*md_max), pbc(3*1), &
20580 : pad(6*md_max), pac(6*1), prim(6*3*1*md_max), scale
20581 :
20582 : INTEGER :: ma, mb, mc, md, p_index
20583 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20584 :
20585 363 : kbd(1:3*md_max) = 0.0_dp
20586 21 : kbc(1:3*1) = 0.0_dp
20587 705 : kad(1:6*md_max) = 0.0_dp
20588 21 : kac(1:6*1) = 0.0_dp
20589 21 : p_index = 0
20590 135 : DO md = 1, md_max
20591 249 : DO mc = 1, 1
20592 570 : DO mb = 1, 3
20593 342 : ks_bd = 0.0_dp
20594 342 : ks_bc = 0.0_dp
20595 342 : p_bd = pbd((md - 1)*3 + mb)
20596 342 : p_bc = pbc((mc - 1)*3 + mb)
20597 2394 : DO ma = 1, 6
20598 2052 : p_index = p_index + 1
20599 2052 : tmp = scale*prim(p_index)
20600 2052 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20601 2052 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20602 2052 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20603 2394 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20604 : END DO
20605 342 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
20606 456 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
20607 : END DO
20608 : END DO
20609 : END DO
20610 21 : END SUBROUTINE block_6_3_1
20611 : ! **************************************************************************************************
20612 : !> \brief ...
20613 : !> \param mc_max ...
20614 : !> \param md_max ...
20615 : !> \param kbd ...
20616 : !> \param kbc ...
20617 : !> \param kad ...
20618 : !> \param kac ...
20619 : !> \param pbd ...
20620 : !> \param pbc ...
20621 : !> \param pad ...
20622 : !> \param pac ...
20623 : !> \param prim ...
20624 : !> \param scale ...
20625 : ! **************************************************************************************************
20626 84 : SUBROUTINE block_6_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20627 : INTEGER :: mc_max, md_max
20628 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(6*md_max), kac(6*mc_max), pbd(3*md_max), &
20629 : pbc(3*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*3*mc_max*md_max), scale
20630 :
20631 : INTEGER :: ma, mb, mc, md, p_index
20632 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20633 :
20634 1266 : kbd(1:3*md_max) = 0.0_dp
20635 1953 : kbc(1:3*mc_max) = 0.0_dp
20636 2448 : kad(1:6*md_max) = 0.0_dp
20637 3822 : kac(1:6*mc_max) = 0.0_dp
20638 : p_index = 0
20639 478 : DO md = 1, md_max
20640 3771 : DO mc = 1, mc_max
20641 13566 : DO mb = 1, 3
20642 9879 : ks_bd = 0.0_dp
20643 9879 : ks_bc = 0.0_dp
20644 9879 : p_bd = pbd((md - 1)*3 + mb)
20645 9879 : p_bc = pbc((mc - 1)*3 + mb)
20646 69153 : DO ma = 1, 6
20647 59274 : p_index = p_index + 1
20648 59274 : tmp = scale*prim(p_index)
20649 59274 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20650 59274 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20651 59274 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20652 69153 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20653 : END DO
20654 9879 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
20655 13172 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
20656 : END DO
20657 : END DO
20658 : END DO
20659 84 : END SUBROUTINE block_6_3
20660 : ! **************************************************************************************************
20661 : !> \brief ...
20662 : !> \param mc_max ...
20663 : !> \param md_max ...
20664 : !> \param kbd ...
20665 : !> \param kbc ...
20666 : !> \param kad ...
20667 : !> \param kac ...
20668 : !> \param pbd ...
20669 : !> \param pbc ...
20670 : !> \param pad ...
20671 : !> \param pac ...
20672 : !> \param prim ...
20673 : !> \param scale ...
20674 : ! **************************************************************************************************
20675 111 : SUBROUTINE block_6_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20676 : INTEGER :: mc_max, md_max
20677 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(6*md_max), kac(6*mc_max), pbd(4*md_max), &
20678 : pbc(4*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*4*mc_max*md_max), scale
20679 :
20680 : INTEGER :: ma, mb, mc, md, p_index
20681 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20682 :
20683 2207 : kbd(1:4*md_max) = 0.0_dp
20684 2643 : kbc(1:4*mc_max) = 0.0_dp
20685 3255 : kad(1:6*md_max) = 0.0_dp
20686 3909 : kac(1:6*mc_max) = 0.0_dp
20687 : p_index = 0
20688 635 : DO md = 1, md_max
20689 4049 : DO mc = 1, mc_max
20690 17594 : DO mb = 1, 4
20691 13656 : ks_bd = 0.0_dp
20692 13656 : ks_bc = 0.0_dp
20693 13656 : p_bd = pbd((md - 1)*4 + mb)
20694 13656 : p_bc = pbc((mc - 1)*4 + mb)
20695 95592 : DO ma = 1, 6
20696 81936 : p_index = p_index + 1
20697 81936 : tmp = scale*prim(p_index)
20698 81936 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20699 81936 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20700 81936 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20701 95592 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20702 : END DO
20703 13656 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
20704 17070 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
20705 : END DO
20706 : END DO
20707 : END DO
20708 111 : END SUBROUTINE block_6_4
20709 : ! **************************************************************************************************
20710 : !> \brief ...
20711 : !> \param mc_max ...
20712 : !> \param md_max ...
20713 : !> \param kbd ...
20714 : !> \param kbc ...
20715 : !> \param kad ...
20716 : !> \param kac ...
20717 : !> \param pbd ...
20718 : !> \param pbc ...
20719 : !> \param pad ...
20720 : !> \param pac ...
20721 : !> \param prim ...
20722 : !> \param scale ...
20723 : ! **************************************************************************************************
20724 110 : SUBROUTINE block_6_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20725 : INTEGER :: mc_max, md_max
20726 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(6*md_max), kac(6*mc_max), pbd(5*md_max), &
20727 : pbc(5*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*5*mc_max*md_max), scale
20728 :
20729 : INTEGER :: ma, mb, mc, md, p_index
20730 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20731 :
20732 2750 : kbd(1:5*md_max) = 0.0_dp
20733 3125 : kbc(1:5*mc_max) = 0.0_dp
20734 3278 : kad(1:6*md_max) = 0.0_dp
20735 3728 : kac(1:6*mc_max) = 0.0_dp
20736 : p_index = 0
20737 638 : DO md = 1, md_max
20738 4006 : DO mc = 1, mc_max
20739 20736 : DO mb = 1, 5
20740 16840 : ks_bd = 0.0_dp
20741 16840 : ks_bc = 0.0_dp
20742 16840 : p_bd = pbd((md - 1)*5 + mb)
20743 16840 : p_bc = pbc((mc - 1)*5 + mb)
20744 117880 : DO ma = 1, 6
20745 101040 : p_index = p_index + 1
20746 101040 : tmp = scale*prim(p_index)
20747 101040 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20748 101040 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20749 101040 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20750 117880 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20751 : END DO
20752 16840 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
20753 20208 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
20754 : END DO
20755 : END DO
20756 : END DO
20757 110 : END SUBROUTINE block_6_5
20758 : ! **************************************************************************************************
20759 : !> \brief ...
20760 : !> \param mc_max ...
20761 : !> \param md_max ...
20762 : !> \param kbd ...
20763 : !> \param kbc ...
20764 : !> \param kad ...
20765 : !> \param kac ...
20766 : !> \param pbd ...
20767 : !> \param pbc ...
20768 : !> \param pad ...
20769 : !> \param pac ...
20770 : !> \param prim ...
20771 : !> \param scale ...
20772 : ! **************************************************************************************************
20773 346 : SUBROUTINE block_6_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20774 : INTEGER :: mc_max, md_max
20775 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(6*md_max), kac(6*mc_max), pbd(6*md_max), &
20776 : pbc(6*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*6*mc_max*md_max), scale
20777 :
20778 : INTEGER :: ma, mb, mc, md, p_index
20779 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20780 :
20781 11032 : kbd(1:6*md_max) = 0.0_dp
20782 8002 : kbc(1:6*mc_max) = 0.0_dp
20783 11032 : kad(1:6*md_max) = 0.0_dp
20784 8002 : kac(1:6*mc_max) = 0.0_dp
20785 : p_index = 0
20786 2127 : DO md = 1, md_max
20787 9356 : DO mc = 1, mc_max
20788 52384 : DO mb = 1, 6
20789 43374 : ks_bd = 0.0_dp
20790 43374 : ks_bc = 0.0_dp
20791 43374 : p_bd = pbd((md - 1)*6 + mb)
20792 43374 : p_bc = pbc((mc - 1)*6 + mb)
20793 303618 : DO ma = 1, 6
20794 260244 : p_index = p_index + 1
20795 260244 : tmp = scale*prim(p_index)
20796 260244 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20797 260244 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20798 260244 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20799 303618 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20800 : END DO
20801 43374 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
20802 50603 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
20803 : END DO
20804 : END DO
20805 : END DO
20806 346 : END SUBROUTINE block_6_6
20807 : ! **************************************************************************************************
20808 : !> \brief ...
20809 : !> \param mc_max ...
20810 : !> \param md_max ...
20811 : !> \param kbd ...
20812 : !> \param kbc ...
20813 : !> \param kad ...
20814 : !> \param kac ...
20815 : !> \param pbd ...
20816 : !> \param pbc ...
20817 : !> \param pad ...
20818 : !> \param pac ...
20819 : !> \param prim ...
20820 : !> \param scale ...
20821 : ! **************************************************************************************************
20822 37 : SUBROUTINE block_6_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20823 : INTEGER :: mc_max, md_max
20824 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(6*md_max), kac(6*mc_max), pbd(7*md_max), &
20825 : pbc(7*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*7*mc_max*md_max), scale
20826 :
20827 : INTEGER :: ma, mb, mc, md, p_index
20828 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20829 :
20830 1689 : kbd(1:7*md_max) = 0.0_dp
20831 716 : kbc(1:7*mc_max) = 0.0_dp
20832 1453 : kad(1:6*md_max) = 0.0_dp
20833 619 : kac(1:6*mc_max) = 0.0_dp
20834 : p_index = 0
20835 273 : DO md = 1, md_max
20836 884 : DO mc = 1, mc_max
20837 5124 : DO mb = 1, 7
20838 4277 : ks_bd = 0.0_dp
20839 4277 : ks_bc = 0.0_dp
20840 4277 : p_bd = pbd((md - 1)*7 + mb)
20841 4277 : p_bc = pbc((mc - 1)*7 + mb)
20842 29939 : DO ma = 1, 6
20843 25662 : p_index = p_index + 1
20844 25662 : tmp = scale*prim(p_index)
20845 25662 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20846 25662 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20847 25662 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20848 29939 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20849 : END DO
20850 4277 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
20851 4888 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
20852 : END DO
20853 : END DO
20854 : END DO
20855 37 : END SUBROUTINE block_6_7
20856 : ! **************************************************************************************************
20857 : !> \brief ...
20858 : !> \param mc_max ...
20859 : !> \param md_max ...
20860 : !> \param kbd ...
20861 : !> \param kbc ...
20862 : !> \param kad ...
20863 : !> \param kac ...
20864 : !> \param pbd ...
20865 : !> \param pbc ...
20866 : !> \param pad ...
20867 : !> \param pac ...
20868 : !> \param prim ...
20869 : !> \param scale ...
20870 : ! **************************************************************************************************
20871 99 : SUBROUTINE block_6_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20872 : INTEGER :: mc_max, md_max
20873 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(6*md_max), kac(6*mc_max), pbd(9*md_max), &
20874 : pbc(9*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*9*mc_max*md_max), scale
20875 :
20876 : INTEGER :: ma, mb, mc, md, p_index
20877 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20878 :
20879 6399 : kbd(1:9*md_max) = 0.0_dp
20880 2889 : kbc(1:9*mc_max) = 0.0_dp
20881 4299 : kad(1:6*md_max) = 0.0_dp
20882 1959 : kac(1:6*mc_max) = 0.0_dp
20883 : p_index = 0
20884 799 : DO md = 1, md_max
20885 3108 : DO mc = 1, mc_max
20886 23790 : DO mb = 1, 9
20887 20781 : ks_bd = 0.0_dp
20888 20781 : ks_bc = 0.0_dp
20889 20781 : p_bd = pbd((md - 1)*9 + mb)
20890 20781 : p_bc = pbc((mc - 1)*9 + mb)
20891 145467 : DO ma = 1, 6
20892 124686 : p_index = p_index + 1
20893 124686 : tmp = scale*prim(p_index)
20894 124686 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20895 124686 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20896 124686 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20897 145467 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20898 : END DO
20899 20781 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
20900 23090 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
20901 : END DO
20902 : END DO
20903 : END DO
20904 99 : END SUBROUTINE block_6_9
20905 : ! **************************************************************************************************
20906 : !> \brief ...
20907 : !> \param mc_max ...
20908 : !> \param md_max ...
20909 : !> \param kbd ...
20910 : !> \param kbc ...
20911 : !> \param kad ...
20912 : !> \param kac ...
20913 : !> \param pbd ...
20914 : !> \param pbc ...
20915 : !> \param pad ...
20916 : !> \param pac ...
20917 : !> \param prim ...
20918 : !> \param scale ...
20919 : ! **************************************************************************************************
20920 167 : SUBROUTINE block_6_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20921 : INTEGER :: mc_max, md_max
20922 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(6*md_max), kac(6*mc_max), &
20923 : pbd(10*md_max), pbc(10*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*10*mc_max*md_max), &
20924 : scale
20925 :
20926 : INTEGER :: ma, mb, mc, md, p_index
20927 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20928 :
20929 12017 : kbd(1:10*md_max) = 0.0_dp
20930 6257 : kbc(1:10*mc_max) = 0.0_dp
20931 7277 : kad(1:6*md_max) = 0.0_dp
20932 3821 : kac(1:6*mc_max) = 0.0_dp
20933 : p_index = 0
20934 1352 : DO md = 1, md_max
20935 5874 : DO mc = 1, mc_max
20936 50927 : DO mb = 1, 10
20937 45220 : ks_bd = 0.0_dp
20938 45220 : ks_bc = 0.0_dp
20939 45220 : p_bd = pbd((md - 1)*10 + mb)
20940 45220 : p_bc = pbc((mc - 1)*10 + mb)
20941 316540 : DO ma = 1, 6
20942 271320 : p_index = p_index + 1
20943 271320 : tmp = scale*prim(p_index)
20944 271320 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20945 271320 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20946 271320 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20947 316540 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20948 : END DO
20949 45220 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
20950 49742 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
20951 : END DO
20952 : END DO
20953 : END DO
20954 167 : END SUBROUTINE block_6_10
20955 : ! **************************************************************************************************
20956 : !> \brief ...
20957 : !> \param mc_max ...
20958 : !> \param md_max ...
20959 : !> \param kbd ...
20960 : !> \param kbc ...
20961 : !> \param kad ...
20962 : !> \param kac ...
20963 : !> \param pbd ...
20964 : !> \param pbc ...
20965 : !> \param pad ...
20966 : !> \param pac ...
20967 : !> \param prim ...
20968 : !> \param scale ...
20969 : ! **************************************************************************************************
20970 193 : SUBROUTINE block_6_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
20971 : INTEGER :: mc_max, md_max
20972 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(6*md_max), kac(6*mc_max), &
20973 : pbd(11*md_max), pbc(11*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*11*mc_max*md_max), &
20974 : scale
20975 :
20976 : INTEGER :: ma, mb, mc, md, p_index
20977 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
20978 :
20979 15901 : kbd(1:11*md_max) = 0.0_dp
20980 8685 : kbc(1:11*mc_max) = 0.0_dp
20981 8761 : kad(1:6*md_max) = 0.0_dp
20982 4825 : kac(1:6*mc_max) = 0.0_dp
20983 : p_index = 0
20984 1621 : DO md = 1, md_max
20985 7796 : DO mc = 1, mc_max
20986 75528 : DO mb = 1, 11
20987 67925 : ks_bd = 0.0_dp
20988 67925 : ks_bc = 0.0_dp
20989 67925 : p_bd = pbd((md - 1)*11 + mb)
20990 67925 : p_bc = pbc((mc - 1)*11 + mb)
20991 475475 : DO ma = 1, 6
20992 407550 : p_index = p_index + 1
20993 407550 : tmp = scale*prim(p_index)
20994 407550 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
20995 407550 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
20996 407550 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
20997 475475 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
20998 : END DO
20999 67925 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
21000 74100 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
21001 : END DO
21002 : END DO
21003 : END DO
21004 193 : END SUBROUTINE block_6_11
21005 : ! **************************************************************************************************
21006 : !> \brief ...
21007 : !> \param mc_max ...
21008 : !> \param md_max ...
21009 : !> \param kbd ...
21010 : !> \param kbc ...
21011 : !> \param kad ...
21012 : !> \param kac ...
21013 : !> \param pbd ...
21014 : !> \param pbc ...
21015 : !> \param pad ...
21016 : !> \param pac ...
21017 : !> \param prim ...
21018 : !> \param scale ...
21019 : ! **************************************************************************************************
21020 180 : SUBROUTINE block_6_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21021 : INTEGER :: mc_max, md_max
21022 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(6*md_max), kac(6*mc_max), &
21023 : pbd(15*md_max), pbc(15*mc_max), pad(6*md_max), pac(6*mc_max), prim(6*15*mc_max*md_max), &
21024 : scale
21025 :
21026 : INTEGER :: ma, mb, mc, md, p_index
21027 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21028 :
21029 20130 : kbd(1:15*md_max) = 0.0_dp
21030 10125 : kbc(1:15*mc_max) = 0.0_dp
21031 8160 : kad(1:6*md_max) = 0.0_dp
21032 4158 : kac(1:6*mc_max) = 0.0_dp
21033 : p_index = 0
21034 1510 : DO md = 1, md_max
21035 6744 : DO mc = 1, mc_max
21036 85074 : DO mb = 1, 15
21037 78510 : ks_bd = 0.0_dp
21038 78510 : ks_bc = 0.0_dp
21039 78510 : p_bd = pbd((md - 1)*15 + mb)
21040 78510 : p_bc = pbc((mc - 1)*15 + mb)
21041 549570 : DO ma = 1, 6
21042 471060 : p_index = p_index + 1
21043 471060 : tmp = scale*prim(p_index)
21044 471060 : ks_bc = ks_bc + tmp*pad((md - 1)*6 + ma)
21045 471060 : ks_bd = ks_bd + tmp*pac((mc - 1)*6 + ma)
21046 471060 : kad((md - 1)*6 + ma) = kad((md - 1)*6 + ma) - tmp*p_bc
21047 549570 : kac((mc - 1)*6 + ma) = kac((mc - 1)*6 + ma) - tmp*p_bd
21048 : END DO
21049 78510 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
21050 83744 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
21051 : END DO
21052 : END DO
21053 : END DO
21054 180 : END SUBROUTINE block_6_15
21055 : ! **************************************************************************************************
21056 : !> \brief ...
21057 : !> \param kbd ...
21058 : !> \param kbc ...
21059 : !> \param kad ...
21060 : !> \param kac ...
21061 : !> \param pbd ...
21062 : !> \param pbc ...
21063 : !> \param pad ...
21064 : !> \param pac ...
21065 : !> \param prim ...
21066 : !> \param scale ...
21067 : ! **************************************************************************************************
21068 27817 : SUBROUTINE block_7_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21069 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(7*1), kac(7*1), &
21070 : pbd(1*1), pbc(1*1), pad(7*1), &
21071 : pac(7*1), prim(7*1*1*1), scale
21072 :
21073 : INTEGER :: ma, mb, mc, md, p_index
21074 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21075 :
21076 27817 : kbd(1:1*1) = 0.0_dp
21077 27817 : kbc(1:1*1) = 0.0_dp
21078 27817 : kad(1:7*1) = 0.0_dp
21079 27817 : kac(1:7*1) = 0.0_dp
21080 27817 : p_index = 0
21081 55634 : DO md = 1, 1
21082 83451 : DO mc = 1, 1
21083 83451 : DO mb = 1, 1
21084 27817 : ks_bd = 0.0_dp
21085 27817 : ks_bc = 0.0_dp
21086 27817 : p_bd = pbd((md - 1)*1 + mb)
21087 27817 : p_bc = pbc((mc - 1)*1 + mb)
21088 222536 : DO ma = 1, 7
21089 194719 : p_index = p_index + 1
21090 194719 : tmp = scale*prim(p_index)
21091 194719 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21092 194719 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21093 194719 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21094 222536 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21095 : END DO
21096 27817 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
21097 55634 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
21098 : END DO
21099 : END DO
21100 : END DO
21101 27817 : END SUBROUTINE block_7_1_1_1
21102 : ! **************************************************************************************************
21103 : !> \brief ...
21104 : !> \param kbd ...
21105 : !> \param kbc ...
21106 : !> \param kad ...
21107 : !> \param kac ...
21108 : !> \param pbd ...
21109 : !> \param pbc ...
21110 : !> \param pad ...
21111 : !> \param pac ...
21112 : !> \param prim ...
21113 : !> \param scale ...
21114 : ! **************************************************************************************************
21115 716 : SUBROUTINE block_7_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21116 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(7*2), kac(7*1), &
21117 : pbd(1*2), pbc(1*1), pad(7*2), &
21118 : pac(7*1), prim(7*1*1*2), scale
21119 :
21120 : INTEGER :: ma, mb, mc, md, p_index
21121 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21122 :
21123 716 : kbd(1:1*2) = 0.0_dp
21124 716 : kbc(1:1*1) = 0.0_dp
21125 716 : kad(1:7*2) = 0.0_dp
21126 716 : kac(1:7*1) = 0.0_dp
21127 716 : p_index = 0
21128 2148 : DO md = 1, 2
21129 3580 : DO mc = 1, 1
21130 4296 : DO mb = 1, 1
21131 1432 : ks_bd = 0.0_dp
21132 1432 : ks_bc = 0.0_dp
21133 1432 : p_bd = pbd((md - 1)*1 + mb)
21134 1432 : p_bc = pbc((mc - 1)*1 + mb)
21135 11456 : DO ma = 1, 7
21136 10024 : p_index = p_index + 1
21137 10024 : tmp = scale*prim(p_index)
21138 10024 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21139 10024 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21140 10024 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21141 11456 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21142 : END DO
21143 1432 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
21144 2864 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
21145 : END DO
21146 : END DO
21147 : END DO
21148 716 : END SUBROUTINE block_7_1_1_2
21149 : ! **************************************************************************************************
21150 : !> \brief ...
21151 : !> \param md_max ...
21152 : !> \param kbd ...
21153 : !> \param kbc ...
21154 : !> \param kad ...
21155 : !> \param kac ...
21156 : !> \param pbd ...
21157 : !> \param pbc ...
21158 : !> \param pad ...
21159 : !> \param pac ...
21160 : !> \param prim ...
21161 : !> \param scale ...
21162 : ! **************************************************************************************************
21163 28237 : SUBROUTINE block_7_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21164 : INTEGER :: md_max
21165 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(7*md_max), kac(7*1), pbd(1*md_max), pbc(1*1), &
21166 : pad(7*md_max), pac(7*1), prim(7*1*1*md_max), scale
21167 :
21168 : INTEGER :: ma, mb, mc, md, p_index
21169 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21170 :
21171 139940 : kbd(1:1*md_max) = 0.0_dp
21172 28237 : kbc(1:1*1) = 0.0_dp
21173 810158 : kad(1:7*md_max) = 0.0_dp
21174 28237 : kac(1:7*1) = 0.0_dp
21175 28237 : p_index = 0
21176 139940 : DO md = 1, md_max
21177 251643 : DO mc = 1, 1
21178 335109 : DO mb = 1, 1
21179 111703 : ks_bd = 0.0_dp
21180 111703 : ks_bc = 0.0_dp
21181 111703 : p_bd = pbd((md - 1)*1 + mb)
21182 111703 : p_bc = pbc((mc - 1)*1 + mb)
21183 893624 : DO ma = 1, 7
21184 781921 : p_index = p_index + 1
21185 781921 : tmp = scale*prim(p_index)
21186 781921 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21187 781921 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21188 781921 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21189 893624 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21190 : END DO
21191 111703 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
21192 223406 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
21193 : END DO
21194 : END DO
21195 : END DO
21196 28237 : END SUBROUTINE block_7_1_1
21197 : ! **************************************************************************************************
21198 : !> \brief ...
21199 : !> \param kbd ...
21200 : !> \param kbc ...
21201 : !> \param kad ...
21202 : !> \param kac ...
21203 : !> \param pbd ...
21204 : !> \param pbc ...
21205 : !> \param pad ...
21206 : !> \param pac ...
21207 : !> \param prim ...
21208 : !> \param scale ...
21209 : ! **************************************************************************************************
21210 715 : SUBROUTINE block_7_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21211 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(7*1), kac(7*2), &
21212 : pbd(1*1), pbc(1*2), pad(7*1), &
21213 : pac(7*2), prim(7*1*2*1), scale
21214 :
21215 : INTEGER :: ma, mb, mc, md, p_index
21216 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21217 :
21218 715 : kbd(1:1*1) = 0.0_dp
21219 715 : kbc(1:1*2) = 0.0_dp
21220 715 : kad(1:7*1) = 0.0_dp
21221 715 : kac(1:7*2) = 0.0_dp
21222 715 : p_index = 0
21223 1430 : DO md = 1, 1
21224 2860 : DO mc = 1, 2
21225 3575 : DO mb = 1, 1
21226 1430 : ks_bd = 0.0_dp
21227 1430 : ks_bc = 0.0_dp
21228 1430 : p_bd = pbd((md - 1)*1 + mb)
21229 1430 : p_bc = pbc((mc - 1)*1 + mb)
21230 11440 : DO ma = 1, 7
21231 10010 : p_index = p_index + 1
21232 10010 : tmp = scale*prim(p_index)
21233 10010 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21234 10010 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21235 10010 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21236 11440 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21237 : END DO
21238 1430 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
21239 2860 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
21240 : END DO
21241 : END DO
21242 : END DO
21243 715 : END SUBROUTINE block_7_1_2_1
21244 : ! **************************************************************************************************
21245 : !> \brief ...
21246 : !> \param md_max ...
21247 : !> \param kbd ...
21248 : !> \param kbc ...
21249 : !> \param kad ...
21250 : !> \param kac ...
21251 : !> \param pbd ...
21252 : !> \param pbc ...
21253 : !> \param pad ...
21254 : !> \param pac ...
21255 : !> \param prim ...
21256 : !> \param scale ...
21257 : ! **************************************************************************************************
21258 2425 : SUBROUTINE block_7_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21259 : INTEGER :: md_max
21260 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(7*md_max), kac(7*2), pbd(1*md_max), pbc(1*2), &
21261 : pad(7*md_max), pac(7*2), prim(7*1*2*md_max), scale
21262 :
21263 : INTEGER :: ma, mb, mc, md, p_index
21264 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21265 :
21266 12922 : kbd(1:1*md_max) = 0.0_dp
21267 2425 : kbc(1:1*2) = 0.0_dp
21268 75904 : kad(1:7*md_max) = 0.0_dp
21269 2425 : kac(1:7*2) = 0.0_dp
21270 2425 : p_index = 0
21271 12922 : DO md = 1, md_max
21272 33916 : DO mc = 1, 2
21273 52485 : DO mb = 1, 1
21274 20994 : ks_bd = 0.0_dp
21275 20994 : ks_bc = 0.0_dp
21276 20994 : p_bd = pbd((md - 1)*1 + mb)
21277 20994 : p_bc = pbc((mc - 1)*1 + mb)
21278 167952 : DO ma = 1, 7
21279 146958 : p_index = p_index + 1
21280 146958 : tmp = scale*prim(p_index)
21281 146958 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21282 146958 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21283 146958 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21284 167952 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21285 : END DO
21286 20994 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
21287 41988 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
21288 : END DO
21289 : END DO
21290 : END DO
21291 2425 : END SUBROUTINE block_7_1_2
21292 : ! **************************************************************************************************
21293 : !> \brief ...
21294 : !> \param mc_max ...
21295 : !> \param md_max ...
21296 : !> \param kbd ...
21297 : !> \param kbc ...
21298 : !> \param kad ...
21299 : !> \param kac ...
21300 : !> \param pbd ...
21301 : !> \param pbc ...
21302 : !> \param pad ...
21303 : !> \param pac ...
21304 : !> \param prim ...
21305 : !> \param scale ...
21306 : ! **************************************************************************************************
21307 98961 : SUBROUTINE block_7_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21308 : INTEGER :: mc_max, md_max
21309 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(7*md_max), kac(7*mc_max), pbd(1*md_max), &
21310 : pbc(1*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*1*mc_max*md_max), scale
21311 :
21312 : INTEGER :: ma, mb, mc, md, p_index
21313 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21314 :
21315 370965 : kbd(1:1*md_max) = 0.0_dp
21316 511608 : kbc(1:1*mc_max) = 0.0_dp
21317 2002989 : kad(1:7*md_max) = 0.0_dp
21318 2987490 : kac(1:7*mc_max) = 0.0_dp
21319 : p_index = 0
21320 370965 : DO md = 1, md_max
21321 1528281 : DO mc = 1, mc_max
21322 2586636 : DO mb = 1, 1
21323 1157316 : ks_bd = 0.0_dp
21324 1157316 : ks_bc = 0.0_dp
21325 1157316 : p_bd = pbd((md - 1)*1 + mb)
21326 1157316 : p_bc = pbc((mc - 1)*1 + mb)
21327 9258528 : DO ma = 1, 7
21328 8101212 : p_index = p_index + 1
21329 8101212 : tmp = scale*prim(p_index)
21330 8101212 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21331 8101212 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21332 8101212 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21333 9258528 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21334 : END DO
21335 1157316 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
21336 2314632 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
21337 : END DO
21338 : END DO
21339 : END DO
21340 98961 : END SUBROUTINE block_7_1
21341 : ! **************************************************************************************************
21342 : !> \brief ...
21343 : !> \param kbd ...
21344 : !> \param kbc ...
21345 : !> \param kad ...
21346 : !> \param kac ...
21347 : !> \param pbd ...
21348 : !> \param pbc ...
21349 : !> \param pad ...
21350 : !> \param pac ...
21351 : !> \param prim ...
21352 : !> \param scale ...
21353 : ! **************************************************************************************************
21354 738 : SUBROUTINE block_7_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21355 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(7*1), kac(7*1), &
21356 : pbd(2*1), pbc(2*1), pad(7*1), &
21357 : pac(7*1), prim(7*2*1*1), scale
21358 :
21359 : INTEGER :: ma, mb, mc, md, p_index
21360 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21361 :
21362 738 : kbd(1:2*1) = 0.0_dp
21363 738 : kbc(1:2*1) = 0.0_dp
21364 738 : kad(1:7*1) = 0.0_dp
21365 738 : kac(1:7*1) = 0.0_dp
21366 738 : p_index = 0
21367 1476 : DO md = 1, 1
21368 2214 : DO mc = 1, 1
21369 2952 : DO mb = 1, 2
21370 1476 : ks_bd = 0.0_dp
21371 1476 : ks_bc = 0.0_dp
21372 1476 : p_bd = pbd((md - 1)*2 + mb)
21373 1476 : p_bc = pbc((mc - 1)*2 + mb)
21374 11808 : DO ma = 1, 7
21375 10332 : p_index = p_index + 1
21376 10332 : tmp = scale*prim(p_index)
21377 10332 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21378 10332 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21379 10332 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21380 11808 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21381 : END DO
21382 1476 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
21383 2214 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
21384 : END DO
21385 : END DO
21386 : END DO
21387 738 : END SUBROUTINE block_7_2_1_1
21388 : ! **************************************************************************************************
21389 : !> \brief ...
21390 : !> \param md_max ...
21391 : !> \param kbd ...
21392 : !> \param kbc ...
21393 : !> \param kad ...
21394 : !> \param kac ...
21395 : !> \param pbd ...
21396 : !> \param pbc ...
21397 : !> \param pad ...
21398 : !> \param pac ...
21399 : !> \param prim ...
21400 : !> \param scale ...
21401 : ! **************************************************************************************************
21402 2474 : SUBROUTINE block_7_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21403 : INTEGER :: md_max
21404 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(7*md_max), kac(7*1), pbd(2*md_max), pbc(2*1), &
21405 : pad(7*md_max), pac(7*1), prim(7*2*1*md_max), scale
21406 :
21407 : INTEGER :: ma, mb, mc, md, p_index
21408 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21409 :
21410 23818 : kbd(1:2*md_max) = 0.0_dp
21411 2474 : kbc(1:2*1) = 0.0_dp
21412 77178 : kad(1:7*md_max) = 0.0_dp
21413 2474 : kac(1:7*1) = 0.0_dp
21414 2474 : p_index = 0
21415 13146 : DO md = 1, md_max
21416 23818 : DO mc = 1, 1
21417 42688 : DO mb = 1, 2
21418 21344 : ks_bd = 0.0_dp
21419 21344 : ks_bc = 0.0_dp
21420 21344 : p_bd = pbd((md - 1)*2 + mb)
21421 21344 : p_bc = pbc((mc - 1)*2 + mb)
21422 170752 : DO ma = 1, 7
21423 149408 : p_index = p_index + 1
21424 149408 : tmp = scale*prim(p_index)
21425 149408 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21426 149408 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21427 149408 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21428 170752 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21429 : END DO
21430 21344 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
21431 32016 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
21432 : END DO
21433 : END DO
21434 : END DO
21435 2474 : END SUBROUTINE block_7_2_1
21436 : ! **************************************************************************************************
21437 : !> \brief ...
21438 : !> \param mc_max ...
21439 : !> \param md_max ...
21440 : !> \param kbd ...
21441 : !> \param kbc ...
21442 : !> \param kad ...
21443 : !> \param kac ...
21444 : !> \param pbd ...
21445 : !> \param pbc ...
21446 : !> \param pad ...
21447 : !> \param pac ...
21448 : !> \param prim ...
21449 : !> \param scale ...
21450 : ! **************************************************************************************************
21451 10841 : SUBROUTINE block_7_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21452 : INTEGER :: mc_max, md_max
21453 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(7*md_max), kac(7*mc_max), pbd(2*md_max), &
21454 : pbc(2*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*2*mc_max*md_max), scale
21455 :
21456 : INTEGER :: ma, mb, mc, md, p_index
21457 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21458 :
21459 87489 : kbd(1:2*md_max) = 0.0_dp
21460 104233 : kbc(1:2*mc_max) = 0.0_dp
21461 279109 : kad(1:7*md_max) = 0.0_dp
21462 337713 : kac(1:7*mc_max) = 0.0_dp
21463 : p_index = 0
21464 49165 : DO md = 1, md_max
21465 214690 : DO mc = 1, mc_max
21466 534899 : DO mb = 1, 2
21467 331050 : ks_bd = 0.0_dp
21468 331050 : ks_bc = 0.0_dp
21469 331050 : p_bd = pbd((md - 1)*2 + mb)
21470 331050 : p_bc = pbc((mc - 1)*2 + mb)
21471 2648400 : DO ma = 1, 7
21472 2317350 : p_index = p_index + 1
21473 2317350 : tmp = scale*prim(p_index)
21474 2317350 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21475 2317350 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21476 2317350 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21477 2648400 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21478 : END DO
21479 331050 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
21480 496575 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
21481 : END DO
21482 : END DO
21483 : END DO
21484 10841 : END SUBROUTINE block_7_2
21485 : ! **************************************************************************************************
21486 : !> \brief ...
21487 : !> \param mc_max ...
21488 : !> \param md_max ...
21489 : !> \param kbd ...
21490 : !> \param kbc ...
21491 : !> \param kad ...
21492 : !> \param kac ...
21493 : !> \param pbd ...
21494 : !> \param pbc ...
21495 : !> \param pad ...
21496 : !> \param pac ...
21497 : !> \param prim ...
21498 : !> \param scale ...
21499 : ! **************************************************************************************************
21500 107528 : SUBROUTINE block_7_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21501 : INTEGER :: mc_max, md_max
21502 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(7*md_max), kac(7*mc_max), pbd(3*md_max), &
21503 : pbc(3*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*3*mc_max*md_max), scale
21504 :
21505 : INTEGER :: ma, mb, mc, md, p_index
21506 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21507 :
21508 1080038 : kbd(1:3*md_max) = 0.0_dp
21509 1134101 : kbc(1:3*mc_max) = 0.0_dp
21510 2376718 : kad(1:7*md_max) = 0.0_dp
21511 2502865 : kac(1:7*mc_max) = 0.0_dp
21512 : p_index = 0
21513 431698 : DO md = 1, md_max
21514 1489321 : DO mc = 1, mc_max
21515 4554662 : DO mb = 1, 3
21516 3172869 : ks_bd = 0.0_dp
21517 3172869 : ks_bc = 0.0_dp
21518 3172869 : p_bd = pbd((md - 1)*3 + mb)
21519 3172869 : p_bc = pbc((mc - 1)*3 + mb)
21520 25382952 : DO ma = 1, 7
21521 22210083 : p_index = p_index + 1
21522 22210083 : tmp = scale*prim(p_index)
21523 22210083 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21524 22210083 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21525 22210083 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21526 25382952 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21527 : END DO
21528 3172869 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
21529 4230492 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
21530 : END DO
21531 : END DO
21532 : END DO
21533 107528 : END SUBROUTINE block_7_3
21534 : ! **************************************************************************************************
21535 : !> \brief ...
21536 : !> \param mc_max ...
21537 : !> \param md_max ...
21538 : !> \param kbd ...
21539 : !> \param kbc ...
21540 : !> \param kad ...
21541 : !> \param kac ...
21542 : !> \param pbd ...
21543 : !> \param pbc ...
21544 : !> \param pad ...
21545 : !> \param pac ...
21546 : !> \param prim ...
21547 : !> \param scale ...
21548 : ! **************************************************************************************************
21549 8042 : SUBROUTINE block_7_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21550 : INTEGER :: mc_max, md_max
21551 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(7*md_max), kac(7*mc_max), pbd(4*md_max), &
21552 : pbc(4*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*4*mc_max*md_max), scale
21553 :
21554 : INTEGER :: ma, mb, mc, md, p_index
21555 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21556 :
21557 148250 : kbd(1:4*md_max) = 0.0_dp
21558 148726 : kbc(1:4*mc_max) = 0.0_dp
21559 253406 : kad(1:7*md_max) = 0.0_dp
21560 254239 : kac(1:7*mc_max) = 0.0_dp
21561 : p_index = 0
21562 43094 : DO md = 1, md_max
21563 196891 : DO mc = 1, mc_max
21564 804037 : DO mb = 1, 4
21565 615188 : ks_bd = 0.0_dp
21566 615188 : ks_bc = 0.0_dp
21567 615188 : p_bd = pbd((md - 1)*4 + mb)
21568 615188 : p_bc = pbc((mc - 1)*4 + mb)
21569 4921504 : DO ma = 1, 7
21570 4306316 : p_index = p_index + 1
21571 4306316 : tmp = scale*prim(p_index)
21572 4306316 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21573 4306316 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21574 4306316 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21575 4921504 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21576 : END DO
21577 615188 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
21578 768985 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
21579 : END DO
21580 : END DO
21581 : END DO
21582 8042 : END SUBROUTINE block_7_4
21583 : ! **************************************************************************************************
21584 : !> \brief ...
21585 : !> \param mc_max ...
21586 : !> \param md_max ...
21587 : !> \param kbd ...
21588 : !> \param kbc ...
21589 : !> \param kad ...
21590 : !> \param kac ...
21591 : !> \param pbd ...
21592 : !> \param pbc ...
21593 : !> \param pad ...
21594 : !> \param pac ...
21595 : !> \param prim ...
21596 : !> \param scale ...
21597 : ! **************************************************************************************************
21598 55460 : SUBROUTINE block_7_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21599 : INTEGER :: mc_max, md_max
21600 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(7*md_max), kac(7*mc_max), pbd(5*md_max), &
21601 : pbc(5*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*5*mc_max*md_max), scale
21602 :
21603 : INTEGER :: ma, mb, mc, md, p_index
21604 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21605 :
21606 1031650 : kbd(1:5*md_max) = 0.0_dp
21607 1034435 : kbc(1:5*mc_max) = 0.0_dp
21608 1422126 : kad(1:7*md_max) = 0.0_dp
21609 1426025 : kac(1:7*mc_max) = 0.0_dp
21610 : p_index = 0
21611 250698 : DO md = 1, md_max
21612 947519 : DO mc = 1, mc_max
21613 4376164 : DO mb = 1, 5
21614 3484105 : ks_bd = 0.0_dp
21615 3484105 : ks_bc = 0.0_dp
21616 3484105 : p_bd = pbd((md - 1)*5 + mb)
21617 3484105 : p_bc = pbc((mc - 1)*5 + mb)
21618 27872840 : DO ma = 1, 7
21619 24388735 : p_index = p_index + 1
21620 24388735 : tmp = scale*prim(p_index)
21621 24388735 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21622 24388735 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21623 24388735 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21624 27872840 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21625 : END DO
21626 3484105 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
21627 4180926 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
21628 : END DO
21629 : END DO
21630 : END DO
21631 55460 : END SUBROUTINE block_7_5
21632 : ! **************************************************************************************************
21633 : !> \brief ...
21634 : !> \param mc_max ...
21635 : !> \param md_max ...
21636 : !> \param kbd ...
21637 : !> \param kbc ...
21638 : !> \param kad ...
21639 : !> \param kac ...
21640 : !> \param pbd ...
21641 : !> \param pbc ...
21642 : !> \param pad ...
21643 : !> \param pac ...
21644 : !> \param prim ...
21645 : !> \param scale ...
21646 : ! **************************************************************************************************
21647 112 : SUBROUTINE block_7_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21648 : INTEGER :: mc_max, md_max
21649 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(7*md_max), kac(7*mc_max), pbd(6*md_max), &
21650 : pbc(6*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*6*mc_max*md_max), scale
21651 :
21652 : INTEGER :: ma, mb, mc, md, p_index
21653 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21654 :
21655 4516 : kbd(1:6*md_max) = 0.0_dp
21656 3406 : kbc(1:6*mc_max) = 0.0_dp
21657 5250 : kad(1:7*md_max) = 0.0_dp
21658 3955 : kac(1:7*mc_max) = 0.0_dp
21659 : p_index = 0
21660 846 : DO md = 1, md_max
21661 4668 : DO mc = 1, mc_max
21662 27488 : DO mb = 1, 6
21663 22932 : ks_bd = 0.0_dp
21664 22932 : ks_bc = 0.0_dp
21665 22932 : p_bd = pbd((md - 1)*6 + mb)
21666 22932 : p_bc = pbc((mc - 1)*6 + mb)
21667 183456 : DO ma = 1, 7
21668 160524 : p_index = p_index + 1
21669 160524 : tmp = scale*prim(p_index)
21670 160524 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21671 160524 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21672 160524 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21673 183456 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21674 : END DO
21675 22932 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
21676 26754 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
21677 : END DO
21678 : END DO
21679 : END DO
21680 112 : END SUBROUTINE block_7_6
21681 : ! **************************************************************************************************
21682 : !> \brief ...
21683 : !> \param mc_max ...
21684 : !> \param md_max ...
21685 : !> \param kbd ...
21686 : !> \param kbc ...
21687 : !> \param kad ...
21688 : !> \param kac ...
21689 : !> \param pbd ...
21690 : !> \param pbc ...
21691 : !> \param pad ...
21692 : !> \param pac ...
21693 : !> \param prim ...
21694 : !> \param scale ...
21695 : ! **************************************************************************************************
21696 33242 : SUBROUTINE block_7_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21697 : INTEGER :: mc_max, md_max
21698 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(7*md_max), kac(7*mc_max), pbd(7*md_max), &
21699 : pbc(7*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*7*mc_max*md_max), scale
21700 :
21701 : INTEGER :: ma, mb, mc, md, p_index
21702 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21703 :
21704 849512 : kbd(1:7*md_max) = 0.0_dp
21705 847447 : kbc(1:7*mc_max) = 0.0_dp
21706 849512 : kad(1:7*md_max) = 0.0_dp
21707 847447 : kac(1:7*mc_max) = 0.0_dp
21708 : p_index = 0
21709 149852 : DO md = 1, md_max
21710 563000 : DO mc = 1, mc_max
21711 3421794 : DO mb = 1, 7
21712 2892036 : ks_bd = 0.0_dp
21713 2892036 : ks_bc = 0.0_dp
21714 2892036 : p_bd = pbd((md - 1)*7 + mb)
21715 2892036 : p_bc = pbc((mc - 1)*7 + mb)
21716 23136288 : DO ma = 1, 7
21717 20244252 : p_index = p_index + 1
21718 20244252 : tmp = scale*prim(p_index)
21719 20244252 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21720 20244252 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21721 20244252 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21722 23136288 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21723 : END DO
21724 2892036 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
21725 3305184 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
21726 : END DO
21727 : END DO
21728 : END DO
21729 33242 : END SUBROUTINE block_7_7
21730 : ! **************************************************************************************************
21731 : !> \brief ...
21732 : !> \param mc_max ...
21733 : !> \param md_max ...
21734 : !> \param kbd ...
21735 : !> \param kbc ...
21736 : !> \param kad ...
21737 : !> \param kac ...
21738 : !> \param pbd ...
21739 : !> \param pbc ...
21740 : !> \param pad ...
21741 : !> \param pac ...
21742 : !> \param prim ...
21743 : !> \param scale ...
21744 : ! **************************************************************************************************
21745 196 : SUBROUTINE block_7_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21746 : INTEGER :: mc_max, md_max
21747 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(7*md_max), kac(7*mc_max), pbd(9*md_max), &
21748 : pbc(9*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*9*mc_max*md_max), scale
21749 :
21750 : INTEGER :: ma, mb, mc, md, p_index
21751 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21752 :
21753 13498 : kbd(1:9*md_max) = 0.0_dp
21754 9304 : kbc(1:9*mc_max) = 0.0_dp
21755 10542 : kad(1:7*md_max) = 0.0_dp
21756 7280 : kac(1:7*mc_max) = 0.0_dp
21757 : p_index = 0
21758 1674 : DO md = 1, md_max
21759 10094 : DO mc = 1, mc_max
21760 85678 : DO mb = 1, 9
21761 75780 : ks_bd = 0.0_dp
21762 75780 : ks_bc = 0.0_dp
21763 75780 : p_bd = pbd((md - 1)*9 + mb)
21764 75780 : p_bc = pbc((mc - 1)*9 + mb)
21765 606240 : DO ma = 1, 7
21766 530460 : p_index = p_index + 1
21767 530460 : tmp = scale*prim(p_index)
21768 530460 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21769 530460 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21770 530460 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21771 606240 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21772 : END DO
21773 75780 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
21774 84200 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
21775 : END DO
21776 : END DO
21777 : END DO
21778 196 : END SUBROUTINE block_7_9
21779 : ! **************************************************************************************************
21780 : !> \brief ...
21781 : !> \param mc_max ...
21782 : !> \param md_max ...
21783 : !> \param kbd ...
21784 : !> \param kbc ...
21785 : !> \param kad ...
21786 : !> \param kac ...
21787 : !> \param pbd ...
21788 : !> \param pbc ...
21789 : !> \param pad ...
21790 : !> \param pac ...
21791 : !> \param prim ...
21792 : !> \param scale ...
21793 : ! **************************************************************************************************
21794 240 : SUBROUTINE block_7_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21795 : INTEGER :: mc_max, md_max
21796 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(7*md_max), kac(7*mc_max), &
21797 : pbd(10*md_max), pbc(10*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*10*mc_max*md_max), &
21798 : scale
21799 :
21800 : INTEGER :: ma, mb, mc, md, p_index
21801 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21802 :
21803 18640 : kbd(1:10*md_max) = 0.0_dp
21804 13050 : kbc(1:10*mc_max) = 0.0_dp
21805 13120 : kad(1:7*md_max) = 0.0_dp
21806 9207 : kac(1:7*mc_max) = 0.0_dp
21807 : p_index = 0
21808 2080 : DO md = 1, md_max
21809 12759 : DO mc = 1, mc_max
21810 119309 : DO mb = 1, 10
21811 106790 : ks_bd = 0.0_dp
21812 106790 : ks_bc = 0.0_dp
21813 106790 : p_bd = pbd((md - 1)*10 + mb)
21814 106790 : p_bc = pbc((mc - 1)*10 + mb)
21815 854320 : DO ma = 1, 7
21816 747530 : p_index = p_index + 1
21817 747530 : tmp = scale*prim(p_index)
21818 747530 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21819 747530 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21820 747530 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21821 854320 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21822 : END DO
21823 106790 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
21824 117469 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
21825 : END DO
21826 : END DO
21827 : END DO
21828 240 : END SUBROUTINE block_7_10
21829 : ! **************************************************************************************************
21830 : !> \brief ...
21831 : !> \param mc_max ...
21832 : !> \param md_max ...
21833 : !> \param kbd ...
21834 : !> \param kbc ...
21835 : !> \param kad ...
21836 : !> \param kac ...
21837 : !> \param pbd ...
21838 : !> \param pbc ...
21839 : !> \param pad ...
21840 : !> \param pac ...
21841 : !> \param prim ...
21842 : !> \param scale ...
21843 : ! **************************************************************************************************
21844 279 : SUBROUTINE block_7_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21845 : INTEGER :: mc_max, md_max
21846 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(7*md_max), kac(7*mc_max), &
21847 : pbd(11*md_max), pbc(11*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*11*mc_max*md_max), &
21848 : scale
21849 :
21850 : INTEGER :: ma, mb, mc, md, p_index
21851 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21852 :
21853 24545 : kbd(1:11*md_max) = 0.0_dp
21854 17274 : kbc(1:11*mc_max) = 0.0_dp
21855 15721 : kad(1:7*md_max) = 0.0_dp
21856 11094 : kac(1:7*mc_max) = 0.0_dp
21857 : p_index = 0
21858 2485 : DO md = 1, md_max
21859 15631 : DO mc = 1, mc_max
21860 159958 : DO mb = 1, 11
21861 144606 : ks_bd = 0.0_dp
21862 144606 : ks_bc = 0.0_dp
21863 144606 : p_bd = pbd((md - 1)*11 + mb)
21864 144606 : p_bc = pbc((mc - 1)*11 + mb)
21865 1156848 : DO ma = 1, 7
21866 1012242 : p_index = p_index + 1
21867 1012242 : tmp = scale*prim(p_index)
21868 1012242 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21869 1012242 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21870 1012242 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21871 1156848 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21872 : END DO
21873 144606 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
21874 157752 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
21875 : END DO
21876 : END DO
21877 : END DO
21878 279 : END SUBROUTINE block_7_11
21879 : ! **************************************************************************************************
21880 : !> \brief ...
21881 : !> \param mc_max ...
21882 : !> \param md_max ...
21883 : !> \param kbd ...
21884 : !> \param kbc ...
21885 : !> \param kad ...
21886 : !> \param kac ...
21887 : !> \param pbd ...
21888 : !> \param pbc ...
21889 : !> \param pad ...
21890 : !> \param pac ...
21891 : !> \param prim ...
21892 : !> \param scale ...
21893 : ! **************************************************************************************************
21894 276 : SUBROUTINE block_7_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21895 : INTEGER :: mc_max, md_max
21896 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(7*md_max), kac(7*mc_max), &
21897 : pbd(15*md_max), pbc(15*mc_max), pad(7*md_max), pac(7*mc_max), prim(7*15*mc_max*md_max), &
21898 : scale
21899 :
21900 : INTEGER :: ma, mb, mc, md, p_index
21901 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21902 :
21903 33381 : kbd(1:15*md_max) = 0.0_dp
21904 24036 : kbc(1:15*mc_max) = 0.0_dp
21905 15725 : kad(1:7*md_max) = 0.0_dp
21906 11364 : kac(1:7*mc_max) = 0.0_dp
21907 : p_index = 0
21908 2483 : DO md = 1, md_max
21909 16136 : DO mc = 1, mc_max
21910 220655 : DO mb = 1, 15
21911 204795 : ks_bd = 0.0_dp
21912 204795 : ks_bc = 0.0_dp
21913 204795 : p_bd = pbd((md - 1)*15 + mb)
21914 204795 : p_bc = pbc((mc - 1)*15 + mb)
21915 1638360 : DO ma = 1, 7
21916 1433565 : p_index = p_index + 1
21917 1433565 : tmp = scale*prim(p_index)
21918 1433565 : ks_bc = ks_bc + tmp*pad((md - 1)*7 + ma)
21919 1433565 : ks_bd = ks_bd + tmp*pac((mc - 1)*7 + ma)
21920 1433565 : kad((md - 1)*7 + ma) = kad((md - 1)*7 + ma) - tmp*p_bc
21921 1638360 : kac((mc - 1)*7 + ma) = kac((mc - 1)*7 + ma) - tmp*p_bd
21922 : END DO
21923 204795 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
21924 218448 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
21925 : END DO
21926 : END DO
21927 : END DO
21928 276 : END SUBROUTINE block_7_15
21929 : ! **************************************************************************************************
21930 : !> \brief ...
21931 : !> \param kbd ...
21932 : !> \param kbc ...
21933 : !> \param kad ...
21934 : !> \param kac ...
21935 : !> \param pbd ...
21936 : !> \param pbc ...
21937 : !> \param pad ...
21938 : !> \param pac ...
21939 : !> \param prim ...
21940 : !> \param scale ...
21941 : ! **************************************************************************************************
21942 11 : SUBROUTINE block_9_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21943 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(9*1), kac(9*1), &
21944 : pbd(1*1), pbc(1*1), pad(9*1), &
21945 : pac(9*1), prim(9*1*1*1), scale
21946 :
21947 : INTEGER :: ma, mb, mc, md, p_index
21948 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21949 :
21950 11 : kbd(1:1*1) = 0.0_dp
21951 11 : kbc(1:1*1) = 0.0_dp
21952 11 : kad(1:9*1) = 0.0_dp
21953 11 : kac(1:9*1) = 0.0_dp
21954 11 : p_index = 0
21955 22 : DO md = 1, 1
21956 33 : DO mc = 1, 1
21957 33 : DO mb = 1, 1
21958 11 : ks_bd = 0.0_dp
21959 11 : ks_bc = 0.0_dp
21960 11 : p_bd = pbd((md - 1)*1 + mb)
21961 11 : p_bc = pbc((mc - 1)*1 + mb)
21962 110 : DO ma = 1, 9
21963 99 : p_index = p_index + 1
21964 99 : tmp = scale*prim(p_index)
21965 99 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
21966 99 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
21967 99 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
21968 110 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
21969 : END DO
21970 11 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
21971 22 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
21972 : END DO
21973 : END DO
21974 : END DO
21975 11 : END SUBROUTINE block_9_1_1_1
21976 : ! **************************************************************************************************
21977 : !> \brief ...
21978 : !> \param kbd ...
21979 : !> \param kbc ...
21980 : !> \param kad ...
21981 : !> \param kac ...
21982 : !> \param pbd ...
21983 : !> \param pbc ...
21984 : !> \param pad ...
21985 : !> \param pac ...
21986 : !> \param prim ...
21987 : !> \param scale ...
21988 : ! **************************************************************************************************
21989 4 : SUBROUTINE block_9_1_1_2(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
21990 : REAL(KIND=dp) :: kbd(1*2), kbc(1*1), kad(9*2), kac(9*1), &
21991 : pbd(1*2), pbc(1*1), pad(9*2), &
21992 : pac(9*1), prim(9*1*1*2), scale
21993 :
21994 : INTEGER :: ma, mb, mc, md, p_index
21995 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
21996 :
21997 4 : kbd(1:1*2) = 0.0_dp
21998 4 : kbc(1:1*1) = 0.0_dp
21999 4 : kad(1:9*2) = 0.0_dp
22000 4 : kac(1:9*1) = 0.0_dp
22001 4 : p_index = 0
22002 12 : DO md = 1, 2
22003 20 : DO mc = 1, 1
22004 24 : DO mb = 1, 1
22005 8 : ks_bd = 0.0_dp
22006 8 : ks_bc = 0.0_dp
22007 8 : p_bd = pbd((md - 1)*1 + mb)
22008 8 : p_bc = pbc((mc - 1)*1 + mb)
22009 80 : DO ma = 1, 9
22010 72 : p_index = p_index + 1
22011 72 : tmp = scale*prim(p_index)
22012 72 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22013 72 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22014 72 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22015 80 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22016 : END DO
22017 8 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22018 16 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22019 : END DO
22020 : END DO
22021 : END DO
22022 4 : END SUBROUTINE block_9_1_1_2
22023 : ! **************************************************************************************************
22024 : !> \brief ...
22025 : !> \param md_max ...
22026 : !> \param kbd ...
22027 : !> \param kbc ...
22028 : !> \param kad ...
22029 : !> \param kac ...
22030 : !> \param pbd ...
22031 : !> \param pbc ...
22032 : !> \param pad ...
22033 : !> \param pac ...
22034 : !> \param prim ...
22035 : !> \param scale ...
22036 : ! **************************************************************************************************
22037 41 : SUBROUTINE block_9_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22038 : INTEGER :: md_max
22039 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(9*md_max), kac(9*1), pbd(1*md_max), pbc(1*1), &
22040 : pad(9*md_max), pac(9*1), prim(9*1*1*md_max), scale
22041 :
22042 : INTEGER :: ma, mb, mc, md, p_index
22043 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22044 :
22045 382 : kbd(1:1*md_max) = 0.0_dp
22046 41 : kbc(1:1*1) = 0.0_dp
22047 3110 : kad(1:9*md_max) = 0.0_dp
22048 41 : kac(1:9*1) = 0.0_dp
22049 41 : p_index = 0
22050 382 : DO md = 1, md_max
22051 723 : DO mc = 1, 1
22052 1023 : DO mb = 1, 1
22053 341 : ks_bd = 0.0_dp
22054 341 : ks_bc = 0.0_dp
22055 341 : p_bd = pbd((md - 1)*1 + mb)
22056 341 : p_bc = pbc((mc - 1)*1 + mb)
22057 3410 : DO ma = 1, 9
22058 3069 : p_index = p_index + 1
22059 3069 : tmp = scale*prim(p_index)
22060 3069 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22061 3069 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22062 3069 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22063 3410 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22064 : END DO
22065 341 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22066 682 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22067 : END DO
22068 : END DO
22069 : END DO
22070 41 : END SUBROUTINE block_9_1_1
22071 : ! **************************************************************************************************
22072 : !> \brief ...
22073 : !> \param kbd ...
22074 : !> \param kbc ...
22075 : !> \param kad ...
22076 : !> \param kac ...
22077 : !> \param pbd ...
22078 : !> \param pbc ...
22079 : !> \param pad ...
22080 : !> \param pac ...
22081 : !> \param prim ...
22082 : !> \param scale ...
22083 : ! **************************************************************************************************
22084 3 : SUBROUTINE block_9_1_2_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22085 : REAL(KIND=dp) :: kbd(1*1), kbc(1*2), kad(9*1), kac(9*2), &
22086 : pbd(1*1), pbc(1*2), pad(9*1), &
22087 : pac(9*2), prim(9*1*2*1), scale
22088 :
22089 : INTEGER :: ma, mb, mc, md, p_index
22090 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22091 :
22092 3 : kbd(1:1*1) = 0.0_dp
22093 3 : kbc(1:1*2) = 0.0_dp
22094 3 : kad(1:9*1) = 0.0_dp
22095 3 : kac(1:9*2) = 0.0_dp
22096 3 : p_index = 0
22097 6 : DO md = 1, 1
22098 12 : DO mc = 1, 2
22099 15 : DO mb = 1, 1
22100 6 : ks_bd = 0.0_dp
22101 6 : ks_bc = 0.0_dp
22102 6 : p_bd = pbd((md - 1)*1 + mb)
22103 6 : p_bc = pbc((mc - 1)*1 + mb)
22104 60 : DO ma = 1, 9
22105 54 : p_index = p_index + 1
22106 54 : tmp = scale*prim(p_index)
22107 54 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22108 54 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22109 54 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22110 60 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22111 : END DO
22112 6 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22113 12 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22114 : END DO
22115 : END DO
22116 : END DO
22117 3 : END SUBROUTINE block_9_1_2_1
22118 : ! **************************************************************************************************
22119 : !> \brief ...
22120 : !> \param md_max ...
22121 : !> \param kbd ...
22122 : !> \param kbc ...
22123 : !> \param kad ...
22124 : !> \param kac ...
22125 : !> \param pbd ...
22126 : !> \param pbc ...
22127 : !> \param pad ...
22128 : !> \param pac ...
22129 : !> \param prim ...
22130 : !> \param scale ...
22131 : ! **************************************************************************************************
22132 26 : SUBROUTINE block_9_1_2(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22133 : INTEGER :: md_max
22134 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*2), kad(9*md_max), kac(9*2), pbd(1*md_max), pbc(1*2), &
22135 : pad(9*md_max), pac(9*2), prim(9*1*2*md_max), scale
22136 :
22137 : INTEGER :: ma, mb, mc, md, p_index
22138 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22139 :
22140 221 : kbd(1:1*md_max) = 0.0_dp
22141 26 : kbc(1:1*2) = 0.0_dp
22142 1781 : kad(1:9*md_max) = 0.0_dp
22143 26 : kac(1:9*2) = 0.0_dp
22144 26 : p_index = 0
22145 221 : DO md = 1, md_max
22146 611 : DO mc = 1, 2
22147 975 : DO mb = 1, 1
22148 390 : ks_bd = 0.0_dp
22149 390 : ks_bc = 0.0_dp
22150 390 : p_bd = pbd((md - 1)*1 + mb)
22151 390 : p_bc = pbc((mc - 1)*1 + mb)
22152 3900 : DO ma = 1, 9
22153 3510 : p_index = p_index + 1
22154 3510 : tmp = scale*prim(p_index)
22155 3510 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22156 3510 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22157 3510 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22158 3900 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22159 : END DO
22160 390 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22161 780 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22162 : END DO
22163 : END DO
22164 : END DO
22165 26 : END SUBROUTINE block_9_1_2
22166 : ! **************************************************************************************************
22167 : !> \brief ...
22168 : !> \param mc_max ...
22169 : !> \param md_max ...
22170 : !> \param kbd ...
22171 : !> \param kbc ...
22172 : !> \param kad ...
22173 : !> \param kac ...
22174 : !> \param pbd ...
22175 : !> \param pbc ...
22176 : !> \param pad ...
22177 : !> \param pac ...
22178 : !> \param prim ...
22179 : !> \param scale ...
22180 : ! **************************************************************************************************
22181 314 : SUBROUTINE block_9_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22182 : INTEGER :: mc_max, md_max
22183 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(9*md_max), kac(9*mc_max), pbd(1*md_max), &
22184 : pbc(1*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*1*mc_max*md_max), scale
22185 :
22186 : INTEGER :: ma, mb, mc, md, p_index
22187 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22188 :
22189 2813 : kbd(1:1*md_max) = 0.0_dp
22190 2792 : kbc(1:1*mc_max) = 0.0_dp
22191 22805 : kad(1:9*md_max) = 0.0_dp
22192 22616 : kac(1:9*mc_max) = 0.0_dp
22193 : p_index = 0
22194 2813 : DO md = 1, md_max
22195 23009 : DO mc = 1, mc_max
22196 42891 : DO mb = 1, 1
22197 20196 : ks_bd = 0.0_dp
22198 20196 : ks_bc = 0.0_dp
22199 20196 : p_bd = pbd((md - 1)*1 + mb)
22200 20196 : p_bc = pbc((mc - 1)*1 + mb)
22201 201960 : DO ma = 1, 9
22202 181764 : p_index = p_index + 1
22203 181764 : tmp = scale*prim(p_index)
22204 181764 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22205 181764 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22206 181764 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22207 201960 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22208 : END DO
22209 20196 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22210 40392 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22211 : END DO
22212 : END DO
22213 : END DO
22214 314 : END SUBROUTINE block_9_1
22215 : ! **************************************************************************************************
22216 : !> \brief ...
22217 : !> \param kbd ...
22218 : !> \param kbc ...
22219 : !> \param kad ...
22220 : !> \param kac ...
22221 : !> \param pbd ...
22222 : !> \param pbc ...
22223 : !> \param pad ...
22224 : !> \param pac ...
22225 : !> \param prim ...
22226 : !> \param scale ...
22227 : ! **************************************************************************************************
22228 2 : SUBROUTINE block_9_2_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22229 : REAL(KIND=dp) :: kbd(2*1), kbc(2*1), kad(9*1), kac(9*1), &
22230 : pbd(2*1), pbc(2*1), pad(9*1), &
22231 : pac(9*1), prim(9*2*1*1), scale
22232 :
22233 : INTEGER :: ma, mb, mc, md, p_index
22234 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22235 :
22236 2 : kbd(1:2*1) = 0.0_dp
22237 2 : kbc(1:2*1) = 0.0_dp
22238 2 : kad(1:9*1) = 0.0_dp
22239 2 : kac(1:9*1) = 0.0_dp
22240 2 : p_index = 0
22241 4 : DO md = 1, 1
22242 6 : DO mc = 1, 1
22243 8 : DO mb = 1, 2
22244 4 : ks_bd = 0.0_dp
22245 4 : ks_bc = 0.0_dp
22246 4 : p_bd = pbd((md - 1)*2 + mb)
22247 4 : p_bc = pbc((mc - 1)*2 + mb)
22248 40 : DO ma = 1, 9
22249 36 : p_index = p_index + 1
22250 36 : tmp = scale*prim(p_index)
22251 36 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22252 36 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22253 36 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22254 40 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22255 : END DO
22256 4 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
22257 6 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
22258 : END DO
22259 : END DO
22260 : END DO
22261 2 : END SUBROUTINE block_9_2_1_1
22262 : ! **************************************************************************************************
22263 : !> \brief ...
22264 : !> \param md_max ...
22265 : !> \param kbd ...
22266 : !> \param kbc ...
22267 : !> \param kad ...
22268 : !> \param kac ...
22269 : !> \param pbd ...
22270 : !> \param pbc ...
22271 : !> \param pad ...
22272 : !> \param pac ...
22273 : !> \param prim ...
22274 : !> \param scale ...
22275 : ! **************************************************************************************************
22276 10 : SUBROUTINE block_9_2_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22277 : INTEGER :: md_max
22278 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*1), kad(9*md_max), kac(9*1), pbd(2*md_max), pbc(2*1), &
22279 : pad(9*md_max), pac(9*1), prim(9*2*1*md_max), scale
22280 :
22281 : INTEGER :: ma, mb, mc, md, p_index
22282 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22283 :
22284 154 : kbd(1:2*md_max) = 0.0_dp
22285 10 : kbc(1:2*1) = 0.0_dp
22286 658 : kad(1:9*md_max) = 0.0_dp
22287 10 : kac(1:9*1) = 0.0_dp
22288 10 : p_index = 0
22289 82 : DO md = 1, md_max
22290 154 : DO mc = 1, 1
22291 288 : DO mb = 1, 2
22292 144 : ks_bd = 0.0_dp
22293 144 : ks_bc = 0.0_dp
22294 144 : p_bd = pbd((md - 1)*2 + mb)
22295 144 : p_bc = pbc((mc - 1)*2 + mb)
22296 1440 : DO ma = 1, 9
22297 1296 : p_index = p_index + 1
22298 1296 : tmp = scale*prim(p_index)
22299 1296 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22300 1296 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22301 1296 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22302 1440 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22303 : END DO
22304 144 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
22305 216 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
22306 : END DO
22307 : END DO
22308 : END DO
22309 10 : END SUBROUTINE block_9_2_1
22310 : ! **************************************************************************************************
22311 : !> \brief ...
22312 : !> \param mc_max ...
22313 : !> \param md_max ...
22314 : !> \param kbd ...
22315 : !> \param kbc ...
22316 : !> \param kad ...
22317 : !> \param kac ...
22318 : !> \param pbd ...
22319 : !> \param pbc ...
22320 : !> \param pad ...
22321 : !> \param pac ...
22322 : !> \param prim ...
22323 : !> \param scale ...
22324 : ! **************************************************************************************************
22325 45 : SUBROUTINE block_9_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22326 : INTEGER :: mc_max, md_max
22327 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(9*md_max), kac(9*mc_max), pbd(2*md_max), &
22328 : pbc(2*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*2*mc_max*md_max), scale
22329 :
22330 : INTEGER :: ma, mb, mc, md, p_index
22331 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22332 :
22333 561 : kbd(1:2*md_max) = 0.0_dp
22334 997 : kbc(1:2*mc_max) = 0.0_dp
22335 2367 : kad(1:9*md_max) = 0.0_dp
22336 4329 : kac(1:9*mc_max) = 0.0_dp
22337 : p_index = 0
22338 303 : DO md = 1, md_max
22339 3110 : DO mc = 1, mc_max
22340 8679 : DO mb = 1, 2
22341 5614 : ks_bd = 0.0_dp
22342 5614 : ks_bc = 0.0_dp
22343 5614 : p_bd = pbd((md - 1)*2 + mb)
22344 5614 : p_bc = pbc((mc - 1)*2 + mb)
22345 56140 : DO ma = 1, 9
22346 50526 : p_index = p_index + 1
22347 50526 : tmp = scale*prim(p_index)
22348 50526 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22349 50526 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22350 50526 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22351 56140 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22352 : END DO
22353 5614 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
22354 8421 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
22355 : END DO
22356 : END DO
22357 : END DO
22358 45 : END SUBROUTINE block_9_2
22359 : ! **************************************************************************************************
22360 : !> \brief ...
22361 : !> \param mc_max ...
22362 : !> \param md_max ...
22363 : !> \param kbd ...
22364 : !> \param kbc ...
22365 : !> \param kad ...
22366 : !> \param kac ...
22367 : !> \param pbd ...
22368 : !> \param pbc ...
22369 : !> \param pad ...
22370 : !> \param pac ...
22371 : !> \param prim ...
22372 : !> \param scale ...
22373 : ! **************************************************************************************************
22374 507 : SUBROUTINE block_9_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22375 : INTEGER :: mc_max, md_max
22376 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(9*md_max), kac(9*mc_max), pbd(3*md_max), &
22377 : pbc(3*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*3*mc_max*md_max), scale
22378 :
22379 : INTEGER :: ma, mb, mc, md, p_index
22380 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22381 :
22382 8148 : kbd(1:3*md_max) = 0.0_dp
22383 9819 : kbc(1:3*mc_max) = 0.0_dp
22384 23430 : kad(1:9*md_max) = 0.0_dp
22385 28443 : kac(1:9*mc_max) = 0.0_dp
22386 : p_index = 0
22387 3054 : DO md = 1, md_max
22388 18992 : DO mc = 1, mc_max
22389 66299 : DO mb = 1, 3
22390 47814 : ks_bd = 0.0_dp
22391 47814 : ks_bc = 0.0_dp
22392 47814 : p_bd = pbd((md - 1)*3 + mb)
22393 47814 : p_bc = pbc((mc - 1)*3 + mb)
22394 478140 : DO ma = 1, 9
22395 430326 : p_index = p_index + 1
22396 430326 : tmp = scale*prim(p_index)
22397 430326 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22398 430326 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22399 430326 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22400 478140 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22401 : END DO
22402 47814 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
22403 63752 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
22404 : END DO
22405 : END DO
22406 : END DO
22407 507 : END SUBROUTINE block_9_3
22408 : ! **************************************************************************************************
22409 : !> \brief ...
22410 : !> \param mc_max ...
22411 : !> \param md_max ...
22412 : !> \param kbd ...
22413 : !> \param kbc ...
22414 : !> \param kad ...
22415 : !> \param kac ...
22416 : !> \param pbd ...
22417 : !> \param pbc ...
22418 : !> \param pad ...
22419 : !> \param pac ...
22420 : !> \param prim ...
22421 : !> \param scale ...
22422 : ! **************************************************************************************************
22423 45 : SUBROUTINE block_9_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22424 : INTEGER :: mc_max, md_max
22425 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(9*md_max), kac(9*mc_max), pbd(4*md_max), &
22426 : pbc(4*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*4*mc_max*md_max), scale
22427 :
22428 : INTEGER :: ma, mb, mc, md, p_index
22429 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22430 :
22431 1233 : kbd(1:4*md_max) = 0.0_dp
22432 1573 : kbc(1:4*mc_max) = 0.0_dp
22433 2718 : kad(1:9*md_max) = 0.0_dp
22434 3483 : kac(1:9*mc_max) = 0.0_dp
22435 : p_index = 0
22436 342 : DO md = 1, md_max
22437 2952 : DO mc = 1, mc_max
22438 13347 : DO mb = 1, 4
22439 10440 : ks_bd = 0.0_dp
22440 10440 : ks_bc = 0.0_dp
22441 10440 : p_bd = pbd((md - 1)*4 + mb)
22442 10440 : p_bc = pbc((mc - 1)*4 + mb)
22443 104400 : DO ma = 1, 9
22444 93960 : p_index = p_index + 1
22445 93960 : tmp = scale*prim(p_index)
22446 93960 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22447 93960 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22448 93960 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22449 104400 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22450 : END DO
22451 10440 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
22452 13050 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
22453 : END DO
22454 : END DO
22455 : END DO
22456 45 : END SUBROUTINE block_9_4
22457 : ! **************************************************************************************************
22458 : !> \brief ...
22459 : !> \param mc_max ...
22460 : !> \param md_max ...
22461 : !> \param kbd ...
22462 : !> \param kbc ...
22463 : !> \param kad ...
22464 : !> \param kac ...
22465 : !> \param pbd ...
22466 : !> \param pbc ...
22467 : !> \param pad ...
22468 : !> \param pac ...
22469 : !> \param prim ...
22470 : !> \param scale ...
22471 : ! **************************************************************************************************
22472 75 : SUBROUTINE block_9_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22473 : INTEGER :: mc_max, md_max
22474 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(9*md_max), kac(9*mc_max), pbd(5*md_max), &
22475 : pbc(5*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*5*mc_max*md_max), scale
22476 :
22477 : INTEGER :: ma, mb, mc, md, p_index
22478 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22479 :
22480 2545 : kbd(1:5*md_max) = 0.0_dp
22481 2315 : kbc(1:5*mc_max) = 0.0_dp
22482 4521 : kad(1:9*md_max) = 0.0_dp
22483 4107 : kac(1:9*mc_max) = 0.0_dp
22484 : p_index = 0
22485 569 : DO md = 1, md_max
22486 3733 : DO mc = 1, mc_max
22487 19478 : DO mb = 1, 5
22488 15820 : ks_bd = 0.0_dp
22489 15820 : ks_bc = 0.0_dp
22490 15820 : p_bd = pbd((md - 1)*5 + mb)
22491 15820 : p_bc = pbc((mc - 1)*5 + mb)
22492 158200 : DO ma = 1, 9
22493 142380 : p_index = p_index + 1
22494 142380 : tmp = scale*prim(p_index)
22495 142380 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22496 142380 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22497 142380 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22498 158200 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22499 : END DO
22500 15820 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
22501 18984 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
22502 : END DO
22503 : END DO
22504 : END DO
22505 75 : END SUBROUTINE block_9_5
22506 : ! **************************************************************************************************
22507 : !> \brief ...
22508 : !> \param mc_max ...
22509 : !> \param md_max ...
22510 : !> \param kbd ...
22511 : !> \param kbc ...
22512 : !> \param kad ...
22513 : !> \param kac ...
22514 : !> \param pbd ...
22515 : !> \param pbc ...
22516 : !> \param pad ...
22517 : !> \param pac ...
22518 : !> \param prim ...
22519 : !> \param scale ...
22520 : ! **************************************************************************************************
22521 76 : SUBROUTINE block_9_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22522 : INTEGER :: mc_max, md_max
22523 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(9*md_max), kac(9*mc_max), pbd(6*md_max), &
22524 : pbc(6*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*6*mc_max*md_max), scale
22525 :
22526 : INTEGER :: ma, mb, mc, md, p_index
22527 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22528 :
22529 3214 : kbd(1:6*md_max) = 0.0_dp
22530 2632 : kbc(1:6*mc_max) = 0.0_dp
22531 4783 : kad(1:9*md_max) = 0.0_dp
22532 3910 : kac(1:9*mc_max) = 0.0_dp
22533 : p_index = 0
22534 599 : DO md = 1, md_max
22535 3760 : DO mc = 1, mc_max
22536 22650 : DO mb = 1, 6
22537 18966 : ks_bd = 0.0_dp
22538 18966 : ks_bc = 0.0_dp
22539 18966 : p_bd = pbd((md - 1)*6 + mb)
22540 18966 : p_bc = pbc((mc - 1)*6 + mb)
22541 189660 : DO ma = 1, 9
22542 170694 : p_index = p_index + 1
22543 170694 : tmp = scale*prim(p_index)
22544 170694 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22545 170694 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22546 170694 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22547 189660 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22548 : END DO
22549 18966 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
22550 22127 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
22551 : END DO
22552 : END DO
22553 : END DO
22554 76 : END SUBROUTINE block_9_6
22555 : ! **************************************************************************************************
22556 : !> \brief ...
22557 : !> \param mc_max ...
22558 : !> \param md_max ...
22559 : !> \param kbd ...
22560 : !> \param kbc ...
22561 : !> \param kad ...
22562 : !> \param kac ...
22563 : !> \param pbd ...
22564 : !> \param pbc ...
22565 : !> \param pad ...
22566 : !> \param pac ...
22567 : !> \param prim ...
22568 : !> \param scale ...
22569 : ! **************************************************************************************************
22570 45 : SUBROUTINE block_9_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22571 : INTEGER :: mc_max, md_max
22572 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(9*md_max), kac(9*mc_max), pbd(7*md_max), &
22573 : pbc(7*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*7*mc_max*md_max), scale
22574 :
22575 : INTEGER :: ma, mb, mc, md, p_index
22576 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22577 :
22578 2789 : kbd(1:7*md_max) = 0.0_dp
22579 2719 : kbc(1:7*mc_max) = 0.0_dp
22580 3573 : kad(1:9*md_max) = 0.0_dp
22581 3483 : kac(1:9*mc_max) = 0.0_dp
22582 : p_index = 0
22583 437 : DO md = 1, md_max
22584 3880 : DO mc = 1, mc_max
22585 27936 : DO mb = 1, 7
22586 24101 : ks_bd = 0.0_dp
22587 24101 : ks_bc = 0.0_dp
22588 24101 : p_bd = pbd((md - 1)*7 + mb)
22589 24101 : p_bc = pbc((mc - 1)*7 + mb)
22590 241010 : DO ma = 1, 9
22591 216909 : p_index = p_index + 1
22592 216909 : tmp = scale*prim(p_index)
22593 216909 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22594 216909 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22595 216909 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22596 241010 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22597 : END DO
22598 24101 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
22599 27544 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
22600 : END DO
22601 : END DO
22602 : END DO
22603 45 : END SUBROUTINE block_9_7
22604 : ! **************************************************************************************************
22605 : !> \brief ...
22606 : !> \param mc_max ...
22607 : !> \param md_max ...
22608 : !> \param kbd ...
22609 : !> \param kbc ...
22610 : !> \param kad ...
22611 : !> \param kac ...
22612 : !> \param pbd ...
22613 : !> \param pbc ...
22614 : !> \param pad ...
22615 : !> \param pac ...
22616 : !> \param prim ...
22617 : !> \param scale ...
22618 : ! **************************************************************************************************
22619 346 : SUBROUTINE block_9_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22620 : INTEGER :: mc_max, md_max
22621 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(9*md_max), kac(9*mc_max), pbd(9*md_max), &
22622 : pbc(9*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*9*mc_max*md_max), scale
22623 :
22624 : INTEGER :: ma, mb, mc, md, p_index
22625 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22626 :
22627 23098 : kbd(1:9*md_max) = 0.0_dp
22628 18202 : kbc(1:9*mc_max) = 0.0_dp
22629 23098 : kad(1:9*md_max) = 0.0_dp
22630 18202 : kac(1:9*mc_max) = 0.0_dp
22631 : p_index = 0
22632 2874 : DO md = 1, md_max
22633 18447 : DO mc = 1, mc_max
22634 158258 : DO mb = 1, 9
22635 140157 : ks_bd = 0.0_dp
22636 140157 : ks_bc = 0.0_dp
22637 140157 : p_bd = pbd((md - 1)*9 + mb)
22638 140157 : p_bc = pbc((mc - 1)*9 + mb)
22639 1401570 : DO ma = 1, 9
22640 1261413 : p_index = p_index + 1
22641 1261413 : tmp = scale*prim(p_index)
22642 1261413 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22643 1261413 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22644 1261413 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22645 1401570 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22646 : END DO
22647 140157 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
22648 155730 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
22649 : END DO
22650 : END DO
22651 : END DO
22652 346 : END SUBROUTINE block_9_9
22653 : ! **************************************************************************************************
22654 : !> \brief ...
22655 : !> \param mc_max ...
22656 : !> \param md_max ...
22657 : !> \param kbd ...
22658 : !> \param kbc ...
22659 : !> \param kad ...
22660 : !> \param kac ...
22661 : !> \param pbd ...
22662 : !> \param pbc ...
22663 : !> \param pad ...
22664 : !> \param pac ...
22665 : !> \param prim ...
22666 : !> \param scale ...
22667 : ! **************************************************************************************************
22668 213 : SUBROUTINE block_9_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22669 : INTEGER :: mc_max, md_max
22670 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(9*md_max), kac(9*mc_max), &
22671 : pbd(10*md_max), pbc(10*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*10*mc_max*md_max), &
22672 : scale
22673 :
22674 : INTEGER :: ma, mb, mc, md, p_index
22675 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22676 :
22677 17083 : kbd(1:10*md_max) = 0.0_dp
22678 13073 : kbc(1:10*mc_max) = 0.0_dp
22679 15396 : kad(1:9*md_max) = 0.0_dp
22680 11787 : kac(1:9*mc_max) = 0.0_dp
22681 : p_index = 0
22682 1900 : DO md = 1, md_max
22683 12804 : DO mc = 1, mc_max
22684 121631 : DO mb = 1, 10
22685 109040 : ks_bd = 0.0_dp
22686 109040 : ks_bc = 0.0_dp
22687 109040 : p_bd = pbd((md - 1)*10 + mb)
22688 109040 : p_bc = pbc((mc - 1)*10 + mb)
22689 1090400 : DO ma = 1, 9
22690 981360 : p_index = p_index + 1
22691 981360 : tmp = scale*prim(p_index)
22692 981360 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22693 981360 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22694 981360 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22695 1090400 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22696 : END DO
22697 109040 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
22698 119944 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
22699 : END DO
22700 : END DO
22701 : END DO
22702 213 : END SUBROUTINE block_9_10
22703 : ! **************************************************************************************************
22704 : !> \brief ...
22705 : !> \param mc_max ...
22706 : !> \param md_max ...
22707 : !> \param kbd ...
22708 : !> \param kbc ...
22709 : !> \param kad ...
22710 : !> \param kac ...
22711 : !> \param pbd ...
22712 : !> \param pbc ...
22713 : !> \param pad ...
22714 : !> \param pac ...
22715 : !> \param prim ...
22716 : !> \param scale ...
22717 : ! **************************************************************************************************
22718 308 : SUBROUTINE block_9_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22719 : INTEGER :: mc_max, md_max
22720 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(9*md_max), kac(9*mc_max), &
22721 : pbd(11*md_max), pbc(11*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*11*mc_max*md_max), &
22722 : scale
22723 :
22724 : INTEGER :: ma, mb, mc, md, p_index
22725 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22726 :
22727 27434 : kbd(1:11*md_max) = 0.0_dp
22728 20053 : kbc(1:11*mc_max) = 0.0_dp
22729 22502 : kad(1:9*md_max) = 0.0_dp
22730 16463 : kac(1:9*mc_max) = 0.0_dp
22731 : p_index = 0
22732 2774 : DO md = 1, md_max
22733 18309 : DO mc = 1, mc_max
22734 188886 : DO mb = 1, 11
22735 170885 : ks_bd = 0.0_dp
22736 170885 : ks_bc = 0.0_dp
22737 170885 : p_bd = pbd((md - 1)*11 + mb)
22738 170885 : p_bc = pbc((mc - 1)*11 + mb)
22739 1708850 : DO ma = 1, 9
22740 1537965 : p_index = p_index + 1
22741 1537965 : tmp = scale*prim(p_index)
22742 1537965 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22743 1537965 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22744 1537965 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22745 1708850 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22746 : END DO
22747 170885 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
22748 186420 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
22749 : END DO
22750 : END DO
22751 : END DO
22752 308 : END SUBROUTINE block_9_11
22753 : ! **************************************************************************************************
22754 : !> \brief ...
22755 : !> \param mc_max ...
22756 : !> \param md_max ...
22757 : !> \param kbd ...
22758 : !> \param kbc ...
22759 : !> \param kad ...
22760 : !> \param kac ...
22761 : !> \param pbd ...
22762 : !> \param pbc ...
22763 : !> \param pad ...
22764 : !> \param pac ...
22765 : !> \param prim ...
22766 : !> \param scale ...
22767 : ! **************************************************************************************************
22768 305 : SUBROUTINE block_9_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22769 : INTEGER :: mc_max, md_max
22770 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(9*md_max), kac(9*mc_max), &
22771 : pbd(15*md_max), pbc(15*mc_max), pad(9*md_max), pac(9*mc_max), prim(9*15*mc_max*md_max), &
22772 : scale
22773 :
22774 : INTEGER :: ma, mb, mc, md, p_index
22775 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22776 :
22777 37520 : kbd(1:15*md_max) = 0.0_dp
22778 27185 : kbc(1:15*mc_max) = 0.0_dp
22779 22634 : kad(1:9*md_max) = 0.0_dp
22780 16433 : kac(1:9*mc_max) = 0.0_dp
22781 : p_index = 0
22782 2786 : DO md = 1, md_max
22783 18648 : DO mc = 1, mc_max
22784 256273 : DO mb = 1, 15
22785 237930 : ks_bd = 0.0_dp
22786 237930 : ks_bc = 0.0_dp
22787 237930 : p_bd = pbd((md - 1)*15 + mb)
22788 237930 : p_bc = pbc((mc - 1)*15 + mb)
22789 2379300 : DO ma = 1, 9
22790 2141370 : p_index = p_index + 1
22791 2141370 : tmp = scale*prim(p_index)
22792 2141370 : ks_bc = ks_bc + tmp*pad((md - 1)*9 + ma)
22793 2141370 : ks_bd = ks_bd + tmp*pac((mc - 1)*9 + ma)
22794 2141370 : kad((md - 1)*9 + ma) = kad((md - 1)*9 + ma) - tmp*p_bc
22795 2379300 : kac((mc - 1)*9 + ma) = kac((mc - 1)*9 + ma) - tmp*p_bd
22796 : END DO
22797 237930 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
22798 253792 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
22799 : END DO
22800 : END DO
22801 : END DO
22802 305 : END SUBROUTINE block_9_15
22803 : ! **************************************************************************************************
22804 : !> \brief ...
22805 : !> \param kbd ...
22806 : !> \param kbc ...
22807 : !> \param kad ...
22808 : !> \param kac ...
22809 : !> \param pbd ...
22810 : !> \param pbc ...
22811 : !> \param pad ...
22812 : !> \param pac ...
22813 : !> \param prim ...
22814 : !> \param scale ...
22815 : ! **************************************************************************************************
22816 9 : SUBROUTINE block_10_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22817 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(10*1), &
22818 : kac(10*1), pbd(1*1), pbc(1*1), &
22819 : pad(10*1), pac(10*1), prim(10*1*1*1), &
22820 : scale
22821 :
22822 : INTEGER :: ma, mb, mc, md, p_index
22823 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22824 :
22825 9 : kbd(1:1*1) = 0.0_dp
22826 9 : kbc(1:1*1) = 0.0_dp
22827 9 : kad(1:10*1) = 0.0_dp
22828 9 : kac(1:10*1) = 0.0_dp
22829 9 : p_index = 0
22830 18 : DO md = 1, 1
22831 27 : DO mc = 1, 1
22832 27 : DO mb = 1, 1
22833 9 : ks_bd = 0.0_dp
22834 9 : ks_bc = 0.0_dp
22835 9 : p_bd = pbd((md - 1)*1 + mb)
22836 9 : p_bc = pbc((mc - 1)*1 + mb)
22837 99 : DO ma = 1, 10
22838 90 : p_index = p_index + 1
22839 90 : tmp = scale*prim(p_index)
22840 90 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
22841 90 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
22842 90 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
22843 99 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
22844 : END DO
22845 9 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22846 18 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22847 : END DO
22848 : END DO
22849 : END DO
22850 9 : END SUBROUTINE block_10_1_1_1
22851 : ! **************************************************************************************************
22852 : !> \brief ...
22853 : !> \param md_max ...
22854 : !> \param kbd ...
22855 : !> \param kbc ...
22856 : !> \param kad ...
22857 : !> \param kac ...
22858 : !> \param pbd ...
22859 : !> \param pbc ...
22860 : !> \param pad ...
22861 : !> \param pac ...
22862 : !> \param prim ...
22863 : !> \param scale ...
22864 : ! **************************************************************************************************
22865 38 : SUBROUTINE block_10_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22866 : INTEGER :: md_max
22867 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(10*md_max), kac(10*1), pbd(1*md_max), &
22868 : pbc(1*1), pad(10*md_max), pac(10*1), prim(10*1*1*md_max), scale
22869 :
22870 : INTEGER :: ma, mb, mc, md, p_index
22871 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22872 :
22873 332 : kbd(1:1*md_max) = 0.0_dp
22874 38 : kbc(1:1*1) = 0.0_dp
22875 2978 : kad(1:10*md_max) = 0.0_dp
22876 38 : kac(1:10*1) = 0.0_dp
22877 38 : p_index = 0
22878 332 : DO md = 1, md_max
22879 626 : DO mc = 1, 1
22880 882 : DO mb = 1, 1
22881 294 : ks_bd = 0.0_dp
22882 294 : ks_bc = 0.0_dp
22883 294 : p_bd = pbd((md - 1)*1 + mb)
22884 294 : p_bc = pbc((mc - 1)*1 + mb)
22885 3234 : DO ma = 1, 10
22886 2940 : p_index = p_index + 1
22887 2940 : tmp = scale*prim(p_index)
22888 2940 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
22889 2940 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
22890 2940 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
22891 3234 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
22892 : END DO
22893 294 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22894 588 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22895 : END DO
22896 : END DO
22897 : END DO
22898 38 : END SUBROUTINE block_10_1_1
22899 : ! **************************************************************************************************
22900 : !> \brief ...
22901 : !> \param mc_max ...
22902 : !> \param md_max ...
22903 : !> \param kbd ...
22904 : !> \param kbc ...
22905 : !> \param kad ...
22906 : !> \param kac ...
22907 : !> \param pbd ...
22908 : !> \param pbc ...
22909 : !> \param pad ...
22910 : !> \param pac ...
22911 : !> \param prim ...
22912 : !> \param scale ...
22913 : ! **************************************************************************************************
22914 302 : SUBROUTINE block_10_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22915 : INTEGER :: mc_max, md_max
22916 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(10*md_max), kac(10*mc_max), &
22917 : pbd(1*md_max), pbc(1*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*1*mc_max*md_max), &
22918 : scale
22919 :
22920 : INTEGER :: ma, mb, mc, md, p_index
22921 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22922 :
22923 2757 : kbd(1:1*md_max) = 0.0_dp
22924 2696 : kbc(1:1*mc_max) = 0.0_dp
22925 24852 : kad(1:10*md_max) = 0.0_dp
22926 24242 : kac(1:10*mc_max) = 0.0_dp
22927 : p_index = 0
22928 2757 : DO md = 1, md_max
22929 22684 : DO mc = 1, mc_max
22930 42309 : DO mb = 1, 1
22931 19927 : ks_bd = 0.0_dp
22932 19927 : ks_bc = 0.0_dp
22933 19927 : p_bd = pbd((md - 1)*1 + mb)
22934 19927 : p_bc = pbc((mc - 1)*1 + mb)
22935 219197 : DO ma = 1, 10
22936 199270 : p_index = p_index + 1
22937 199270 : tmp = scale*prim(p_index)
22938 199270 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
22939 199270 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
22940 199270 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
22941 219197 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
22942 : END DO
22943 19927 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
22944 39854 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
22945 : END DO
22946 : END DO
22947 : END DO
22948 302 : END SUBROUTINE block_10_1
22949 : ! **************************************************************************************************
22950 : !> \brief ...
22951 : !> \param mc_max ...
22952 : !> \param md_max ...
22953 : !> \param kbd ...
22954 : !> \param kbc ...
22955 : !> \param kad ...
22956 : !> \param kac ...
22957 : !> \param pbd ...
22958 : !> \param pbc ...
22959 : !> \param pad ...
22960 : !> \param pac ...
22961 : !> \param prim ...
22962 : !> \param scale ...
22963 : ! **************************************************************************************************
22964 52 : SUBROUTINE block_10_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
22965 : INTEGER :: mc_max, md_max
22966 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(10*md_max), kac(10*mc_max), &
22967 : pbd(2*md_max), pbc(2*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*2*mc_max*md_max), &
22968 : scale
22969 :
22970 : INTEGER :: ma, mb, mc, md, p_index
22971 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
22972 :
22973 686 : kbd(1:2*md_max) = 0.0_dp
22974 952 : kbc(1:2*mc_max) = 0.0_dp
22975 3222 : kad(1:10*md_max) = 0.0_dp
22976 4552 : kac(1:10*mc_max) = 0.0_dp
22977 : p_index = 0
22978 369 : DO md = 1, md_max
22979 3151 : DO mc = 1, mc_max
22980 8663 : DO mb = 1, 2
22981 5564 : ks_bd = 0.0_dp
22982 5564 : ks_bc = 0.0_dp
22983 5564 : p_bd = pbd((md - 1)*2 + mb)
22984 5564 : p_bc = pbc((mc - 1)*2 + mb)
22985 61204 : DO ma = 1, 10
22986 55640 : p_index = p_index + 1
22987 55640 : tmp = scale*prim(p_index)
22988 55640 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
22989 55640 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
22990 55640 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
22991 61204 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
22992 : END DO
22993 5564 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
22994 8346 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
22995 : END DO
22996 : END DO
22997 : END DO
22998 52 : END SUBROUTINE block_10_2
22999 : ! **************************************************************************************************
23000 : !> \brief ...
23001 : !> \param mc_max ...
23002 : !> \param md_max ...
23003 : !> \param kbd ...
23004 : !> \param kbc ...
23005 : !> \param kad ...
23006 : !> \param kac ...
23007 : !> \param pbd ...
23008 : !> \param pbc ...
23009 : !> \param pad ...
23010 : !> \param pac ...
23011 : !> \param prim ...
23012 : !> \param scale ...
23013 : ! **************************************************************************************************
23014 46 : SUBROUTINE block_10_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23015 : INTEGER :: mc_max, md_max
23016 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(10*md_max), kac(10*mc_max), &
23017 : pbd(3*md_max), pbc(3*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*3*mc_max*md_max), &
23018 : scale
23019 :
23020 : INTEGER :: ma, mb, mc, md, p_index
23021 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23022 :
23023 946 : kbd(1:3*md_max) = 0.0_dp
23024 1222 : kbc(1:3*mc_max) = 0.0_dp
23025 3046 : kad(1:10*md_max) = 0.0_dp
23026 3966 : kac(1:10*mc_max) = 0.0_dp
23027 : p_index = 0
23028 346 : DO md = 1, md_max
23029 2986 : DO mc = 1, mc_max
23030 10860 : DO mb = 1, 3
23031 7920 : ks_bd = 0.0_dp
23032 7920 : ks_bc = 0.0_dp
23033 7920 : p_bd = pbd((md - 1)*3 + mb)
23034 7920 : p_bc = pbc((mc - 1)*3 + mb)
23035 87120 : DO ma = 1, 10
23036 79200 : p_index = p_index + 1
23037 79200 : tmp = scale*prim(p_index)
23038 79200 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23039 79200 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23040 79200 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23041 87120 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23042 : END DO
23043 7920 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
23044 10560 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
23045 : END DO
23046 : END DO
23047 : END DO
23048 46 : END SUBROUTINE block_10_3
23049 : ! **************************************************************************************************
23050 : !> \brief ...
23051 : !> \param mc_max ...
23052 : !> \param md_max ...
23053 : !> \param kbd ...
23054 : !> \param kbc ...
23055 : !> \param kad ...
23056 : !> \param kac ...
23057 : !> \param pbd ...
23058 : !> \param pbc ...
23059 : !> \param pad ...
23060 : !> \param pac ...
23061 : !> \param prim ...
23062 : !> \param scale ...
23063 : ! **************************************************************************************************
23064 39 : SUBROUTINE block_10_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23065 : INTEGER :: mc_max, md_max
23066 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(10*md_max), kac(10*mc_max), &
23067 : pbd(4*md_max), pbc(4*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*4*mc_max*md_max), &
23068 : scale
23069 :
23070 : INTEGER :: ma, mb, mc, md, p_index
23071 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23072 :
23073 1143 : kbd(1:4*md_max) = 0.0_dp
23074 1371 : kbc(1:4*mc_max) = 0.0_dp
23075 2799 : kad(1:10*md_max) = 0.0_dp
23076 3369 : kac(1:10*mc_max) = 0.0_dp
23077 : p_index = 0
23078 315 : DO md = 1, md_max
23079 2754 : DO mc = 1, mc_max
23080 12471 : DO mb = 1, 4
23081 9756 : ks_bd = 0.0_dp
23082 9756 : ks_bc = 0.0_dp
23083 9756 : p_bd = pbd((md - 1)*4 + mb)
23084 9756 : p_bc = pbc((mc - 1)*4 + mb)
23085 107316 : DO ma = 1, 10
23086 97560 : p_index = p_index + 1
23087 97560 : tmp = scale*prim(p_index)
23088 97560 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23089 97560 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23090 97560 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23091 107316 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23092 : END DO
23093 9756 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
23094 12195 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
23095 : END DO
23096 : END DO
23097 : END DO
23098 39 : END SUBROUTINE block_10_4
23099 : ! **************************************************************************************************
23100 : !> \brief ...
23101 : !> \param mc_max ...
23102 : !> \param md_max ...
23103 : !> \param kbd ...
23104 : !> \param kbc ...
23105 : !> \param kad ...
23106 : !> \param kac ...
23107 : !> \param pbd ...
23108 : !> \param pbc ...
23109 : !> \param pad ...
23110 : !> \param pac ...
23111 : !> \param prim ...
23112 : !> \param scale ...
23113 : ! **************************************************************************************************
23114 33 : SUBROUTINE block_10_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23115 : INTEGER :: mc_max, md_max
23116 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(10*md_max), kac(10*mc_max), &
23117 : pbd(5*md_max), pbc(5*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*5*mc_max*md_max), &
23118 : scale
23119 :
23120 : INTEGER :: ma, mb, mc, md, p_index
23121 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23122 :
23123 1293 : kbd(1:5*md_max) = 0.0_dp
23124 1433 : kbc(1:5*mc_max) = 0.0_dp
23125 2553 : kad(1:10*md_max) = 0.0_dp
23126 2833 : kac(1:10*mc_max) = 0.0_dp
23127 : p_index = 0
23128 285 : DO md = 1, md_max
23129 2506 : DO mc = 1, mc_max
23130 13578 : DO mb = 1, 5
23131 11105 : ks_bd = 0.0_dp
23132 11105 : ks_bc = 0.0_dp
23133 11105 : p_bd = pbd((md - 1)*5 + mb)
23134 11105 : p_bc = pbc((mc - 1)*5 + mb)
23135 122155 : DO ma = 1, 10
23136 111050 : p_index = p_index + 1
23137 111050 : tmp = scale*prim(p_index)
23138 111050 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23139 111050 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23140 111050 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23141 122155 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23142 : END DO
23143 11105 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
23144 13326 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
23145 : END DO
23146 : END DO
23147 : END DO
23148 33 : END SUBROUTINE block_10_5
23149 : ! **************************************************************************************************
23150 : !> \brief ...
23151 : !> \param mc_max ...
23152 : !> \param md_max ...
23153 : !> \param kbd ...
23154 : !> \param kbc ...
23155 : !> \param kad ...
23156 : !> \param kac ...
23157 : !> \param pbd ...
23158 : !> \param pbc ...
23159 : !> \param pad ...
23160 : !> \param pac ...
23161 : !> \param prim ...
23162 : !> \param scale ...
23163 : ! **************************************************************************************************
23164 27 : SUBROUTINE block_10_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23165 : INTEGER :: mc_max, md_max
23166 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(10*md_max), kac(10*mc_max), &
23167 : pbd(6*md_max), pbc(6*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*6*mc_max*md_max), &
23168 : scale
23169 :
23170 : INTEGER :: ma, mb, mc, md, p_index
23171 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23172 :
23173 1359 : kbd(1:6*md_max) = 0.0_dp
23174 1389 : kbc(1:6*mc_max) = 0.0_dp
23175 2247 : kad(1:10*md_max) = 0.0_dp
23176 2297 : kac(1:10*mc_max) = 0.0_dp
23177 : p_index = 0
23178 249 : DO md = 1, md_max
23179 2199 : DO mc = 1, mc_max
23180 13872 : DO mb = 1, 6
23181 11700 : ks_bd = 0.0_dp
23182 11700 : ks_bc = 0.0_dp
23183 11700 : p_bd = pbd((md - 1)*6 + mb)
23184 11700 : p_bc = pbc((mc - 1)*6 + mb)
23185 128700 : DO ma = 1, 10
23186 117000 : p_index = p_index + 1
23187 117000 : tmp = scale*prim(p_index)
23188 117000 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23189 117000 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23190 117000 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23191 128700 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23192 : END DO
23193 11700 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
23194 13650 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
23195 : END DO
23196 : END DO
23197 : END DO
23198 27 : END SUBROUTINE block_10_6
23199 : ! **************************************************************************************************
23200 : !> \brief ...
23201 : !> \param mc_max ...
23202 : !> \param md_max ...
23203 : !> \param kbd ...
23204 : !> \param kbc ...
23205 : !> \param kad ...
23206 : !> \param kac ...
23207 : !> \param pbd ...
23208 : !> \param pbc ...
23209 : !> \param pad ...
23210 : !> \param pac ...
23211 : !> \param prim ...
23212 : !> \param scale ...
23213 : ! **************************************************************************************************
23214 45 : SUBROUTINE block_10_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23215 : INTEGER :: mc_max, md_max
23216 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(10*md_max), kac(10*mc_max), &
23217 : pbd(7*md_max), pbc(7*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*7*mc_max*md_max), &
23218 : scale
23219 :
23220 : INTEGER :: ma, mb, mc, md, p_index
23221 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23222 :
23223 2859 : kbd(1:7*md_max) = 0.0_dp
23224 2768 : kbc(1:7*mc_max) = 0.0_dp
23225 4065 : kad(1:10*md_max) = 0.0_dp
23226 3935 : kac(1:10*mc_max) = 0.0_dp
23227 : p_index = 0
23228 447 : DO md = 1, md_max
23229 4051 : DO mc = 1, mc_max
23230 29234 : DO mb = 1, 7
23231 25228 : ks_bd = 0.0_dp
23232 25228 : ks_bc = 0.0_dp
23233 25228 : p_bd = pbd((md - 1)*7 + mb)
23234 25228 : p_bc = pbc((mc - 1)*7 + mb)
23235 277508 : DO ma = 1, 10
23236 252280 : p_index = p_index + 1
23237 252280 : tmp = scale*prim(p_index)
23238 252280 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23239 252280 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23240 252280 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23241 277508 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23242 : END DO
23243 25228 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
23244 28832 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
23245 : END DO
23246 : END DO
23247 : END DO
23248 45 : END SUBROUTINE block_10_7
23249 : ! **************************************************************************************************
23250 : !> \brief ...
23251 : !> \param mc_max ...
23252 : !> \param md_max ...
23253 : !> \param kbd ...
23254 : !> \param kbc ...
23255 : !> \param kad ...
23256 : !> \param kac ...
23257 : !> \param pbd ...
23258 : !> \param pbc ...
23259 : !> \param pad ...
23260 : !> \param pac ...
23261 : !> \param prim ...
23262 : !> \param scale ...
23263 : ! **************************************************************************************************
23264 104 : SUBROUTINE block_10_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23265 : INTEGER :: mc_max, md_max
23266 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(10*md_max), kac(10*mc_max), &
23267 : pbd(9*md_max), pbc(9*mc_max), pad(10*md_max), pac(10*mc_max), prim(10*9*mc_max*md_max), &
23268 : scale
23269 :
23270 : INTEGER :: ma, mb, mc, md, p_index
23271 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23272 :
23273 7682 : kbd(1:9*md_max) = 0.0_dp
23274 5558 : kbc(1:9*mc_max) = 0.0_dp
23275 8524 : kad(1:10*md_max) = 0.0_dp
23276 6164 : kac(1:10*mc_max) = 0.0_dp
23277 : p_index = 0
23278 946 : DO md = 1, md_max
23279 6250 : DO mc = 1, mc_max
23280 53882 : DO mb = 1, 9
23281 47736 : ks_bd = 0.0_dp
23282 47736 : ks_bc = 0.0_dp
23283 47736 : p_bd = pbd((md - 1)*9 + mb)
23284 47736 : p_bc = pbc((mc - 1)*9 + mb)
23285 525096 : DO ma = 1, 10
23286 477360 : p_index = p_index + 1
23287 477360 : tmp = scale*prim(p_index)
23288 477360 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23289 477360 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23290 477360 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23291 525096 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23292 : END DO
23293 47736 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
23294 53040 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
23295 : END DO
23296 : END DO
23297 : END DO
23298 104 : END SUBROUTINE block_10_9
23299 : ! **************************************************************************************************
23300 : !> \brief ...
23301 : !> \param mc_max ...
23302 : !> \param md_max ...
23303 : !> \param kbd ...
23304 : !> \param kbc ...
23305 : !> \param kad ...
23306 : !> \param kac ...
23307 : !> \param pbd ...
23308 : !> \param pbc ...
23309 : !> \param pad ...
23310 : !> \param pac ...
23311 : !> \param prim ...
23312 : !> \param scale ...
23313 : ! **************************************************************************************************
23314 309 : SUBROUTINE block_10_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23315 : INTEGER :: mc_max, md_max
23316 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(10*md_max), kac(10*mc_max), &
23317 : pbd(10*md_max), pbc(10*mc_max), pad(10*md_max), pac(10*mc_max), &
23318 : prim(10*10*mc_max*md_max), scale
23319 :
23320 : INTEGER :: ma, mb, mc, md, p_index
23321 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23322 :
23323 24959 : kbd(1:10*md_max) = 0.0_dp
23324 18319 : kbc(1:10*mc_max) = 0.0_dp
23325 24959 : kad(1:10*md_max) = 0.0_dp
23326 18319 : kac(1:10*mc_max) = 0.0_dp
23327 : p_index = 0
23328 2774 : DO md = 1, md_max
23329 18246 : DO mc = 1, mc_max
23330 172657 : DO mb = 1, 10
23331 154720 : ks_bd = 0.0_dp
23332 154720 : ks_bc = 0.0_dp
23333 154720 : p_bd = pbd((md - 1)*10 + mb)
23334 154720 : p_bc = pbc((mc - 1)*10 + mb)
23335 1701920 : DO ma = 1, 10
23336 1547200 : p_index = p_index + 1
23337 1547200 : tmp = scale*prim(p_index)
23338 1547200 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23339 1547200 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23340 1547200 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23341 1701920 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23342 : END DO
23343 154720 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
23344 170192 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
23345 : END DO
23346 : END DO
23347 : END DO
23348 309 : END SUBROUTINE block_10_10
23349 : ! **************************************************************************************************
23350 : !> \brief ...
23351 : !> \param mc_max ...
23352 : !> \param md_max ...
23353 : !> \param kbd ...
23354 : !> \param kbc ...
23355 : !> \param kad ...
23356 : !> \param kac ...
23357 : !> \param pbd ...
23358 : !> \param pbc ...
23359 : !> \param pad ...
23360 : !> \param pac ...
23361 : !> \param prim ...
23362 : !> \param scale ...
23363 : ! **************************************************************************************************
23364 329 : SUBROUTINE block_10_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23365 : INTEGER :: mc_max, md_max
23366 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(10*md_max), kac(10*mc_max), &
23367 : pbd(11*md_max), pbc(11*mc_max), pad(10*md_max), pac(10*mc_max), &
23368 : prim(10*11*mc_max*md_max), scale
23369 :
23370 : INTEGER :: ma, mb, mc, md, p_index
23371 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23372 :
23373 29677 : kbd(1:11*md_max) = 0.0_dp
23374 21801 : kbc(1:11*mc_max) = 0.0_dp
23375 27009 : kad(1:10*md_max) = 0.0_dp
23376 19849 : kac(1:10*mc_max) = 0.0_dp
23377 : p_index = 0
23378 2997 : DO md = 1, md_max
23379 20064 : DO mc = 1, mc_max
23380 207472 : DO mb = 1, 11
23381 187737 : ks_bd = 0.0_dp
23382 187737 : ks_bc = 0.0_dp
23383 187737 : p_bd = pbd((md - 1)*11 + mb)
23384 187737 : p_bc = pbc((mc - 1)*11 + mb)
23385 2065107 : DO ma = 1, 10
23386 1877370 : p_index = p_index + 1
23387 1877370 : tmp = scale*prim(p_index)
23388 1877370 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23389 1877370 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23390 1877370 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23391 2065107 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23392 : END DO
23393 187737 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
23394 204804 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
23395 : END DO
23396 : END DO
23397 : END DO
23398 329 : END SUBROUTINE block_10_11
23399 : ! **************************************************************************************************
23400 : !> \brief ...
23401 : !> \param mc_max ...
23402 : !> \param md_max ...
23403 : !> \param kbd ...
23404 : !> \param kbc ...
23405 : !> \param kad ...
23406 : !> \param kac ...
23407 : !> \param pbd ...
23408 : !> \param pbc ...
23409 : !> \param pad ...
23410 : !> \param pac ...
23411 : !> \param prim ...
23412 : !> \param scale ...
23413 : ! **************************************************************************************************
23414 267 : SUBROUTINE block_10_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23415 : INTEGER :: mc_max, md_max
23416 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(10*md_max), kac(10*mc_max), &
23417 : pbd(15*md_max), pbc(15*mc_max), pad(10*md_max), pac(10*mc_max), &
23418 : prim(10*15*mc_max*md_max), scale
23419 :
23420 : INTEGER :: ma, mb, mc, md, p_index
23421 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23422 :
23423 34077 : kbd(1:15*md_max) = 0.0_dp
23424 26082 : kbc(1:15*mc_max) = 0.0_dp
23425 22807 : kad(1:10*md_max) = 0.0_dp
23426 17477 : kac(1:10*mc_max) = 0.0_dp
23427 : p_index = 0
23428 2521 : DO md = 1, md_max
23429 18179 : DO mc = 1, mc_max
23430 252782 : DO mb = 1, 15
23431 234870 : ks_bd = 0.0_dp
23432 234870 : ks_bc = 0.0_dp
23433 234870 : p_bd = pbd((md - 1)*15 + mb)
23434 234870 : p_bc = pbc((mc - 1)*15 + mb)
23435 2583570 : DO ma = 1, 10
23436 2348700 : p_index = p_index + 1
23437 2348700 : tmp = scale*prim(p_index)
23438 2348700 : ks_bc = ks_bc + tmp*pad((md - 1)*10 + ma)
23439 2348700 : ks_bd = ks_bd + tmp*pac((mc - 1)*10 + ma)
23440 2348700 : kad((md - 1)*10 + ma) = kad((md - 1)*10 + ma) - tmp*p_bc
23441 2583570 : kac((mc - 1)*10 + ma) = kac((mc - 1)*10 + ma) - tmp*p_bd
23442 : END DO
23443 234870 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
23444 250528 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
23445 : END DO
23446 : END DO
23447 : END DO
23448 267 : END SUBROUTINE block_10_15
23449 : ! **************************************************************************************************
23450 : !> \brief ...
23451 : !> \param kbd ...
23452 : !> \param kbc ...
23453 : !> \param kad ...
23454 : !> \param kac ...
23455 : !> \param pbd ...
23456 : !> \param pbc ...
23457 : !> \param pad ...
23458 : !> \param pac ...
23459 : !> \param prim ...
23460 : !> \param scale ...
23461 : ! **************************************************************************************************
23462 9 : SUBROUTINE block_11_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23463 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(11*1), &
23464 : kac(11*1), pbd(1*1), pbc(1*1), &
23465 : pad(11*1), pac(11*1), prim(11*1*1*1), &
23466 : scale
23467 :
23468 : INTEGER :: ma, mb, mc, md, p_index
23469 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23470 :
23471 9 : kbd(1:1*1) = 0.0_dp
23472 9 : kbc(1:1*1) = 0.0_dp
23473 9 : kad(1:11*1) = 0.0_dp
23474 9 : kac(1:11*1) = 0.0_dp
23475 9 : p_index = 0
23476 18 : DO md = 1, 1
23477 27 : DO mc = 1, 1
23478 27 : DO mb = 1, 1
23479 9 : ks_bd = 0.0_dp
23480 9 : ks_bc = 0.0_dp
23481 9 : p_bd = pbd((md - 1)*1 + mb)
23482 9 : p_bc = pbc((mc - 1)*1 + mb)
23483 108 : DO ma = 1, 11
23484 99 : p_index = p_index + 1
23485 99 : tmp = scale*prim(p_index)
23486 99 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23487 99 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23488 99 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23489 108 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23490 : END DO
23491 9 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
23492 18 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
23493 : END DO
23494 : END DO
23495 : END DO
23496 9 : END SUBROUTINE block_11_1_1_1
23497 : ! **************************************************************************************************
23498 : !> \brief ...
23499 : !> \param md_max ...
23500 : !> \param kbd ...
23501 : !> \param kbc ...
23502 : !> \param kad ...
23503 : !> \param kac ...
23504 : !> \param pbd ...
23505 : !> \param pbc ...
23506 : !> \param pad ...
23507 : !> \param pac ...
23508 : !> \param prim ...
23509 : !> \param scale ...
23510 : ! **************************************************************************************************
23511 39 : SUBROUTINE block_11_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23512 : INTEGER :: md_max
23513 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(11*md_max), kac(11*1), pbd(1*md_max), &
23514 : pbc(1*1), pad(11*md_max), pac(11*1), prim(11*1*1*md_max), scale
23515 :
23516 : INTEGER :: ma, mb, mc, md, p_index
23517 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23518 :
23519 344 : kbd(1:1*md_max) = 0.0_dp
23520 39 : kbc(1:1*1) = 0.0_dp
23521 3394 : kad(1:11*md_max) = 0.0_dp
23522 39 : kac(1:11*1) = 0.0_dp
23523 39 : p_index = 0
23524 344 : DO md = 1, md_max
23525 649 : DO mc = 1, 1
23526 915 : DO mb = 1, 1
23527 305 : ks_bd = 0.0_dp
23528 305 : ks_bc = 0.0_dp
23529 305 : p_bd = pbd((md - 1)*1 + mb)
23530 305 : p_bc = pbc((mc - 1)*1 + mb)
23531 3660 : DO ma = 1, 11
23532 3355 : p_index = p_index + 1
23533 3355 : tmp = scale*prim(p_index)
23534 3355 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23535 3355 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23536 3355 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23537 3660 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23538 : END DO
23539 305 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
23540 610 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
23541 : END DO
23542 : END DO
23543 : END DO
23544 39 : END SUBROUTINE block_11_1_1
23545 : ! **************************************************************************************************
23546 : !> \brief ...
23547 : !> \param mc_max ...
23548 : !> \param md_max ...
23549 : !> \param kbd ...
23550 : !> \param kbc ...
23551 : !> \param kad ...
23552 : !> \param kac ...
23553 : !> \param pbd ...
23554 : !> \param pbc ...
23555 : !> \param pad ...
23556 : !> \param pac ...
23557 : !> \param prim ...
23558 : !> \param scale ...
23559 : ! **************************************************************************************************
23560 314 : SUBROUTINE block_11_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23561 : INTEGER :: mc_max, md_max
23562 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(11*md_max), kac(11*mc_max), &
23563 : pbd(1*md_max), pbc(1*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*1*mc_max*md_max), &
23564 : scale
23565 :
23566 : INTEGER :: ma, mb, mc, md, p_index
23567 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23568 :
23569 2878 : kbd(1:1*md_max) = 0.0_dp
23570 2868 : kbc(1:1*mc_max) = 0.0_dp
23571 28518 : kad(1:11*md_max) = 0.0_dp
23572 28408 : kac(1:11*mc_max) = 0.0_dp
23573 : p_index = 0
23574 2878 : DO md = 1, md_max
23575 24249 : DO mc = 1, mc_max
23576 45306 : DO mb = 1, 1
23577 21371 : ks_bd = 0.0_dp
23578 21371 : ks_bc = 0.0_dp
23579 21371 : p_bd = pbd((md - 1)*1 + mb)
23580 21371 : p_bc = pbc((mc - 1)*1 + mb)
23581 256452 : DO ma = 1, 11
23582 235081 : p_index = p_index + 1
23583 235081 : tmp = scale*prim(p_index)
23584 235081 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23585 235081 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23586 235081 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23587 256452 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23588 : END DO
23589 21371 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
23590 42742 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
23591 : END DO
23592 : END DO
23593 : END DO
23594 314 : END SUBROUTINE block_11_1
23595 : ! **************************************************************************************************
23596 : !> \brief ...
23597 : !> \param mc_max ...
23598 : !> \param md_max ...
23599 : !> \param kbd ...
23600 : !> \param kbc ...
23601 : !> \param kad ...
23602 : !> \param kac ...
23603 : !> \param pbd ...
23604 : !> \param pbc ...
23605 : !> \param pad ...
23606 : !> \param pac ...
23607 : !> \param prim ...
23608 : !> \param scale ...
23609 : ! **************************************************************************************************
23610 47 : SUBROUTINE block_11_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23611 : INTEGER :: mc_max, md_max
23612 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(11*md_max), kac(11*mc_max), &
23613 : pbd(2*md_max), pbc(2*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*2*mc_max*md_max), &
23614 : scale
23615 :
23616 : INTEGER :: ma, mb, mc, md, p_index
23617 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23618 :
23619 651 : kbd(1:2*md_max) = 0.0_dp
23620 853 : kbc(1:2*mc_max) = 0.0_dp
23621 3369 : kad(1:11*md_max) = 0.0_dp
23622 4480 : kac(1:11*mc_max) = 0.0_dp
23623 : p_index = 0
23624 349 : DO md = 1, md_max
23625 3011 : DO mc = 1, mc_max
23626 8288 : DO mb = 1, 2
23627 5324 : ks_bd = 0.0_dp
23628 5324 : ks_bc = 0.0_dp
23629 5324 : p_bd = pbd((md - 1)*2 + mb)
23630 5324 : p_bc = pbc((mc - 1)*2 + mb)
23631 63888 : DO ma = 1, 11
23632 58564 : p_index = p_index + 1
23633 58564 : tmp = scale*prim(p_index)
23634 58564 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23635 58564 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23636 58564 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23637 63888 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23638 : END DO
23639 5324 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
23640 7986 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
23641 : END DO
23642 : END DO
23643 : END DO
23644 47 : END SUBROUTINE block_11_2
23645 : ! **************************************************************************************************
23646 : !> \brief ...
23647 : !> \param mc_max ...
23648 : !> \param md_max ...
23649 : !> \param kbd ...
23650 : !> \param kbc ...
23651 : !> \param kad ...
23652 : !> \param kac ...
23653 : !> \param pbd ...
23654 : !> \param pbc ...
23655 : !> \param pad ...
23656 : !> \param pac ...
23657 : !> \param prim ...
23658 : !> \param scale ...
23659 : ! **************************************************************************************************
23660 40 : SUBROUTINE block_11_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23661 : INTEGER :: mc_max, md_max
23662 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(11*md_max), kac(11*mc_max), &
23663 : pbd(3*md_max), pbc(3*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*3*mc_max*md_max), &
23664 : scale
23665 :
23666 : INTEGER :: ma, mb, mc, md, p_index
23667 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23668 :
23669 877 : kbd(1:3*md_max) = 0.0_dp
23670 1072 : kbc(1:3*mc_max) = 0.0_dp
23671 3109 : kad(1:11*md_max) = 0.0_dp
23672 3824 : kac(1:11*mc_max) = 0.0_dp
23673 : p_index = 0
23674 319 : DO md = 1, md_max
23675 2791 : DO mc = 1, mc_max
23676 10167 : DO mb = 1, 3
23677 7416 : ks_bd = 0.0_dp
23678 7416 : ks_bc = 0.0_dp
23679 7416 : p_bd = pbd((md - 1)*3 + mb)
23680 7416 : p_bc = pbc((mc - 1)*3 + mb)
23681 88992 : DO ma = 1, 11
23682 81576 : p_index = p_index + 1
23683 81576 : tmp = scale*prim(p_index)
23684 81576 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23685 81576 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23686 81576 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23687 88992 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23688 : END DO
23689 7416 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
23690 9888 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
23691 : END DO
23692 : END DO
23693 : END DO
23694 40 : END SUBROUTINE block_11_3
23695 : ! **************************************************************************************************
23696 : !> \brief ...
23697 : !> \param mc_max ...
23698 : !> \param md_max ...
23699 : !> \param kbd ...
23700 : !> \param kbc ...
23701 : !> \param kad ...
23702 : !> \param kac ...
23703 : !> \param pbd ...
23704 : !> \param pbc ...
23705 : !> \param pad ...
23706 : !> \param pac ...
23707 : !> \param prim ...
23708 : !> \param scale ...
23709 : ! **************************************************************************************************
23710 34 : SUBROUTINE block_11_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23711 : INTEGER :: mc_max, md_max
23712 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(11*md_max), kac(11*mc_max), &
23713 : pbd(4*md_max), pbc(4*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*4*mc_max*md_max), &
23714 : scale
23715 :
23716 : INTEGER :: ma, mb, mc, md, p_index
23717 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23718 :
23719 1058 : kbd(1:4*md_max) = 0.0_dp
23720 1198 : kbc(1:4*mc_max) = 0.0_dp
23721 2850 : kad(1:11*md_max) = 0.0_dp
23722 3235 : kac(1:11*mc_max) = 0.0_dp
23723 : p_index = 0
23724 290 : DO md = 1, md_max
23725 2555 : DO mc = 1, mc_max
23726 11581 : DO mb = 1, 4
23727 9060 : ks_bd = 0.0_dp
23728 9060 : ks_bc = 0.0_dp
23729 9060 : p_bd = pbd((md - 1)*4 + mb)
23730 9060 : p_bc = pbc((mc - 1)*4 + mb)
23731 108720 : DO ma = 1, 11
23732 99660 : p_index = p_index + 1
23733 99660 : tmp = scale*prim(p_index)
23734 99660 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23735 99660 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23736 99660 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23737 108720 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23738 : END DO
23739 9060 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
23740 11325 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
23741 : END DO
23742 : END DO
23743 : END DO
23744 34 : END SUBROUTINE block_11_4
23745 : ! **************************************************************************************************
23746 : !> \brief ...
23747 : !> \param mc_max ...
23748 : !> \param md_max ...
23749 : !> \param kbd ...
23750 : !> \param kbc ...
23751 : !> \param kad ...
23752 : !> \param kac ...
23753 : !> \param pbd ...
23754 : !> \param pbc ...
23755 : !> \param pad ...
23756 : !> \param pac ...
23757 : !> \param prim ...
23758 : !> \param scale ...
23759 : ! **************************************************************************************************
23760 28 : SUBROUTINE block_11_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23761 : INTEGER :: mc_max, md_max
23762 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(11*md_max), kac(11*mc_max), &
23763 : pbd(5*md_max), pbc(5*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*5*mc_max*md_max), &
23764 : scale
23765 :
23766 : INTEGER :: ma, mb, mc, md, p_index
23767 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23768 :
23769 1163 : kbd(1:5*md_max) = 0.0_dp
23770 1218 : kbc(1:5*mc_max) = 0.0_dp
23771 2525 : kad(1:11*md_max) = 0.0_dp
23772 2646 : kac(1:11*mc_max) = 0.0_dp
23773 : p_index = 0
23774 255 : DO md = 1, md_max
23775 2260 : DO mc = 1, mc_max
23776 12257 : DO mb = 1, 5
23777 10025 : ks_bd = 0.0_dp
23778 10025 : ks_bc = 0.0_dp
23779 10025 : p_bd = pbd((md - 1)*5 + mb)
23780 10025 : p_bc = pbc((mc - 1)*5 + mb)
23781 120300 : DO ma = 1, 11
23782 110275 : p_index = p_index + 1
23783 110275 : tmp = scale*prim(p_index)
23784 110275 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23785 110275 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23786 110275 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23787 120300 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23788 : END DO
23789 10025 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
23790 12030 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
23791 : END DO
23792 : END DO
23793 : END DO
23794 28 : END SUBROUTINE block_11_5
23795 : ! **************************************************************************************************
23796 : !> \brief ...
23797 : !> \param mc_max ...
23798 : !> \param md_max ...
23799 : !> \param kbd ...
23800 : !> \param kbc ...
23801 : !> \param kad ...
23802 : !> \param kac ...
23803 : !> \param pbd ...
23804 : !> \param pbc ...
23805 : !> \param pad ...
23806 : !> \param pac ...
23807 : !> \param prim ...
23808 : !> \param scale ...
23809 : ! **************************************************************************************************
23810 23 : SUBROUTINE block_11_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23811 : INTEGER :: mc_max, md_max
23812 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(11*md_max), kac(11*mc_max), &
23813 : pbd(6*md_max), pbc(6*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*6*mc_max*md_max), &
23814 : scale
23815 :
23816 : INTEGER :: ma, mb, mc, md, p_index
23817 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23818 :
23819 1223 : kbd(1:6*md_max) = 0.0_dp
23820 1175 : kbc(1:6*mc_max) = 0.0_dp
23821 2223 : kad(1:11*md_max) = 0.0_dp
23822 2135 : kac(1:11*mc_max) = 0.0_dp
23823 : p_index = 0
23824 223 : DO md = 1, md_max
23825 1971 : DO mc = 1, mc_max
23826 12436 : DO mb = 1, 6
23827 10488 : ks_bd = 0.0_dp
23828 10488 : ks_bc = 0.0_dp
23829 10488 : p_bd = pbd((md - 1)*6 + mb)
23830 10488 : p_bc = pbc((mc - 1)*6 + mb)
23831 125856 : DO ma = 1, 11
23832 115368 : p_index = p_index + 1
23833 115368 : tmp = scale*prim(p_index)
23834 115368 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23835 115368 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23836 115368 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23837 125856 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23838 : END DO
23839 10488 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
23840 12236 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
23841 : END DO
23842 : END DO
23843 : END DO
23844 23 : END SUBROUTINE block_11_6
23845 : ! **************************************************************************************************
23846 : !> \brief ...
23847 : !> \param mc_max ...
23848 : !> \param md_max ...
23849 : !> \param kbd ...
23850 : !> \param kbc ...
23851 : !> \param kad ...
23852 : !> \param kac ...
23853 : !> \param pbd ...
23854 : !> \param pbc ...
23855 : !> \param pad ...
23856 : !> \param pac ...
23857 : !> \param prim ...
23858 : !> \param scale ...
23859 : ! **************************************************************************************************
23860 45 : SUBROUTINE block_11_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23861 : INTEGER :: mc_max, md_max
23862 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(11*md_max), kac(11*mc_max), &
23863 : pbd(7*md_max), pbc(7*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*7*mc_max*md_max), &
23864 : scale
23865 :
23866 : INTEGER :: ma, mb, mc, md, p_index
23867 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23868 :
23869 2859 : kbd(1:7*md_max) = 0.0_dp
23870 2817 : kbc(1:7*mc_max) = 0.0_dp
23871 4467 : kad(1:11*md_max) = 0.0_dp
23872 4401 : kac(1:11*mc_max) = 0.0_dp
23873 : p_index = 0
23874 447 : DO md = 1, md_max
23875 4048 : DO mc = 1, mc_max
23876 29210 : DO mb = 1, 7
23877 25207 : ks_bd = 0.0_dp
23878 25207 : ks_bc = 0.0_dp
23879 25207 : p_bd = pbd((md - 1)*7 + mb)
23880 25207 : p_bc = pbc((mc - 1)*7 + mb)
23881 302484 : DO ma = 1, 11
23882 277277 : p_index = p_index + 1
23883 277277 : tmp = scale*prim(p_index)
23884 277277 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23885 277277 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23886 277277 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23887 302484 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23888 : END DO
23889 25207 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
23890 28808 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
23891 : END DO
23892 : END DO
23893 : END DO
23894 45 : END SUBROUTINE block_11_7
23895 : ! **************************************************************************************************
23896 : !> \brief ...
23897 : !> \param mc_max ...
23898 : !> \param md_max ...
23899 : !> \param kbd ...
23900 : !> \param kbc ...
23901 : !> \param kad ...
23902 : !> \param kac ...
23903 : !> \param pbd ...
23904 : !> \param pbc ...
23905 : !> \param pad ...
23906 : !> \param pac ...
23907 : !> \param prim ...
23908 : !> \param scale ...
23909 : ! **************************************************************************************************
23910 47 : SUBROUTINE block_11_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23911 : INTEGER :: mc_max, md_max
23912 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(11*md_max), kac(11*mc_max), &
23913 : pbd(9*md_max), pbc(9*mc_max), pad(11*md_max), pac(11*mc_max), prim(11*9*mc_max*md_max), &
23914 : scale
23915 :
23916 : INTEGER :: ma, mb, mc, md, p_index
23917 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23918 :
23919 3827 : kbd(1:9*md_max) = 0.0_dp
23920 3755 : kbc(1:9*mc_max) = 0.0_dp
23921 4667 : kad(1:11*md_max) = 0.0_dp
23922 4579 : kac(1:11*mc_max) = 0.0_dp
23923 : p_index = 0
23924 467 : DO md = 1, md_max
23925 4252 : DO mc = 1, mc_max
23926 38270 : DO mb = 1, 9
23927 34065 : ks_bd = 0.0_dp
23928 34065 : ks_bc = 0.0_dp
23929 34065 : p_bd = pbd((md - 1)*9 + mb)
23930 34065 : p_bc = pbc((mc - 1)*9 + mb)
23931 408780 : DO ma = 1, 11
23932 374715 : p_index = p_index + 1
23933 374715 : tmp = scale*prim(p_index)
23934 374715 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23935 374715 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23936 374715 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23937 408780 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23938 : END DO
23939 34065 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
23940 37850 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
23941 : END DO
23942 : END DO
23943 : END DO
23944 47 : END SUBROUTINE block_11_9
23945 : ! **************************************************************************************************
23946 : !> \brief ...
23947 : !> \param mc_max ...
23948 : !> \param md_max ...
23949 : !> \param kbd ...
23950 : !> \param kbc ...
23951 : !> \param kad ...
23952 : !> \param kac ...
23953 : !> \param pbd ...
23954 : !> \param pbc ...
23955 : !> \param pad ...
23956 : !> \param pac ...
23957 : !> \param prim ...
23958 : !> \param scale ...
23959 : ! **************************************************************************************************
23960 49 : SUBROUTINE block_11_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
23961 : INTEGER :: mc_max, md_max
23962 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(11*md_max), kac(11*mc_max), &
23963 : pbd(10*md_max), pbc(10*mc_max), pad(11*md_max), pac(11*mc_max), &
23964 : prim(11*10*mc_max*md_max), scale
23965 :
23966 : INTEGER :: ma, mb, mc, md, p_index
23967 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
23968 :
23969 4519 : kbd(1:10*md_max) = 0.0_dp
23970 4329 : kbc(1:10*mc_max) = 0.0_dp
23971 4966 : kad(1:11*md_max) = 0.0_dp
23972 4757 : kac(1:11*mc_max) = 0.0_dp
23973 : p_index = 0
23974 496 : DO md = 1, md_max
23975 4496 : DO mc = 1, mc_max
23976 44447 : DO mb = 1, 10
23977 40000 : ks_bd = 0.0_dp
23978 40000 : ks_bc = 0.0_dp
23979 40000 : p_bd = pbd((md - 1)*10 + mb)
23980 40000 : p_bc = pbc((mc - 1)*10 + mb)
23981 480000 : DO ma = 1, 11
23982 440000 : p_index = p_index + 1
23983 440000 : tmp = scale*prim(p_index)
23984 440000 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
23985 440000 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
23986 440000 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
23987 480000 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
23988 : END DO
23989 40000 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
23990 44000 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
23991 : END DO
23992 : END DO
23993 : END DO
23994 49 : END SUBROUTINE block_11_10
23995 : ! **************************************************************************************************
23996 : !> \brief ...
23997 : !> \param mc_max ...
23998 : !> \param md_max ...
23999 : !> \param kbd ...
24000 : !> \param kbc ...
24001 : !> \param kad ...
24002 : !> \param kac ...
24003 : !> \param pbd ...
24004 : !> \param pbc ...
24005 : !> \param pad ...
24006 : !> \param pac ...
24007 : !> \param prim ...
24008 : !> \param scale ...
24009 : ! **************************************************************************************************
24010 359 : SUBROUTINE block_11_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24011 : INTEGER :: mc_max, md_max
24012 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(11*md_max), kac(11*mc_max), &
24013 : pbd(11*md_max), pbc(11*mc_max), pad(11*md_max), pac(11*mc_max), &
24014 : prim(11*11*mc_max*md_max), scale
24015 :
24016 : INTEGER :: ma, mb, mc, md, p_index
24017 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24018 :
24019 32677 : kbd(1:11*md_max) = 0.0_dp
24020 24713 : kbc(1:11*mc_max) = 0.0_dp
24021 32677 : kad(1:11*md_max) = 0.0_dp
24022 24713 : kac(1:11*mc_max) = 0.0_dp
24023 : p_index = 0
24024 3297 : DO md = 1, md_max
24025 22928 : DO mc = 1, mc_max
24026 238510 : DO mb = 1, 11
24027 215941 : ks_bd = 0.0_dp
24028 215941 : ks_bc = 0.0_dp
24029 215941 : p_bd = pbd((md - 1)*11 + mb)
24030 215941 : p_bc = pbc((mc - 1)*11 + mb)
24031 2591292 : DO ma = 1, 11
24032 2375351 : p_index = p_index + 1
24033 2375351 : tmp = scale*prim(p_index)
24034 2375351 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
24035 2375351 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
24036 2375351 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
24037 2591292 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
24038 : END DO
24039 215941 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
24040 235572 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
24041 : END DO
24042 : END DO
24043 : END DO
24044 359 : END SUBROUTINE block_11_11
24045 : ! **************************************************************************************************
24046 : !> \brief ...
24047 : !> \param mc_max ...
24048 : !> \param md_max ...
24049 : !> \param kbd ...
24050 : !> \param kbc ...
24051 : !> \param kad ...
24052 : !> \param kac ...
24053 : !> \param pbd ...
24054 : !> \param pbc ...
24055 : !> \param pad ...
24056 : !> \param pac ...
24057 : !> \param prim ...
24058 : !> \param scale ...
24059 : ! **************************************************************************************************
24060 215 : SUBROUTINE block_11_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24061 : INTEGER :: mc_max, md_max
24062 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(11*md_max), kac(11*mc_max), &
24063 : pbd(15*md_max), pbc(15*mc_max), pad(11*md_max), pac(11*mc_max), &
24064 : prim(11*15*mc_max*md_max), scale
24065 :
24066 : INTEGER :: ma, mb, mc, md, p_index
24067 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24068 :
24069 28205 : kbd(1:15*md_max) = 0.0_dp
24070 23975 : kbc(1:15*mc_max) = 0.0_dp
24071 20741 : kad(1:11*md_max) = 0.0_dp
24072 17639 : kac(1:11*mc_max) = 0.0_dp
24073 : p_index = 0
24074 2081 : DO md = 1, md_max
24075 16630 : DO mc = 1, mc_max
24076 234650 : DO mb = 1, 15
24077 218235 : ks_bd = 0.0_dp
24078 218235 : ks_bc = 0.0_dp
24079 218235 : p_bd = pbd((md - 1)*15 + mb)
24080 218235 : p_bc = pbc((mc - 1)*15 + mb)
24081 2618820 : DO ma = 1, 11
24082 2400585 : p_index = p_index + 1
24083 2400585 : tmp = scale*prim(p_index)
24084 2400585 : ks_bc = ks_bc + tmp*pad((md - 1)*11 + ma)
24085 2400585 : ks_bd = ks_bd + tmp*pac((mc - 1)*11 + ma)
24086 2400585 : kad((md - 1)*11 + ma) = kad((md - 1)*11 + ma) - tmp*p_bc
24087 2618820 : kac((mc - 1)*11 + ma) = kac((mc - 1)*11 + ma) - tmp*p_bd
24088 : END DO
24089 218235 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
24090 232784 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
24091 : END DO
24092 : END DO
24093 : END DO
24094 215 : END SUBROUTINE block_11_15
24095 : ! **************************************************************************************************
24096 : !> \brief ...
24097 : !> \param kbd ...
24098 : !> \param kbc ...
24099 : !> \param kad ...
24100 : !> \param kac ...
24101 : !> \param pbd ...
24102 : !> \param pbc ...
24103 : !> \param pad ...
24104 : !> \param pac ...
24105 : !> \param prim ...
24106 : !> \param scale ...
24107 : ! **************************************************************************************************
24108 11 : SUBROUTINE block_15_1_1_1(kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24109 : REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(15*1), &
24110 : kac(15*1), pbd(1*1), pbc(1*1), &
24111 : pad(15*1), pac(15*1), prim(15*1*1*1), &
24112 : scale
24113 :
24114 : INTEGER :: ma, mb, mc, md, p_index
24115 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24116 :
24117 11 : kbd(1:1*1) = 0.0_dp
24118 11 : kbc(1:1*1) = 0.0_dp
24119 11 : kad(1:15*1) = 0.0_dp
24120 11 : kac(1:15*1) = 0.0_dp
24121 11 : p_index = 0
24122 22 : DO md = 1, 1
24123 33 : DO mc = 1, 1
24124 33 : DO mb = 1, 1
24125 11 : ks_bd = 0.0_dp
24126 11 : ks_bc = 0.0_dp
24127 11 : p_bd = pbd((md - 1)*1 + mb)
24128 11 : p_bc = pbc((mc - 1)*1 + mb)
24129 176 : DO ma = 1, 15
24130 165 : p_index = p_index + 1
24131 165 : tmp = scale*prim(p_index)
24132 165 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24133 165 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24134 165 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24135 176 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24136 : END DO
24137 11 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
24138 22 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
24139 : END DO
24140 : END DO
24141 : END DO
24142 11 : END SUBROUTINE block_15_1_1_1
24143 : ! **************************************************************************************************
24144 : !> \brief ...
24145 : !> \param md_max ...
24146 : !> \param kbd ...
24147 : !> \param kbc ...
24148 : !> \param kad ...
24149 : !> \param kac ...
24150 : !> \param pbd ...
24151 : !> \param pbc ...
24152 : !> \param pad ...
24153 : !> \param pac ...
24154 : !> \param prim ...
24155 : !> \param scale ...
24156 : ! **************************************************************************************************
24157 48 : SUBROUTINE block_15_1_1(md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24158 : INTEGER :: md_max
24159 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*1), kad(15*md_max), kac(15*1), pbd(1*md_max), &
24160 : pbc(1*1), pad(15*md_max), pac(15*1), prim(15*1*1*md_max), scale
24161 :
24162 : INTEGER :: ma, mb, mc, md, p_index
24163 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24164 :
24165 433 : kbd(1:1*md_max) = 0.0_dp
24166 48 : kbc(1:1*1) = 0.0_dp
24167 5823 : kad(1:15*md_max) = 0.0_dp
24168 48 : kac(1:15*1) = 0.0_dp
24169 48 : p_index = 0
24170 433 : DO md = 1, md_max
24171 818 : DO mc = 1, 1
24172 1155 : DO mb = 1, 1
24173 385 : ks_bd = 0.0_dp
24174 385 : ks_bc = 0.0_dp
24175 385 : p_bd = pbd((md - 1)*1 + mb)
24176 385 : p_bc = pbc((mc - 1)*1 + mb)
24177 6160 : DO ma = 1, 15
24178 5775 : p_index = p_index + 1
24179 5775 : tmp = scale*prim(p_index)
24180 5775 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24181 5775 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24182 5775 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24183 6160 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24184 : END DO
24185 385 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
24186 770 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
24187 : END DO
24188 : END DO
24189 : END DO
24190 48 : END SUBROUTINE block_15_1_1
24191 : ! **************************************************************************************************
24192 : !> \brief ...
24193 : !> \param mc_max ...
24194 : !> \param md_max ...
24195 : !> \param kbd ...
24196 : !> \param kbc ...
24197 : !> \param kad ...
24198 : !> \param kac ...
24199 : !> \param pbd ...
24200 : !> \param pbc ...
24201 : !> \param pad ...
24202 : !> \param pac ...
24203 : !> \param prim ...
24204 : !> \param scale ...
24205 : ! **************************************************************************************************
24206 374 : SUBROUTINE block_15_1(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24207 : INTEGER :: mc_max, md_max
24208 : REAL(KIND=dp) :: kbd(1*md_max), kbc(1*mc_max), kad(15*md_max), kac(15*mc_max), &
24209 : pbd(1*md_max), pbc(1*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*1*mc_max*md_max), &
24210 : scale
24211 :
24212 : INTEGER :: ma, mb, mc, md, p_index
24213 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24214 :
24215 3380 : kbd(1:1*md_max) = 0.0_dp
24216 3266 : kbc(1:1*mc_max) = 0.0_dp
24217 45464 : kad(1:15*md_max) = 0.0_dp
24218 43754 : kac(1:15*mc_max) = 0.0_dp
24219 : p_index = 0
24220 3380 : DO md = 1, md_max
24221 27228 : DO mc = 1, mc_max
24222 50702 : DO mb = 1, 1
24223 23848 : ks_bd = 0.0_dp
24224 23848 : ks_bc = 0.0_dp
24225 23848 : p_bd = pbd((md - 1)*1 + mb)
24226 23848 : p_bc = pbc((mc - 1)*1 + mb)
24227 381568 : DO ma = 1, 15
24228 357720 : p_index = p_index + 1
24229 357720 : tmp = scale*prim(p_index)
24230 357720 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24231 357720 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24232 357720 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24233 381568 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24234 : END DO
24235 23848 : kbd((md - 1)*1 + mb) = kbd((md - 1)*1 + mb) - ks_bd
24236 47696 : kbc((mc - 1)*1 + mb) = kbc((mc - 1)*1 + mb) - ks_bc
24237 : END DO
24238 : END DO
24239 : END DO
24240 374 : END SUBROUTINE block_15_1
24241 : ! **************************************************************************************************
24242 : !> \brief ...
24243 : !> \param mc_max ...
24244 : !> \param md_max ...
24245 : !> \param kbd ...
24246 : !> \param kbc ...
24247 : !> \param kad ...
24248 : !> \param kac ...
24249 : !> \param pbd ...
24250 : !> \param pbc ...
24251 : !> \param pad ...
24252 : !> \param pac ...
24253 : !> \param prim ...
24254 : !> \param scale ...
24255 : ! **************************************************************************************************
24256 41 : SUBROUTINE block_15_2(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24257 : INTEGER :: mc_max, md_max
24258 : REAL(KIND=dp) :: kbd(2*md_max), kbc(2*mc_max), kad(15*md_max), kac(15*mc_max), &
24259 : pbd(2*md_max), pbc(2*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*2*mc_max*md_max), &
24260 : scale
24261 :
24262 : INTEGER :: ma, mb, mc, md, p_index
24263 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24264 :
24265 603 : kbd(1:2*md_max) = 0.0_dp
24266 759 : kbc(1:2*mc_max) = 0.0_dp
24267 4256 : kad(1:15*md_max) = 0.0_dp
24268 5426 : kac(1:15*mc_max) = 0.0_dp
24269 : p_index = 0
24270 322 : DO md = 1, md_max
24271 2824 : DO mc = 1, mc_max
24272 7787 : DO mb = 1, 2
24273 5004 : ks_bd = 0.0_dp
24274 5004 : ks_bc = 0.0_dp
24275 5004 : p_bd = pbd((md - 1)*2 + mb)
24276 5004 : p_bc = pbc((mc - 1)*2 + mb)
24277 80064 : DO ma = 1, 15
24278 75060 : p_index = p_index + 1
24279 75060 : tmp = scale*prim(p_index)
24280 75060 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24281 75060 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24282 75060 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24283 80064 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24284 : END DO
24285 5004 : kbd((md - 1)*2 + mb) = kbd((md - 1)*2 + mb) - ks_bd
24286 7506 : kbc((mc - 1)*2 + mb) = kbc((mc - 1)*2 + mb) - ks_bc
24287 : END DO
24288 : END DO
24289 : END DO
24290 41 : END SUBROUTINE block_15_2
24291 : ! **************************************************************************************************
24292 : !> \brief ...
24293 : !> \param mc_max ...
24294 : !> \param md_max ...
24295 : !> \param kbd ...
24296 : !> \param kbc ...
24297 : !> \param kad ...
24298 : !> \param kac ...
24299 : !> \param pbd ...
24300 : !> \param pbc ...
24301 : !> \param pad ...
24302 : !> \param pac ...
24303 : !> \param prim ...
24304 : !> \param scale ...
24305 : ! **************************************************************************************************
24306 35 : SUBROUTINE block_15_3(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24307 : INTEGER :: mc_max, md_max
24308 : REAL(KIND=dp) :: kbd(3*md_max), kbc(3*mc_max), kad(15*md_max), kac(15*mc_max), &
24309 : pbd(3*md_max), pbc(3*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*3*mc_max*md_max), &
24310 : scale
24311 :
24312 : INTEGER :: ma, mb, mc, md, p_index
24313 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24314 :
24315 812 : kbd(1:3*md_max) = 0.0_dp
24316 953 : kbc(1:3*mc_max) = 0.0_dp
24317 3920 : kad(1:15*md_max) = 0.0_dp
24318 4625 : kac(1:15*mc_max) = 0.0_dp
24319 : p_index = 0
24320 294 : DO md = 1, md_max
24321 2604 : DO mc = 1, mc_max
24322 9499 : DO mb = 1, 3
24323 6930 : ks_bd = 0.0_dp
24324 6930 : ks_bc = 0.0_dp
24325 6930 : p_bd = pbd((md - 1)*3 + mb)
24326 6930 : p_bc = pbc((mc - 1)*3 + mb)
24327 110880 : DO ma = 1, 15
24328 103950 : p_index = p_index + 1
24329 103950 : tmp = scale*prim(p_index)
24330 103950 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24331 103950 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24332 103950 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24333 110880 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24334 : END DO
24335 6930 : kbd((md - 1)*3 + mb) = kbd((md - 1)*3 + mb) - ks_bd
24336 9240 : kbc((mc - 1)*3 + mb) = kbc((mc - 1)*3 + mb) - ks_bc
24337 : END DO
24338 : END DO
24339 : END DO
24340 35 : END SUBROUTINE block_15_3
24341 : ! **************************************************************************************************
24342 : !> \brief ...
24343 : !> \param mc_max ...
24344 : !> \param md_max ...
24345 : !> \param kbd ...
24346 : !> \param kbc ...
24347 : !> \param kad ...
24348 : !> \param kac ...
24349 : !> \param pbd ...
24350 : !> \param pbc ...
24351 : !> \param pad ...
24352 : !> \param pac ...
24353 : !> \param prim ...
24354 : !> \param scale ...
24355 : ! **************************************************************************************************
24356 29 : SUBROUTINE block_15_4(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24357 : INTEGER :: mc_max, md_max
24358 : REAL(KIND=dp) :: kbd(4*md_max), kbc(4*mc_max), kad(15*md_max), kac(15*mc_max), &
24359 : pbd(4*md_max), pbc(4*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*4*mc_max*md_max), &
24360 : scale
24361 :
24362 : INTEGER :: ma, mb, mc, md, p_index
24363 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24364 :
24365 953 : kbd(1:4*md_max) = 0.0_dp
24366 1041 : kbc(1:4*mc_max) = 0.0_dp
24367 3494 : kad(1:15*md_max) = 0.0_dp
24368 3824 : kac(1:15*mc_max) = 0.0_dp
24369 : p_index = 0
24370 260 : DO md = 1, md_max
24371 2325 : DO mc = 1, mc_max
24372 10556 : DO mb = 1, 4
24373 8260 : ks_bd = 0.0_dp
24374 8260 : ks_bc = 0.0_dp
24375 8260 : p_bd = pbd((md - 1)*4 + mb)
24376 8260 : p_bc = pbc((mc - 1)*4 + mb)
24377 132160 : DO ma = 1, 15
24378 123900 : p_index = p_index + 1
24379 123900 : tmp = scale*prim(p_index)
24380 123900 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24381 123900 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24382 123900 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24383 132160 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24384 : END DO
24385 8260 : kbd((md - 1)*4 + mb) = kbd((md - 1)*4 + mb) - ks_bd
24386 10325 : kbc((mc - 1)*4 + mb) = kbc((mc - 1)*4 + mb) - ks_bc
24387 : END DO
24388 : END DO
24389 : END DO
24390 29 : END SUBROUTINE block_15_4
24391 : ! **************************************************************************************************
24392 : !> \brief ...
24393 : !> \param mc_max ...
24394 : !> \param md_max ...
24395 : !> \param kbd ...
24396 : !> \param kbc ...
24397 : !> \param kad ...
24398 : !> \param kac ...
24399 : !> \param pbd ...
24400 : !> \param pbc ...
24401 : !> \param pad ...
24402 : !> \param pac ...
24403 : !> \param prim ...
24404 : !> \param scale ...
24405 : ! **************************************************************************************************
24406 24 : SUBROUTINE block_15_5(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24407 : INTEGER :: mc_max, md_max
24408 : REAL(KIND=dp) :: kbd(5*md_max), kbc(5*mc_max), kad(15*md_max), kac(15*mc_max), &
24409 : pbd(5*md_max), pbc(5*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*5*mc_max*md_max), &
24410 : scale
24411 :
24412 : INTEGER :: ma, mb, mc, md, p_index
24413 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24414 :
24415 1049 : kbd(1:5*md_max) = 0.0_dp
24416 1059 : kbc(1:5*mc_max) = 0.0_dp
24417 3099 : kad(1:15*md_max) = 0.0_dp
24418 3129 : kac(1:15*mc_max) = 0.0_dp
24419 : p_index = 0
24420 229 : DO md = 1, md_max
24421 2052 : DO mc = 1, mc_max
24422 11143 : DO mb = 1, 5
24423 9115 : ks_bd = 0.0_dp
24424 9115 : ks_bc = 0.0_dp
24425 9115 : p_bd = pbd((md - 1)*5 + mb)
24426 9115 : p_bc = pbc((mc - 1)*5 + mb)
24427 145840 : DO ma = 1, 15
24428 136725 : p_index = p_index + 1
24429 136725 : tmp = scale*prim(p_index)
24430 136725 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24431 136725 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24432 136725 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24433 145840 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24434 : END DO
24435 9115 : kbd((md - 1)*5 + mb) = kbd((md - 1)*5 + mb) - ks_bd
24436 10938 : kbc((mc - 1)*5 + mb) = kbc((mc - 1)*5 + mb) - ks_bc
24437 : END DO
24438 : END DO
24439 : END DO
24440 24 : END SUBROUTINE block_15_5
24441 : ! **************************************************************************************************
24442 : !> \brief ...
24443 : !> \param mc_max ...
24444 : !> \param md_max ...
24445 : !> \param kbd ...
24446 : !> \param kbc ...
24447 : !> \param kad ...
24448 : !> \param kac ...
24449 : !> \param pbd ...
24450 : !> \param pbc ...
24451 : !> \param pad ...
24452 : !> \param pac ...
24453 : !> \param prim ...
24454 : !> \param scale ...
24455 : ! **************************************************************************************************
24456 19 : SUBROUTINE block_15_6(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24457 : INTEGER :: mc_max, md_max
24458 : REAL(KIND=dp) :: kbd(6*md_max), kbc(6*mc_max), kad(15*md_max), kac(15*mc_max), &
24459 : pbd(6*md_max), pbc(6*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*6*mc_max*md_max), &
24460 : scale
24461 :
24462 : INTEGER :: ma, mb, mc, md, p_index
24463 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24464 :
24465 1057 : kbd(1:6*md_max) = 0.0_dp
24466 985 : kbc(1:6*mc_max) = 0.0_dp
24467 2614 : kad(1:15*md_max) = 0.0_dp
24468 2434 : kac(1:15*mc_max) = 0.0_dp
24469 : p_index = 0
24470 192 : DO md = 1, md_max
24471 1718 : DO mc = 1, mc_max
24472 10855 : DO mb = 1, 6
24473 9156 : ks_bd = 0.0_dp
24474 9156 : ks_bc = 0.0_dp
24475 9156 : p_bd = pbd((md - 1)*6 + mb)
24476 9156 : p_bc = pbc((mc - 1)*6 + mb)
24477 146496 : DO ma = 1, 15
24478 137340 : p_index = p_index + 1
24479 137340 : tmp = scale*prim(p_index)
24480 137340 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24481 137340 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24482 137340 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24483 146496 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24484 : END DO
24485 9156 : kbd((md - 1)*6 + mb) = kbd((md - 1)*6 + mb) - ks_bd
24486 10682 : kbc((mc - 1)*6 + mb) = kbc((mc - 1)*6 + mb) - ks_bc
24487 : END DO
24488 : END DO
24489 : END DO
24490 19 : END SUBROUTINE block_15_6
24491 : ! **************************************************************************************************
24492 : !> \brief ...
24493 : !> \param mc_max ...
24494 : !> \param md_max ...
24495 : !> \param kbd ...
24496 : !> \param kbc ...
24497 : !> \param kad ...
24498 : !> \param kac ...
24499 : !> \param pbd ...
24500 : !> \param pbc ...
24501 : !> \param pad ...
24502 : !> \param pac ...
24503 : !> \param prim ...
24504 : !> \param scale ...
24505 : ! **************************************************************************************************
24506 47 : SUBROUTINE block_15_7(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24507 : INTEGER :: mc_max, md_max
24508 : REAL(KIND=dp) :: kbd(7*md_max), kbc(7*mc_max), kad(15*md_max), kac(15*mc_max), &
24509 : pbd(7*md_max), pbc(7*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*7*mc_max*md_max), &
24510 : scale
24511 :
24512 : INTEGER :: ma, mb, mc, md, p_index
24513 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24514 :
24515 2973 : kbd(1:7*md_max) = 0.0_dp
24516 2959 : kbc(1:7*mc_max) = 0.0_dp
24517 6317 : kad(1:15*md_max) = 0.0_dp
24518 6287 : kac(1:15*mc_max) = 0.0_dp
24519 : p_index = 0
24520 465 : DO md = 1, md_max
24521 4256 : DO mc = 1, mc_max
24522 30746 : DO mb = 1, 7
24523 26537 : ks_bd = 0.0_dp
24524 26537 : ks_bc = 0.0_dp
24525 26537 : p_bd = pbd((md - 1)*7 + mb)
24526 26537 : p_bc = pbc((mc - 1)*7 + mb)
24527 424592 : DO ma = 1, 15
24528 398055 : p_index = p_index + 1
24529 398055 : tmp = scale*prim(p_index)
24530 398055 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24531 398055 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24532 398055 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24533 424592 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24534 : END DO
24535 26537 : kbd((md - 1)*7 + mb) = kbd((md - 1)*7 + mb) - ks_bd
24536 30328 : kbc((mc - 1)*7 + mb) = kbc((mc - 1)*7 + mb) - ks_bc
24537 : END DO
24538 : END DO
24539 : END DO
24540 47 : END SUBROUTINE block_15_7
24541 : ! **************************************************************************************************
24542 : !> \brief ...
24543 : !> \param mc_max ...
24544 : !> \param md_max ...
24545 : !> \param kbd ...
24546 : !> \param kbc ...
24547 : !> \param kad ...
24548 : !> \param kac ...
24549 : !> \param pbd ...
24550 : !> \param pbc ...
24551 : !> \param pad ...
24552 : !> \param pac ...
24553 : !> \param prim ...
24554 : !> \param scale ...
24555 : ! **************************************************************************************************
24556 49 : SUBROUTINE block_15_9(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24557 : INTEGER :: mc_max, md_max
24558 : REAL(KIND=dp) :: kbd(9*md_max), kbc(9*mc_max), kad(15*md_max), kac(15*mc_max), &
24559 : pbd(9*md_max), pbc(9*mc_max), pad(15*md_max), pac(15*mc_max), prim(15*9*mc_max*md_max), &
24560 : scale
24561 :
24562 : INTEGER :: ma, mb, mc, md, p_index
24563 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24564 :
24565 4063 : kbd(1:9*md_max) = 0.0_dp
24566 3937 : kbc(1:9*mc_max) = 0.0_dp
24567 6739 : kad(1:15*md_max) = 0.0_dp
24568 6529 : kac(1:15*mc_max) = 0.0_dp
24569 : p_index = 0
24570 495 : DO md = 1, md_max
24571 4520 : DO mc = 1, mc_max
24572 40696 : DO mb = 1, 9
24573 36225 : ks_bd = 0.0_dp
24574 36225 : ks_bc = 0.0_dp
24575 36225 : p_bd = pbd((md - 1)*9 + mb)
24576 36225 : p_bc = pbc((mc - 1)*9 + mb)
24577 579600 : DO ma = 1, 15
24578 543375 : p_index = p_index + 1
24579 543375 : tmp = scale*prim(p_index)
24580 543375 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24581 543375 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24582 543375 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24583 579600 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24584 : END DO
24585 36225 : kbd((md - 1)*9 + mb) = kbd((md - 1)*9 + mb) - ks_bd
24586 40250 : kbc((mc - 1)*9 + mb) = kbc((mc - 1)*9 + mb) - ks_bc
24587 : END DO
24588 : END DO
24589 : END DO
24590 49 : END SUBROUTINE block_15_9
24591 : ! **************************************************************************************************
24592 : !> \brief ...
24593 : !> \param mc_max ...
24594 : !> \param md_max ...
24595 : !> \param kbd ...
24596 : !> \param kbc ...
24597 : !> \param kad ...
24598 : !> \param kac ...
24599 : !> \param pbd ...
24600 : !> \param pbc ...
24601 : !> \param pad ...
24602 : !> \param pac ...
24603 : !> \param prim ...
24604 : !> \param scale ...
24605 : ! **************************************************************************************************
24606 124 : SUBROUTINE block_15_10(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24607 : INTEGER :: mc_max, md_max
24608 : REAL(KIND=dp) :: kbd(10*md_max), kbc(10*mc_max), kad(15*md_max), kac(15*mc_max), &
24609 : pbd(10*md_max), pbc(10*mc_max), pad(15*md_max), pac(15*mc_max), &
24610 : prim(15*10*mc_max*md_max), scale
24611 :
24612 : INTEGER :: ma, mb, mc, md, p_index
24613 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24614 :
24615 9994 : kbd(1:10*md_max) = 0.0_dp
24616 8044 : kbc(1:10*mc_max) = 0.0_dp
24617 14929 : kad(1:15*md_max) = 0.0_dp
24618 12004 : kac(1:15*mc_max) = 0.0_dp
24619 : p_index = 0
24620 1111 : DO md = 1, md_max
24621 7941 : DO mc = 1, mc_max
24622 76117 : DO mb = 1, 10
24623 68300 : ks_bd = 0.0_dp
24624 68300 : ks_bc = 0.0_dp
24625 68300 : p_bd = pbd((md - 1)*10 + mb)
24626 68300 : p_bc = pbc((mc - 1)*10 + mb)
24627 1092800 : DO ma = 1, 15
24628 1024500 : p_index = p_index + 1
24629 1024500 : tmp = scale*prim(p_index)
24630 1024500 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24631 1024500 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24632 1024500 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24633 1092800 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24634 : END DO
24635 68300 : kbd((md - 1)*10 + mb) = kbd((md - 1)*10 + mb) - ks_bd
24636 75130 : kbc((mc - 1)*10 + mb) = kbc((mc - 1)*10 + mb) - ks_bc
24637 : END DO
24638 : END DO
24639 : END DO
24640 124 : END SUBROUTINE block_15_10
24641 : ! **************************************************************************************************
24642 : !> \brief ...
24643 : !> \param mc_max ...
24644 : !> \param md_max ...
24645 : !> \param kbd ...
24646 : !> \param kbc ...
24647 : !> \param kad ...
24648 : !> \param kac ...
24649 : !> \param pbd ...
24650 : !> \param pbc ...
24651 : !> \param pad ...
24652 : !> \param pac ...
24653 : !> \param prim ...
24654 : !> \param scale ...
24655 : ! **************************************************************************************************
24656 203 : SUBROUTINE block_15_11(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24657 : INTEGER :: mc_max, md_max
24658 : REAL(KIND=dp) :: kbd(11*md_max), kbc(11*mc_max), kad(15*md_max), kac(15*mc_max), &
24659 : pbd(11*md_max), pbc(11*mc_max), pad(15*md_max), pac(15*mc_max), &
24660 : prim(15*11*mc_max*md_max), scale
24661 :
24662 : INTEGER :: ma, mb, mc, md, p_index
24663 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24664 :
24665 17924 : kbd(1:11*md_max) = 0.0_dp
24666 13117 : kbc(1:11*mc_max) = 0.0_dp
24667 24368 : kad(1:15*md_max) = 0.0_dp
24668 17813 : kac(1:15*mc_max) = 0.0_dp
24669 : p_index = 0
24670 1814 : DO md = 1, md_max
24671 12037 : DO mc = 1, mc_max
24672 124287 : DO mb = 1, 11
24673 112453 : ks_bd = 0.0_dp
24674 112453 : ks_bc = 0.0_dp
24675 112453 : p_bd = pbd((md - 1)*11 + mb)
24676 112453 : p_bc = pbc((mc - 1)*11 + mb)
24677 1799248 : DO ma = 1, 15
24678 1686795 : p_index = p_index + 1
24679 1686795 : tmp = scale*prim(p_index)
24680 1686795 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24681 1686795 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24682 1686795 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24683 1799248 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24684 : END DO
24685 112453 : kbd((md - 1)*11 + mb) = kbd((md - 1)*11 + mb) - ks_bd
24686 122676 : kbc((mc - 1)*11 + mb) = kbc((mc - 1)*11 + mb) - ks_bc
24687 : END DO
24688 : END DO
24689 : END DO
24690 203 : END SUBROUTINE block_15_11
24691 : ! **************************************************************************************************
24692 : !> \brief ...
24693 : !> \param mc_max ...
24694 : !> \param md_max ...
24695 : !> \param kbd ...
24696 : !> \param kbc ...
24697 : !> \param kad ...
24698 : !> \param kac ...
24699 : !> \param pbd ...
24700 : !> \param pbc ...
24701 : !> \param pad ...
24702 : !> \param pac ...
24703 : !> \param prim ...
24704 : !> \param scale ...
24705 : ! **************************************************************************************************
24706 364 : SUBROUTINE block_15_15(mc_max, md_max, kbd, kbc, kad, kac, pbd, pbc, pad, pac, prim, scale)
24707 : INTEGER :: mc_max, md_max
24708 : REAL(KIND=dp) :: kbd(15*md_max), kbc(15*mc_max), kad(15*md_max), kac(15*mc_max), &
24709 : pbd(15*md_max), pbc(15*mc_max), pad(15*md_max), pac(15*mc_max), &
24710 : prim(15*15*mc_max*md_max), scale
24711 :
24712 : INTEGER :: ma, mb, mc, md, p_index
24713 : REAL(KIND=dp) :: ks_bc, ks_bd, p_bc, p_bd, tmp
24714 :
24715 45379 : kbd(1:15*md_max) = 0.0_dp
24716 34849 : kbc(1:15*mc_max) = 0.0_dp
24717 45379 : kad(1:15*md_max) = 0.0_dp
24718 34849 : kac(1:15*mc_max) = 0.0_dp
24719 : p_index = 0
24720 3365 : DO md = 1, md_max
24721 24077 : DO mc = 1, mc_max
24722 334393 : DO mb = 1, 15
24723 310680 : ks_bd = 0.0_dp
24724 310680 : ks_bc = 0.0_dp
24725 310680 : p_bd = pbd((md - 1)*15 + mb)
24726 310680 : p_bc = pbc((mc - 1)*15 + mb)
24727 4970880 : DO ma = 1, 15
24728 4660200 : p_index = p_index + 1
24729 4660200 : tmp = scale*prim(p_index)
24730 4660200 : ks_bc = ks_bc + tmp*pad((md - 1)*15 + ma)
24731 4660200 : ks_bd = ks_bd + tmp*pac((mc - 1)*15 + ma)
24732 4660200 : kad((md - 1)*15 + ma) = kad((md - 1)*15 + ma) - tmp*p_bc
24733 4970880 : kac((mc - 1)*15 + ma) = kac((mc - 1)*15 + ma) - tmp*p_bd
24734 : END DO
24735 310680 : kbd((md - 1)*15 + mb) = kbd((md - 1)*15 + mb) - ks_bd
24736 331392 : kbc((mc - 1)*15 + mb) = kbc((mc - 1)*15 + mb) - ks_bc
24737 : END DO
24738 : END DO
24739 : END DO
24740 364 : END SUBROUTINE block_15_15
24741 : #endif
24742 : END MODULE hfx_contract_block
|