2 ! Reduced testcase by Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
7 MODULE hfx_contract_block
8 INTEGER, PARAMETER :: dp
=8
10 SUBROUTINE contract_block(ma_max
,mb_max
,mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
11 REAL(KIND
=dp
) :: kbd(mb_max
*md_max
), kbc(mb_max
*mc_max
), &
12 kad(ma_max
*md_max
), kac(ma_max
*mc_max
), pbd(mb_max
*md_max
), &
13 pbc(mb_max
*mc_max
), pad(ma_max
*md_max
), pac(ma_max
*mc_max
), &
14 prim(ma_max
*mb_max
*mc_max
*md_max
), scale
23 CALL block_1_1_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
24 CALL block_1_1_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
25 CALL block_1_1_11(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
32 CALL block_1_2_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
33 CALL block_1_2_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
34 CALL block_1_2_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
35 CALL block_1_2_1_5(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
36 CALL block_1_2_1_6(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
37 CALL block_1_2_1_7(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
38 CALL block_1_2_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
39 CALL block_1_2_2_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
40 CALL block_1_2_4_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
41 CALL block_1_2_6_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
45 CALL block_1_2_7_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
52 CALL block_1_3_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
53 CALL block_1_3_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
54 CALL block_1_3_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
55 CALL block_1_3_1_5(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
56 CALL block_1_3_1_6(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
57 CALL block_1_3_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
58 CALL block_1_3_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
59 CALL block_1_3_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
60 CALL block_1_3_2_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
64 CALL block_1_3_3_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
65 CALL block_1_3_3_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
69 CALL block_1_3_5(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
70 CALL block_1_3_5(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
77 CALL block_1_4_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
78 CALL block_1_4_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
79 CALL block_1_4_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
83 CALL block_1_4_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
84 CALL block_1_4_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
85 CALL block_1_4_3_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
86 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
87 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
88 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
89 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
90 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
91 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
92 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
93 CALL block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
94 CALL block_1_4_4_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
95 CALL block_1_4_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
99 CALL block_1_5_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
100 CALL block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
101 CALL block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
102 CALL block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
103 CALL block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
104 CALL block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
105 CALL block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
106 CALL block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
110 CALL block_1_6_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
111 CALL block_1_6_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
112 CALL block_1_6_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
116 CALL block_1_6_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
131 CALL block_2_1_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
132 CALL block_2_1_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
133 CALL block_2_1_1_5(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
134 CALL block_2_1_1_6(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
135 CALL block_2_1_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
136 CALL block_2_1_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
137 CALL block_2_1_2_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
144 CALL block_2_2_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
145 CALL block_2_2_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
146 CALL block_2_2_3_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
153 CALL block_3_2_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
154 CALL block_3_2_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
155 CALL block_3_2_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
156 CALL block_3_2_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
157 CALL block_3_2_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
164 CALL block_3_5_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
165 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
166 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
167 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
168 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
169 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
170 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
171 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
172 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
173 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
174 CALL block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
176 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
177 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
178 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
179 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
180 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
181 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
182 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
183 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
184 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
185 CALL block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
187 CALL block_3_9(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
195 CALL block_4_1_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
196 CALL block_4_1_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
197 CALL block_4_1_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
198 CALL block_4_1_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
199 CALL block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
200 CALL block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
201 CALL block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
202 CALL block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
203 CALL block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
204 CALL block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
205 CALL block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
212 CALL block_4_2_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
213 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
214 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
215 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
216 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
217 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
218 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
219 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
220 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
221 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
222 CALL block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
226 CALL block_4_3_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
228 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
229 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
230 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
231 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
232 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
233 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
234 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
235 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
236 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
237 CALL block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
240 CALL block_4_4_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
251 CALL block_15_15(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
254 END SUBROUTINE contract_block
255 SUBROUTINE block_1_1_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
256 REAL(KIND
=dp
) :: kbd(1*1), kbc(1*1), kad(1*1), kac(1*1), pbd(1*1), &
257 pbc(1*1), pad(1*1), pac(1*1), prim(1*1*1*1), scale
262 kad((md
-1)*1+ma
) = kad((md
-1)*1+ma
)-tmp
*p_bc
267 END SUBROUTINE block_1_1_1_1
268 SUBROUTINE block_1_1_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
269 REAL(KIND
=dp
) :: kbd(1*2), kbc(1*1), kad(1*2), kac(1*1), pbd(1*2), &
270 pbc(1*1), pad(1*2), pac(1*1), prim(1*1*1*2), scale
275 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
280 END SUBROUTINE block_1_1_1_2
281 SUBROUTINE block_1_1_11(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
282 REAL(KIND
=dp
) :: kbd(1*md_max
), kbc(1*11), kad(1*md_max
), kac(1*11), &
283 pbd(1*md_max
), pbc(1*11), pad(1*md_max
), pac(1*11), &
284 prim(1*1*11*md_max
), scale
288 kbc((mc
-1)*1+mb
) = kbc((mc
-1)*1+mb
) - ks_bc
292 END SUBROUTINE block_1_1_11
293 SUBROUTINE block_1_2_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
294 REAL(KIND
=dp
) :: kbd(2*2), kbc(2*1), kad(1*2), kac(1*1), pbd(2*2), &
295 pbc(2*1), pad(1*2), pac(1*1), prim(1*2*1*2), scale
299 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
303 END SUBROUTINE block_1_2_1_2
304 SUBROUTINE block_1_2_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
305 REAL(KIND
=dp
) :: kbd(2*3), kbc(2*1), kad(1*3), kac(1*1), pbd(2*3), &
306 pbc(2*1), pad(1*3), pac(1*1), prim(1*2*1*3), scale
310 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
314 END SUBROUTINE block_1_2_1_3
315 SUBROUTINE block_1_2_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
316 REAL(KIND
=dp
) :: kbd(2*4), kbc(2*1), kad(1*4), kac(1*1), pbd(2*4), &
317 pbc(2*1), pad(1*4), pac(1*1), prim(1*2*1*4), scale
321 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
325 END SUBROUTINE block_1_2_1_4
326 SUBROUTINE block_1_2_1_5(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
327 REAL(KIND
=dp
) :: kbd(2*5), kbc(2*1), kad(1*5), kac(1*1), pbd(2*5), &
328 pbc(2*1), pad(1*5), pac(1*1), prim(1*2*1*5), scale
332 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
336 END SUBROUTINE block_1_2_1_5
337 SUBROUTINE block_1_2_1_6(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
338 REAL(KIND
=dp
) :: kbd(2*6), kbc(2*1), kad(1*6), kac(1*1), pbd(2*6), &
339 pbc(2*1), pad(1*6), pac(1*1), prim(1*2*1*6), scale
344 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
349 END SUBROUTINE block_1_2_1_6
350 SUBROUTINE block_1_2_1_7(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
351 REAL(KIND
=dp
) :: kbd(2*7), kbc(2*1), kad(1*7), kac(1*1), pbd(2*7), &
352 pbc(2*1), pad(1*7), pac(1*1), prim(1*2*1*7), scale
357 kad((md
-1)*1+ma
) = kad((md
-1)*1+ma
)-tmp
*p_bc
362 END SUBROUTINE block_1_2_1_7
363 SUBROUTINE block_1_2_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
364 REAL(KIND
=dp
) :: kbd(2*2), kbc(2*2), kad(1*2), kac(1*2), pbd(2*2), &
365 pbc(2*2), pad(1*2), pac(1*2), prim(1*2*2*2), scale
369 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
373 END SUBROUTINE block_1_2_2_2
374 SUBROUTINE block_1_2_2_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
375 REAL(KIND
=dp
) :: kbd(2*4), kbc(2*2), kad(1*4), kac(1*2), pbd(2*4), &
376 pbc(2*2), pad(1*4), pac(1*2), prim(1*2*2*4), scale
380 kbd((md
-1)*2+mb
) = kbd((md
-1)*2+mb
) - ks_bd
384 END SUBROUTINE block_1_2_2_4
385 SUBROUTINE block_1_2_4_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
386 REAL(KIND
=dp
) :: kbd(2*1), kbc(2*4), kad(1*1), kac(1*4), pbd(2*1), &
387 pbc(2*4), pad(1*1), pac(1*4), prim(1*2*4*1), scale
391 kbd((md
-1)*2+mb
) = kbd((md
-1)*2+mb
) - ks_bd
395 END SUBROUTINE block_1_2_4_1
396 SUBROUTINE block_1_2_6_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
397 REAL(KIND
=dp
) :: kbd(2*1), kbc(2*6), kad(1*1), kac(1*6), pbd(2*1), &
398 pbc(2*6), pad(1*1), pac(1*6), prim(1*2*6*1), scale
403 kad((md
-1)*1+ma
) = kad((md
-1)*1+ma
)-tmp
*p_bc
408 END SUBROUTINE block_1_2_6_1
409 SUBROUTINE block_1_2_7_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
410 REAL(KIND
=dp
) :: kbd(2*1), kbc(2*7), kad(1*1), kac(1*7), pbd(2*1), &
411 pbc(2*7), pad(1*1), pac(1*7), prim(1*2*7*1), scale
416 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
421 END SUBROUTINE block_1_2_7_1
422 SUBROUTINE block_1_3_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
423 REAL(KIND
=dp
) :: kbd(3*1), kbc(3*1), kad(1*1), kac(1*1), pbd(3*1), &
424 pbc(3*1), pad(1*1), pac(1*1), prim(1*3*1*1), scale
428 kbc((mc
-1)*3+mb
) = kbc((mc
-1)*3+mb
) - ks_bc
432 END SUBROUTINE block_1_3_1_1
433 SUBROUTINE block_1_3_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
434 REAL(KIND
=dp
) :: kbd(3*3), kbc(3*1), kad(1*3), kac(1*1), pbd(3*3), &
435 pbc(3*1), pad(1*3), pac(1*1), prim(1*3*1*3), scale
440 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
445 END SUBROUTINE block_1_3_1_3
446 SUBROUTINE block_1_3_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
447 REAL(KIND
=dp
) :: kbd(3*4), kbc(3*1), kad(1*4), kac(1*1), pbd(3*4), &
448 pbc(3*1), pad(1*4), pac(1*1), prim(1*3*1*4), scale
452 kbc((mc
-1)*3+mb
) = kbc((mc
-1)*3+mb
) - ks_bc
456 END SUBROUTINE block_1_3_1_4
457 SUBROUTINE block_1_3_1_5(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
458 REAL(KIND
=dp
) :: kbd(3*5), kbc(3*1), kad(1*5), kac(1*1), pbd(3*5), &
459 pbc(3*1), pad(1*5), pac(1*1), prim(1*3*1*5), scale
464 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
469 END SUBROUTINE block_1_3_1_5
470 SUBROUTINE block_1_3_1_6(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
471 REAL(KIND
=dp
) :: kbd(3*6), kbc(3*1), kad(1*6), kac(1*1), pbd(3*6), &
472 pbc(3*1), pad(1*6), pac(1*1), prim(1*3*1*6), scale
477 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
482 END SUBROUTINE block_1_3_1_6
483 SUBROUTINE block_1_3_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
484 REAL(KIND
=dp
) :: kbd(3*md_max
), kbc(3*1), kad(1*md_max
), kac(1*1), &
485 pbd(3*md_max
), pbc(3*1), pad(1*md_max
), pac(1*1), prim(1*3*1*md_max
), &
491 kad((md
-1)*1+ma
) = kad((md
-1)*1+ma
)-tmp
*p_bc
496 END SUBROUTINE block_1_3_1
497 SUBROUTINE block_1_3_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
498 REAL(KIND
=dp
) :: kbd(3*1), kbc(3*2), kad(1*1), kac(1*2), pbd(3*1), &
499 pbc(3*2), pad(1*1), pac(1*2), prim(1*3*2*1), scale
503 kbc((mc
-1)*3+mb
) = kbc((mc
-1)*3+mb
) - ks_bc
507 END SUBROUTINE block_1_3_2_1
508 SUBROUTINE block_1_3_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
509 REAL(KIND
=dp
) :: kbd(3*2), kbc(3*2), kad(1*2), kac(1*2), pbd(3*2), &
510 pbc(3*2), pad(1*2), pac(1*2), prim(1*3*2*2), scale
515 kad((md
-1)*1+ma
) = kad((md
-1)*1+ma
)-tmp
*p_bc
520 END SUBROUTINE block_1_3_2_2
521 SUBROUTINE block_1_3_2_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
522 REAL(KIND
=dp
) :: kbd(3*3), kbc(3*2), kad(1*3), kac(1*2), pbd(3*3), &
523 pbc(3*2), pad(1*3), pac(1*2), prim(1*3*2*3), scale
528 kbc((mc
-1)*3+mb
) = kbc((mc
-1)*3+mb
) - ks_bc
532 END SUBROUTINE block_1_3_2_3
533 SUBROUTINE block_1_3_3_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
534 REAL(KIND
=dp
) :: kbd(3*1), kbc(3*3), kad(1*1), kac(1*3), pbd(3*1), &
535 pbc(3*3), pad(1*1), pac(1*3), prim(1*3*3*1), scale
539 kbd((md
-1)*3+mb
) = kbd((md
-1)*3+mb
) - ks_bd
543 END SUBROUTINE block_1_3_3_1
544 SUBROUTINE block_1_3_3_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
545 REAL(KIND
=dp
) :: kbd(3*2), kbc(3*3), kad(1*2), kac(1*3), pbd(3*2), &
546 pbc(3*3), pad(1*2), pac(1*3), prim(1*3*3*2), scale
550 kbc((mc
-1)*3+mb
) = kbc((mc
-1)*3+mb
) - ks_bc
554 END SUBROUTINE block_1_3_3_2
555 SUBROUTINE block_1_3_5(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
556 REAL(KIND
=dp
) :: kbd(3*md_max
), kbc(3*5), kad(1*md_max
), kac(1*5), &
557 pbd(3*md_max
), pbc(3*5), pad(1*md_max
), pac(1*5), prim(1*3*5*md_max
), &
559 kbd(1:3*md_max
) = 0.0_dp
562 END SUBROUTINE block_1_3_5
563 SUBROUTINE block_1_3_6(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
566 END SUBROUTINE block_1_3_6
567 SUBROUTINE block_1_4_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
568 REAL(KIND
=dp
) :: kbd(4*1), kbc(4*1), kad(1*1), kac(1*1), pbd(4*1), &
569 pbc(4*1), pad(1*1), pac(1*1), prim(1*4*1*1), scale
574 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
579 END SUBROUTINE block_1_4_1_1
580 SUBROUTINE block_1_4_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
581 REAL(KIND
=dp
) :: kbd(4*2), kbc(4*1), kad(1*2), kac(1*1), pbd(4*2), &
582 pbc(4*1), pad(1*2), pac(1*1), prim(1*4*1*2), scale
586 kbc((mc
-1)*4+mb
) = kbc((mc
-1)*4+mb
) - ks_bc
590 END SUBROUTINE block_1_4_1_2
591 SUBROUTINE block_1_4_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
592 REAL(KIND
=dp
) :: kbd(4*3), kbc(4*1), kad(1*3), kac(1*1), pbd(4*3), &
593 pbc(4*1), pad(1*3), pac(1*1), prim(1*4*1*3), scale
597 kbc((mc
-1)*4+mb
) = kbc((mc
-1)*4+mb
) - ks_bc
601 END SUBROUTINE block_1_4_1_3
602 SUBROUTINE block_1_4_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
603 REAL(KIND
=dp
) :: kbd(4*1), kbc(4*2), kad(1*1), kac(1*2), pbd(4*1), &
604 pbc(4*2), pad(1*1), pac(1*2), prim(1*4*2*1), scale
608 kbc((mc
-1)*4+mb
) = kbc((mc
-1)*4+mb
) - ks_bc
612 END SUBROUTINE block_1_4_2_1
613 SUBROUTINE block_1_4_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
614 REAL(KIND
=dp
) :: kbd(4*2), kbc(4*2), kad(1*2), kac(1*2), pbd(4*2), &
615 pbc(4*2), pad(1*2), pac(1*2), prim(1*4*2*2), scale
620 kad((md
-1)*1+ma
) = kad((md
-1)*1+ma
)-tmp
*p_bc
625 END SUBROUTINE block_1_4_2_2
626 SUBROUTINE block_1_4_3_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
627 REAL(KIND
=dp
) :: kbd(4*1), kbc(4*3), kad(1*1), kac(1*3), pbd(4*1), &
628 pbc(4*3), pad(1*1), pac(1*3), prim(1*4*3*1), scale
632 kbc((mc
-1)*4+mb
) = kbc((mc
-1)*4+mb
) - ks_bc
636 END SUBROUTINE block_1_4_3_1
637 SUBROUTINE block_1_4_3(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
638 REAL(KIND
=dp
) :: kbd(4*md_max
), kbc(4*3), kad(1*md_max
), kac(1*3), &
639 pbd(4*md_max
), pbc(4*3), pad(1*md_max
), pac(1*3), prim(1*4*3*md_max
), &
644 kbc((mc
-1)*4+mb
) = kbc((mc
-1)*4+mb
) - ks_bc
648 END SUBROUTINE block_1_4_3
649 SUBROUTINE block_1_4_4_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
650 REAL(KIND
=dp
) :: kbd(4*1), kbc(4*4), kad(1*1), kac(1*4), pbd(4*1), &
651 pbc(4*4), pad(1*1), pac(1*4), prim(1*4*4*1), scale
655 kbc((mc
-1)*4+mb
) = kbc((mc
-1)*4+mb
) - ks_bc
659 END SUBROUTINE block_1_4_4_1
660 SUBROUTINE block_1_4_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
661 REAL(KIND
=dp
) :: kbd(4*md_max
), kbc(4*4), kad(1*md_max
), kac(1*4), &
662 pbd(4*md_max
), pbc(4*4), pad(1*md_max
), pac(1*4), prim(1*4*4*md_max
), &
668 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
673 END SUBROUTINE block_1_4_4
674 SUBROUTINE block_1_5_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
675 REAL(KIND
=dp
) :: kbd(5*3), kbc(5*1), kad(1*3), kac(1*1), pbd(5*3), &
676 pbc(5*1), pad(1*3), pac(1*1), prim(1*5*1*3), scale
681 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
686 END SUBROUTINE block_1_5_1_3
687 SUBROUTINE block_1_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
688 REAL(KIND
=dp
) :: kbd(5*md_max
), kbc(5*1), kad(1*md_max
), kac(1*1), &
689 pbd(5*md_max
), pbc(5*1), pad(1*md_max
), pac(1*1), prim(1*5*1*md_max
), &
694 kbc((mc
-1)*5+mb
) = kbc((mc
-1)*5+mb
) - ks_bc
698 END SUBROUTINE block_1_5_1
699 SUBROUTINE block_1_6_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
700 REAL(KIND
=dp
) :: kbd(6*1), kbc(6*1), kad(1*1), kac(1*1), pbd(6*1), &
701 pbc(6*1), pad(1*1), pac(1*1), prim(1*6*1*1), scale
706 kac((mc
-1)*1+ma
) = kac((mc
-1)*1+ma
)-tmp
*p_bd
711 END SUBROUTINE block_1_6_1_1
712 SUBROUTINE block_1_6_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
713 REAL(KIND
=dp
) :: kbd(6*2), kbc(6*1), kad(1*2), kac(1*1), pbd(6*2), &
714 pbc(6*1), pad(1*2), pac(1*1), prim(1*6*1*2), scale
719 kad((md
-1)*1+ma
) = kad((md
-1)*1+ma
)-tmp
*p_bc
724 END SUBROUTINE block_1_6_1_2
725 SUBROUTINE block_1_6_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
726 REAL(KIND
=dp
) :: kbd(6*3), kbc(6*1), kad(1*3), kac(1*1), pbd(6*3), &
727 pbc(6*1), pad(1*3), pac(1*1), prim(1*6*1*3), scale
731 kbc((mc
-1)*6+mb
) = kbc((mc
-1)*6+mb
) - ks_bc
735 END SUBROUTINE block_1_6_1_3
736 SUBROUTINE block_1_6_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
737 REAL(KIND
=dp
) :: kbd(6*1), kbc(6*2), kad(1*1), kac(1*2), pbd(6*1), &
738 pbc(6*2), pad(1*1), pac(1*2), prim(1*6*2*1), scale
742 kbc((mc
-1)*6+mb
) = kbc((mc
-1)*6+mb
) - ks_bc
746 END SUBROUTINE block_1_6_2_1
747 SUBROUTINE block_2_1_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
748 REAL(KIND
=dp
) :: kbd(1*3), kbc(1*1), kad(2*3), kac(2*1), pbd(1*3), &
749 pbc(1*1), pad(2*3), pac(2*1), prim(2*1*1*3), scale
754 kac((mc
-1)*2+ma
) = kac((mc
-1)*2+ma
)-tmp
*p_bd
759 END SUBROUTINE block_2_1_1_3
760 SUBROUTINE block_2_1_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
761 REAL(KIND
=dp
) :: kbd(1*4), kbc(1*1), kad(2*4), kac(2*1), pbd(1*4), &
762 pbc(1*1), pad(2*4), pac(2*1), prim(2*1*1*4), scale
766 kbc((mc
-1)*1+mb
) = kbc((mc
-1)*1+mb
) - ks_bc
770 END SUBROUTINE block_2_1_1_4
771 SUBROUTINE block_2_1_1_5(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
772 REAL(KIND
=dp
) :: kbd(1*5), kbc(1*1), kad(2*5), kac(2*1), pbd(1*5), &
773 pbc(1*1), pad(2*5), pac(2*1), prim(2*1*1*5), scale
777 kbc((mc
-1)*1+mb
) = kbc((mc
-1)*1+mb
) - ks_bc
781 END SUBROUTINE block_2_1_1_5
782 SUBROUTINE block_2_1_1_6(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
783 REAL(KIND
=dp
) :: kbd(1*6), kbc(1*1), kad(2*6), kac(2*1), pbd(1*6), &
784 pbc(1*1), pad(2*6), pac(2*1), prim(2*1*1*6), scale
789 kad((md
-1)*2+ma
) = kad((md
-1)*2+ma
)-tmp
*p_bc
794 END SUBROUTINE block_2_1_1_6
795 SUBROUTINE block_2_1_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
796 REAL(KIND
=dp
) :: kbd(1*1), kbc(1*2), kad(2*1), kac(2*2), pbd(1*1), &
797 pbc(1*2), pad(2*1), pac(2*2), prim(2*1*2*1), scale
802 kac((mc
-1)*2+ma
) = kac((mc
-1)*2+ma
)-tmp
*p_bd
807 END SUBROUTINE block_2_1_2_1
808 SUBROUTINE block_2_1_2_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
809 REAL(KIND
=dp
) :: kbd(1*2), kbc(1*2), kad(2*2), kac(2*2), pbd(1*2), &
810 pbc(1*2), pad(2*2), pac(2*2), prim(2*1*2*2), scale
814 kbc((mc
-1)*1+mb
) = kbc((mc
-1)*1+mb
) - ks_bc
818 END SUBROUTINE block_2_1_2_2
819 SUBROUTINE block_2_1_2_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
820 REAL(KIND
=dp
) :: kbd(1*4), kbc(1*2), kad(2*4), kac(2*2), pbd(1*4), &
821 pbc(1*2), pad(2*4), pac(2*2), prim(2*1*2*4), scale
825 kbc((mc
-1)*1+mb
) = kbc((mc
-1)*1+mb
) - ks_bc
829 END SUBROUTINE block_2_1_2_4
830 SUBROUTINE block_2_2_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
831 REAL(KIND
=dp
) :: kbd(2*1), kbc(2*1), kad(2*1), kac(2*1), pbd(2*1), &
832 pbc(2*1), pad(2*1), pac(2*1), prim(2*2*1*1), scale
836 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
840 END SUBROUTINE block_2_2_1_1
841 SUBROUTINE block_2_2_2_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
842 REAL(KIND
=dp
) :: kbd(2*1), kbc(2*2), kad(2*1), kac(2*2), pbd(2*1), &
843 pbc(2*2), pad(2*1), pac(2*2), prim(2*2*2*1), scale
847 kbd((md
-1)*2+mb
) = kbd((md
-1)*2+mb
) - ks_bd
851 END SUBROUTINE block_2_2_2_1
852 SUBROUTINE block_2_2_3_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
853 REAL(KIND
=dp
) :: kbd(2*1), kbc(2*3), kad(2*1), kac(2*3), pbd(2*1), &
854 pbc(2*3), pad(2*1), pac(2*3), prim(2*2*3*1), scale
858 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
862 END SUBROUTINE block_2_2_3_1
863 SUBROUTINE block_3_2_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
864 REAL(KIND
=dp
) :: kbd(2*md_max
), kbc(2*1), kad(3*md_max
), kac(3*1), &
865 pbd(2*md_max
), pbc(2*1), pad(3*md_max
), pac(3*1), prim(3*2*1*md_max
), &
870 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
874 END SUBROUTINE block_3_2_1
875 SUBROUTINE block_3_5_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
876 REAL(KIND
=dp
) :: kbd(5*1), kbc(5*1), kad(3*1), kac(3*1), pbd(5*1), &
877 pbc(5*1), pad(3*1), pac(3*1), prim(3*5*1*1), scale
882 kad((md
-1)*3+ma
) = kad((md
-1)*3+ma
)-tmp
*p_bc
887 END SUBROUTINE block_3_5_1_1
888 SUBROUTINE block_3_5_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
889 REAL(KIND
=dp
) :: kbd(5*md_max
), kbc(5*1), kad(3*md_max
), kac(3*1), &
890 pbd(5*md_max
), pbc(5*1), pad(3*md_max
), pac(3*1), prim(3*5*1*md_max
), &
895 kbc((mc
-1)*5+mb
) = kbc((mc
-1)*5+mb
) - ks_bc
899 END SUBROUTINE block_3_5_1
900 SUBROUTINE block_3_6(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
901 REAL(KIND
=dp
) :: kbd(6*md_max
), kbc(6*mc_max
), kad(3*md_max
), &
902 kac(3*mc_max
), pbd(6*md_max
), pbc(6*mc_max
), pad(3*md_max
), &
903 pac(3*mc_max
), prim(3*6*mc_max
*md_max
), scale
904 kbd(1:6*md_max
) = 0.0_dp
905 END SUBROUTINE block_3_6
906 SUBROUTINE block_3_9(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
907 REAL(KIND
=dp
) :: kbd(9*md_max
), kbc(9*mc_max
), kad(3*md_max
), &
908 kac(3*mc_max
), pbd(9*md_max
), pbc(9*mc_max
), pad(3*md_max
), &
909 pac(3*mc_max
), prim(3*9*mc_max
*md_max
), scale
914 kac((mc
-1)*3+ma
) = kac((mc
-1)*3+ma
)-tmp
*p_bd
919 END SUBROUTINE block_3_9
920 SUBROUTINE block_4_1_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
921 REAL(KIND
=dp
) :: kbd(1*2), kbc(1*1), kad(4*2), kac(4*1), pbd(1*2), &
922 pbc(1*1), pad(4*2), pac(4*1), prim(4*1*1*2), scale
927 kac((mc
-1)*4+ma
) = kac((mc
-1)*4+ma
)-tmp
*p_bd
932 END SUBROUTINE block_4_1_1_2
933 SUBROUTINE block_4_1_1_3(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
934 REAL(KIND
=dp
) :: kbd(1*3), kbc(1*1), kad(4*3), kac(4*1), pbd(1*3), &
935 pbc(1*1), pad(4*3), pac(4*1), prim(4*1*1*3), scale
939 kbd((md
-1)*1+mb
) = kbd((md
-1)*1+mb
) - ks_bd
943 END SUBROUTINE block_4_1_1_3
944 SUBROUTINE block_4_1_1_4(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
945 REAL(KIND
=dp
) :: kbd(1*4), kbc(1*1), kad(4*4), kac(4*1), pbd(1*4), &
946 pbc(1*1), pad(4*4), pac(4*1), prim(4*1*1*4), scale
950 kbc((mc
-1)*1+mb
) = kbc((mc
-1)*1+mb
) - ks_bc
954 END SUBROUTINE block_4_1_1_4
955 SUBROUTINE block_4_1_1(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
956 REAL(KIND
=dp
) :: kbd(1*md_max
), kbc(1*1), kad(4*md_max
), kac(4*1), &
957 pbd(1*md_max
), pbc(1*1), pad(4*md_max
), pac(4*1), prim(4*1*1*md_max
), &
962 kbc((mc
-1)*1+mb
) = kbc((mc
-1)*1+mb
) - ks_bc
966 END SUBROUTINE block_4_1_1
967 SUBROUTINE block_4_1_4(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
968 REAL(KIND
=dp
) :: kbd(1*md_max
), kbc(1*4), kad(4*md_max
), kac(4*4), &
969 pbd(1*md_max
), pbc(1*4), pad(4*md_max
), pac(4*4), prim(4*1*4*md_max
), &
971 kbd(1:1*md_max
) = 0.0_dp
972 END SUBROUTINE block_4_1_4
973 SUBROUTINE block_4_2_1_2(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
974 REAL(KIND
=dp
) :: kbd(2*2), kbc(2*1), kad(4*2), kac(4*1), pbd(2*2), &
975 pbc(2*1), pad(4*2), pac(4*1), prim(4*2*1*2), scale
980 kac((mc
-1)*4+ma
) = kac((mc
-1)*4+ma
)-tmp
*p_bd
985 END SUBROUTINE block_4_2_1_2
986 SUBROUTINE block_4_2_2(md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
987 REAL(KIND
=dp
) :: kbd(2*md_max
), kbc(2*2), kad(4*md_max
), kac(4*2), &
988 pbd(2*md_max
), pbc(2*2), pad(4*md_max
), pac(4*2), prim(4*2*2*md_max
), &
993 kbc((mc
-1)*2+mb
) = kbc((mc
-1)*2+mb
) - ks_bc
997 END SUBROUTINE block_4_2_2
998 SUBROUTINE block_4_3_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
999 REAL(KIND
=dp
) :: kbd(3*1), kbc(3*1), kad(4*1), kac(4*1), pbd(3*1), &
1000 pbc(3*1), pad(4*1), pac(4*1), prim(4*3*1*1), scale
1005 kac((mc
-1)*4+ma
) = kac((mc
-1)*4+ma
)-tmp
*p_bd
1010 END SUBROUTINE block_4_3_1_1
1011 SUBROUTINE block_4_3(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
1012 REAL(KIND
=dp
) :: kbd(3*md_max
), kbc(3*mc_max
), kad(4*md_max
), &
1013 kac(4*mc_max
), pbd(3*md_max
), pbc(3*mc_max
), pad(4*md_max
), &
1014 pac(4*mc_max
), prim(4*3*mc_max
*md_max
), scale
1018 kbc((mc
-1)*3+mb
) = kbc((mc
-1)*3+mb
) - ks_bc
1022 END SUBROUTINE block_4_3
1023 SUBROUTINE block_4_4_1_1(kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
1024 REAL(KIND
=dp
) :: kbd(4*1), kbc(4*1), kad(4*1), kac(4*1), pbd(4*1), &
1025 pbc(4*1), pad(4*1), pac(4*1), prim(4*4*1*1), scale
1030 kad((md
-1)*4+ma
) = kad((md
-1)*4+ma
)-tmp
*p_bc
1035 END SUBROUTINE block_4_4_1_1
1036 SUBROUTINE block_15_15(mc_max
,md_max
,kbd
,kbc
,kad
,kac
,pbd
,pbc
,pad
,pac
,prim
,scale
)
1037 REAL(KIND
=dp
) :: kbd(15*md_max
), kbc(15*mc_max
), kad(15*md_max
), &
1038 kac(15*mc_max
), pbd(15*md_max
), pbc(15*mc_max
), pad(15*md_max
), &
1039 pac(15*mc_max
), prim(15*15*mc_max
*md_max
), scale
1043 kbc((mc
-1)*15+mb
) = kbc((mc
-1)*15+mb
) - ks_bc
1047 END SUBROUTINE block_15_15
1048 END MODULE hfx_contract_block