1
SUBROUTINE icsd_t2(d_f1,d_i0,d_t1,d_t2,d_v2,k_f1_offset,k_i0_offse
2
&t,k_t1_offset,k_t2_offset,k_v2_offset,size_t1,size_t2,d_c2,iter)
4
c new parameters in procedure call size_t1,size_t2,d_c2
5
c d_c2 is assumed to be created before icsd_t2 is called
6
c d_c2 is also deleted outside of icsd_t2
9
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
10
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
11
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
12
C i0 ( p3 p4 h1 h2 )_v + = 1 * v ( p3 p4 h1 h2 )_v
13
C i0 ( p3 p4 h1 h2 )_vt + = -1 * P( 2 ) * Sum ( h10 ) * t ( p3 h10 )_t * i1 ( h10 p4 h1 h2 )_v
14
C i1 ( h10 p3 h1 h2 )_v + = 1 * v ( h10 p3 h1 h2 )_v
15
C i1 ( h10 p3 h1 h2 )_vt + = 1/2 * Sum ( h11 ) * t ( p3 h11 )_t * i2 ( h10 h11 h1 h2 )_v
16
C i2 ( h10 h11 h1 h2 )_v + = -1 * v ( h10 h11 h1 h2 )_v
17
C i2 ( h10 h11 h1 h2 )_vt + = 1 * P( 2 ) * Sum ( p5 ) * t ( p5 h1 )_t * i3 ( h10 h11 h2 p5 )_v
18
C i3 ( h10 h11 h1 p5 )_v + = 1 * v ( h10 h11 h1 p5 )_v
19
C i3 ( h10 h11 h1 p5 )_vt + = -1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( h10 h11 p5 p6 )_v
20
C i2 ( h10 h11 h1 h2 )_vt + = -1/2 * Sum ( p7 p8 ) * t ( p7 p8 h1 h2 )_t * v ( h10 h11 p7 p8 )_v
21
C i1 ( h10 p3 h1 h2 )_vt + = -1 * P( 2 ) * Sum ( p5 ) * t ( p5 h1 )_t * i2 ( h10 p3 h2 p5 )_v
22
C i2 ( h10 p3 h1 p5 )_v + = 1 * v ( h10 p3 h1 p5 )_v
23
C i2 ( h10 p3 h1 p5 )_vt + = -1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( h10 p3 p5 p6 )_v
24
C i1 ( h10 p3 h1 h2 )_ft + = -1 * Sum ( p5 ) * t ( p3 p5 h1 h2 )_t * i2 ( h10 p5 )_f
25
C i2 ( h10 p5 )_f + = 1 * f ( h10 p5 )_f
26
C i2 ( h10 p5 )_vt + = -1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 h10 p5 p6 )_v
27
C i1 ( h10 p3 h1 h2 )_vt + = 1 * P( 2 ) * Sum ( h7 p9 ) * t ( p3 p9 h1 h7 )_t * i2 ( h7 h10 h2 p9 )_v
28
C i2 ( h7 h10 h1 p9 )_v + = 1 * v ( h7 h10 h1 p9 )_v
29
C i2 ( h7 h10 h1 p9 )_vt + = 1 * Sum ( p5 ) * t ( p5 h1 )_t * v ( h7 h10 p5 p9 )_v
30
C i1 ( h10 p3 h1 h2 )_vt + = 1/2 * Sum ( p5 p6 ) * t ( p5 p6 h1 h2 )_t * v ( h10 p3 p5 p6 )_v
31
C i0 ( p3 p4 h1 h2 )_vt + = -1 * P( 2 ) * Sum ( p5 ) * t ( p5 h1 )_t * i1 ( p3 p4 h2 p5 )_v
32
C i1 ( p3 p4 h1 p5 )_v + = 1 * v ( p3 p4 h1 p5 )_v
33
C i1 ( p3 p4 h1 p5 )_vt + = -1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( p3 p4 p5 p6 )_v
34
C i0 ( p3 p4 h1 h2 )_tf + = -1 * P( 2 ) * Sum ( h9 ) * t ( p3 p4 h1 h9 )_t * i1 ( h9 h2 )_f
35
C i1 ( h9 h1 )_f + = 1 * f ( h9 h1 )_f
36
C i1 ( h9 h1 )_ft + = 1 * Sum ( p8 ) * t ( p8 h1 )_t * i2 ( h9 p8 )_f
37
C i2 ( h9 p8 )_f + = 1 * f ( h9 p8 )_f
38
C i2 ( h9 p8 )_vt + = 1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 h9 p6 p8 )_v
39
C i1 ( h9 h1 )_vt + = -1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 h9 h1 p6 )_v
40
C i1 ( h9 h1 )_vt + = -1/2 * Sum ( h8 p6 p7 ) * t ( p6 p7 h1 h8 )_t * v ( h8 h9 p6 p7 )_v
41
C i0 ( p3 p4 h1 h2 )_tf + = 1 * P( 2 ) * Sum ( p5 ) * t ( p3 p5 h1 h2 )_t * i1 ( p4 p5 )_f
42
C i1 ( p3 p5 )_f + = 1 * f ( p3 p5 )_f
43
C i1 ( p3 p5 )_vt + = -1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 p3 p5 p6 )_v
44
C i1 ( p3 p5 )_vt + = -1/2 * Sum ( h7 h8 p6 ) * t ( p3 p6 h7 h8 )_t * v ( h7 h8 p5 p6 )_v
45
C i0 ( p3 p4 h1 h2 )_vt + = -1/2 * Sum ( h11 h9 ) * t ( p3 p4 h9 h11 )_t * i1 ( h9 h11 h1 h2 )_v
46
C i1 ( h9 h11 h1 h2 )_v + = -1 * v ( h9 h11 h1 h2 )_v
47
C i1 ( h9 h11 h1 h2 )_vt + = 1 * P( 2 ) * Sum ( p8 ) * t ( p8 h1 )_t * i2 ( h9 h11 h2 p8 )_v
48
C i2 ( h9 h11 h1 p8 )_v + = 1 * v ( h9 h11 h1 p8 )_v
49
C i2 ( h9 h11 h1 p8 )_vt + = 1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( h9 h11 p6 p8 )_v
50
C i1 ( h9 h11 h1 h2 )_vt + = -1/2 * Sum ( p5 p6 ) * t ( p5 p6 h1 h2 )_t * v ( h9 h11 p5 p6 )_v
51
C i0 ( p3 p4 h1 h2 )_vt + = -1 * P( 4 ) * Sum ( h6 p5 ) * t ( p3 p5 h1 h6 )_t * i1 ( h6 p4 h2 p5 )_v
52
C i1 ( h6 p3 h1 p5 )_v + = 1 * v ( h6 p3 h1 p5 )_v
53
C i1 ( h6 p3 h1 p5 )_vt + = -1 * Sum ( p7 ) * t ( p7 h1 )_t * v ( h6 p3 p5 p7 )_v
54
C i1 ( h6 p3 h1 p5 )_vt + = -1/2 * Sum ( h8 p7 ) * t ( p3 p7 h1 h8 )_t * v ( h6 h8 p5 p7 )_v
55
C i0 ( p3 p4 h1 h2 )_vt + = 1/2 * Sum ( p5 p6 ) * t ( p5 p6 h1 h2 )_t * v ( p3 p4 p5 p6 )_v
58
#include "mafdecls.fh"
62
c when local copies of T1/X1 tensors are used, d_t1 refers to k_t1_local (kk)
63
c local copies of the most important 2-dimensional intermediates
64
c icsd_t2_4(...) and icsd_t2_5(...) (kk)
90
integer d_i2_2a,d_i2_2b,d_i2_2c,d_i2_2d
101
integer l_i1_2_offset,k_i1_2_offset
102
integer l_i2_2a_offset,k_i2_2a_offset
103
integer l_i2_2b_offset,k_i2_2b_offset
104
integer l_i2_2c_offset,k_i2_2c_offset
105
integer l_i2_2d_offset,k_i2_2d_offset
106
integer l_i3_2_offset,k_i3_2_offset
107
integer l_i1_3_offset,k_i1_3_offset
108
integer l_i2_3_offset,k_i2_3_offset
109
integer l_i1_4_offset,k_i1_4_offset
110
integer l_i2_4_offset,k_i2_4_offset
111
integer l_i1_5_offset,k_i1_5_offset
112
integer l_i1_6_offset,k_i1_6_offset
113
integer l_i2_6_offset,k_i2_6_offset
114
integer l_i1_7_offset,k_i1_7_offset
115
integer l_i1_vt_offset,k_i1_vt_offset
117
integer l_i1_4_local,k_i1_4_local
118
integer l_i1_5_local,k_i1_5_local
121
integer size_i2_2a,size_i2_2b,size_i2_2c,size_i2_2d
133
integer size_t1,size_t2
134
integer layer1,layer2,layer3,layer4
135
c ----- independent counters -----
136
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
139
parameter(num_count=41)
140
c --------------------------------
141
c - T1/X1 LOCALIZATION -------------------
142
integer l_i1_local,k_i1_local
143
c ---------------------------------------
144
CHARACTER*255 filename
145
logical nodezero ! True if node 0
146
double precision cpu ! CPU sec counter
147
double precision wall ! WALL sec counter
149
nodezero=(ga_nodeid().eq.0)
151
c --------------------------------
152
c ALL OFFSET OPENINGS HERE
153
CALL OFFSET_icsd_t2_2_1(l_i1_2_offset,k_i1_2_offset,size_i1_2)
154
CALL OFFSET_icsd_t2_2_2_1(l_i2_2a_offset,k_i2_2a_offset,
156
CALL OFFSET_icsd_t2_2_2_2_1(l_i3_2_offset,k_i3_2_offset,size_i3_2)
157
CALL OFFSET_icsd_t2_2_4_1(l_i2_2c_offset,k_i2_2c_offset,
159
CALL OFFSET_icsd_t2_2_5_1(l_i2_2d_offset,k_i2_2d_offset,
161
CALL OFFSET_icsd_t2_4_1(l_i1_4_offset,k_i1_4_offset,size_i1_4)
162
CALL OFFSET_icsd_t2_4_2_1(l_i2_4_offset,k_i2_4_offset,size_i2_4)
163
CALL OFFSET_icsd_t2_5_1(l_i1_5_offset,k_i1_5_offset,size_i1_5)
164
CALL OFFSET_icsd_t2_6_1(l_i1_6_offset,k_i1_6_offset,size_i1_6)
165
CALL OFFSET_icsd_t2_6_2_1(l_i2_6_offset,k_i2_6_offset,size_i2_6)
166
CALL OFFSET_icsd_t2_7_1(l_i1_7_offset,k_i1_7_offset,size_i1_7)
167
CALL OFFSET_vt1ic_1_1(l_i1_vt_offset,k_i1_vt_offset,size_i1_vt)
169
c if (.not.ma_push_get(mt_dbl,size_i1_4,'loc1',
170
c 1 l_i1_4_local,k_i1_4_local)) call errquit('tce:loc1p ',0,MA_ERR)
172
c if (.not.ma_push_get(mt_dbl,size_i1_5,'loc2',
173
c 1 l_i1_5_local,k_i1_5_local)) call errquit('tce:loc1p ',0,MA_ERR)
176
CALL TCE_FILENAME('icsd_t2_2_1_i1',filename)
177
CALL CREATEFILE(filename,d_i1_2,size_i1_2)
179
CALL TCE_FILENAME('icsd_t2_2_2_1_i2',filename)
180
CALL CREATEFILE(filename,d_i2_2a,size_i2_2a)
182
CALL TCE_FILENAME('icsd_t2_2_2_2_1_i3',filename)
183
CALL CREATEFILE(filename,d_i3_2,size_i3_2)
185
CALL TCE_FILENAME('icsd_t2_2_4_1_i2',filename)
186
CALL CREATEFILE(filename,d_i2_2c,size_i2_2c)
188
CALL TCE_FILENAME('icsd_t2_2_5_1_i2',filename)
189
CALL CREATEFILE(filename,d_i2_2d,size_i2_2d)
191
CALL TCE_FILENAME('icsd_t2_4_1_i1',filename)
192
CALL CREATEFILE(filename,d_i1_4,size_i1_4)
194
CALL TCE_FILENAME('icsd_t2_4_2_1_i2',filename)
195
CALL CREATEFILE(filename,d_i2_4,size_i2_4)
197
CALL TCE_FILENAME('icsd_t2_5_1_i1',filename)
198
CALL CREATEFILE(filename,d_i1_5,size_i1_5)
200
CALL TCE_FILENAME('icsd_t2_6_1_i1',filename)
201
CALL CREATEFILE(filename,d_i1_6,size_i1_6)
203
CALL TCE_FILENAME('icsd_t2_6_2_1_i2',filename)
204
CALL CREATEFILE(filename,d_i2_6,size_i2_6)
206
CALL TCE_FILENAME('icsd_t2_7_1_i1',filename)
207
CALL CREATEFILE(filename,d_i1_7,size_i1_7)
209
CALL TCE_FILENAME('vt1ic_1_1_i1',filename)
210
CALL CREATEFILE(filename,d_i1_vt,size_i1_vt)
217
c layer1=int_mb(k_i0_offset)+int_mb(k_i1_2_offset)+
218
c & int_mb(k_i2_2a_offset)+int_mb(k_i3_2_offset)+
219
c & int_mb(k_i3_2_offset)+int_mb(k_i2_2a_offset)+
220
c & int_mb(k_i2_2c_offset)+int_mb(k_i2_2c_offset)+
221
c & int_mb(k_i2_2d_offset)+int_mb(k_i2_2d_offset)+
222
c & int_mb(k_i1_2_offset)+int_mb(k_i0_offset)+
223
c & int_mb(k_i1_4_offset)+int_mb(k_i2_4_offset)+
224
c & int_mb(k_i2_4_offset)+int_mb(k_i1_4_offset)+
225
c & int_mb(k_i1_4_offset)+int_mb(k_i1_5_offset)+
226
c & int_mb(k_i1_5_offset)+int_mb(k_i1_5_offset)+
227
c & int_mb(k_i1_6_offset)+int_mb(k_i2_6_offset)+
228
c & int_mb(k_i2_6_offset)+int_mb(k_i1_6_offset)+
229
c & int_mb(k_i1_7_offset)+int_mb(k_i1_7_offset)+
230
c & int_mb(k_i1_7_offset)+int_mb(k_i1_vt_offset)+
231
c & int_mb(k_i0_offset)
232
c layer2=int_mb(k_i2_2a_offset)+int_mb(k_i1_2_offset)+
233
c & int_mb(k_i1_2_offset)+int_mb(k_i1_4_offset)+
234
c & int_mb(k_i1_6_offset)+int_mb(k_i0_offset)+
235
c & int_mb(k_i0_offset)
236
c layer3=int_mb(k_i1_2_offset)+int_mb(k_i0_offset)+
237
c & int_mb(k_i0_offset)+int_mb(k_i0_offset)
238
c layer4=int_mb(k_i0_offset)
242
c write(6,101)'t2_1',int_mb(k_i0_offset)
243
c write(6,101)'t2_2_1',int_mb(k_i1_2_offset)
244
c write(6,101)'t2_2_2_1',int_mb(k_i2_2a_offset)
245
c write(6,101)'t2_2_2_2_1',int_mb(k_i3_2_offset)
246
c write(6,101)'t2_2_2_2_2',int_mb(k_i3_2_offset)
247
c write(6,101)'t2_2_2_2',int_mb(k_i2_2a_offset)
248
c write(6,101)'t2_2_2_3',int_mb(k_i2_2a_offset)
249
c write(6,101)'t2_2_2',int_mb(k_i1_2_offset)
250
c write(6,101)'t2_2_4_1',int_mb(k_i2_2c_offset)
251
c write(6,101)'t2_2_4_2',int_mb(k_i2_2c_offset)
252
c write(6,101)'t2_2_4',int_mb(k_i1_2_offset)
253
c write(6,101)'t2_2_5_1',int_mb(k_i2_2d_offset)
254
c write(6,101)'t2_2_5_2',int_mb(k_i2_2d_offset)
255
c write(6,101)'t2_2_5',int_mb(k_i1_2_offset)
256
c write(6,101)'t2_2_6',int_mb(k_i1_2_offset)
257
c write(6,101)'t2_2',int_mb(k_i0_offset)
258
c write(6,101)'t2_3x',int_mb(k_i0_offset)
259
c write(6,101)'t2_4_1',int_mb(k_i1_4_offset)
260
c write(6,101)'t2_4_2_1',int_mb(k_i2_4_offset)
261
c write(6,101)'t2_4_2_2',int_mb(k_i2_4_offset)
262
c write(6,101)'t2_4_2',int_mb(k_i1_4_offset)
263
c write(6,101)'t2_4_3',int_mb(k_i1_4_offset)
264
c write(6,101)'t2_4_4',int_mb(k_i1_4_offset)
265
c write(6,101)'t2_4',int_mb(k_i0_offset)
266
c write(6,101)'t2_5_1',int_mb(k_i1_5_offset)
267
c write(6,101)'t2_5_2',int_mb(k_i1_5_offset)
268
c write(6,101)'t2_5_3',int_mb(k_i1_5_offset)
269
c write(6,101)'t2_5',int_mb(k_i0_offset)
270
c write(6,101)'t2_6_1',int_mb(k_i1_6_offset)
271
c write(6,101)'t2_6_2_1',int_mb(k_i2_6_offset)
272
c write(6,101)'t2_6_2_2',int_mb(k_i2_6_offset)
273
c write(6,101)'t2_6_2',int_mb(k_i1_6_offset)
274
c write(6,101)'t2_6_3',int_mb(k_i1_6_offset)
275
c write(6,101)'t2_6',int_mb(k_i0_offset)
276
c write(6,101)'t2_7_1',int_mb(k_i1_7_offset)
277
c write(6,101)'t2_7_2',int_mb(k_i1_7_offset)
278
c write(6,101)'t2_7_3',int_mb(k_i1_7_offset)
279
c write(6,101)'t2_7',int_mb(k_i0_offset)
280
c write(6,101)'vt1ic_1_2',int_mb(k_i1_vt_offset)
281
c write(6,101)'vt1ic_1',int_mb(k_i0_offset)
282
c write(6,101)'t2_8',int_mb(k_i0_offset)
285
c write(6,101)'layer 1',layer1
286
c write(6,101)'layer 2',layer2
287
c write(6,101)'layer 3',layer3
288
c write(6,101)'layer 4',layer4
294
100 format('SEMI-SERIAL EXECUTION OF T2')
295
101 format(2x,a12,3x,i12)
296
102 format('TASK POOL FOR VARIOUS T2 LAYERS')
297
103 format('CCSD_T2_NTS --- OK')
301
c counters are opened here
303
call nxt_ctx_create(num_count, ctx)
306
do level_x=1,4 ! -----------------
308
if(level_x.eq.1) then
309
CALL icsd_t2_1(d_v2,k_v2_offset,d_i0,k_i0_offset,ctx,1)
318
if(level_x.eq.1) then
319
CALL icsd_t2_2_1(d_v2,k_v2_offset,d_i1_2,k_i1_2_offset,ctx,2)
322
if(level_x.eq.1) then
323
CALL icsd_t2_2_2_1(d_v2,k_v2_offset,d_i2_2a,k_i2_2a_offset,ctx,3)
326
if(level_x.eq.1) then
327
CALL icsd_t2_2_2_2_1(d_v2,k_v2_offset,d_i3_2,k_i3_2_offset,ctx,4)
330
if(level_x.eq.1) then
331
CALL icsd_t2_2_2_2_2(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i3_2,
332
&k_i3_2_offset,ctx,5)
335
if(level_x.eq.2) then
336
CALL icsd_t2_2_2_2(d_t1,k_t1_offset,d_i3_2,k_i3_2_offset,
337
&d_i2_2a,k_i2_2a_offset,ctx,6)
340
if(level_x.eq.1) then
341
CALL icsd_t2_2_2_3(d_t2,k_t2_offset,d_v2,k_v2_offset,d_i2_2a,
342
&k_i2_2a_offset,ctx,7)
345
if(level_x.eq.3) then
346
CALL icsd_t2_2_2(d_t1,k_t1_offset,d_i2_2a,k_i2_2a_offset,
347
&d_i1_2,k_i1_2_offset,ctx,8)
350
if(level_x.eq.1) then
351
CALL icsd_t2_2_4_1(d_f1,k_f1_offset,d_i2_2c,k_i2_2c_offset,
355
if(level_x.eq.1) then
356
CALL icsd_t2_2_4_2(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i2_2c,
357
&k_i2_2c_offset,ctx,10)
360
if(level_x.eq.2) then
361
CALL icsd_t2_2_4(d_t2,k_t2_offset,d_i2_2c,k_i2_2c_offset,d_i1_2,
362
&k_i1_2_offset,ctx,11)
365
if(level_x.eq.1) then
366
CALL icsd_t2_2_5_1(d_v2,k_v2_offset,d_i2_2d,k_i2_2d_offset,ctx,12)
369
if(level_x.eq.1) then
370
CALL icsd_t2_2_5_2(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i2_2d,
371
&k_i2_2d_offset,ctx,13)
374
if(level_x.eq.2) then
375
CALL icsd_t2_2_5(d_t2,k_t2_offset,d_i2_2d,k_i2_2d_offset,d_i1_2,
376
&k_i1_2_offset,ctx,14)
379
if(level_x.eq.1) then
380
CALL icsd_t2_2_6(d_c2,k_t2_offset,d_v2,k_v2_offset,
381
&d_i1_2,k_i1_2_offset,ctx,15)
384
if(level_x.eq.4) then
385
CALL icsd_t2_2(d_t1,k_t1_offset,d_i1_2,k_i1_2_offset,
386
&d_i0,k_i0_offset,ctx,16)
397
if(level_x.eq.1) then
398
CALL licsd_t2_3x(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i0,
402
if(level_x.eq.1) then
403
CALL icsd_t2_4_1(d_f1,k_f1_offset,d_i1_4,k_i1_4_offset,ctx,18)
406
if(level_x.eq.1) then
407
CALL icsd_t2_4_2_1(d_f1,k_f1_offset,d_i2_4,k_i2_4_offset,ctx,19)
410
if(level_x.eq.1) then
411
CALL icsd_t2_4_2_2(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i2_4,
412
&k_i2_4_offset,ctx,20)
415
if(level_x.eq.2) then
416
CALL icsd_t2_4_2(d_t1,k_t1_offset,d_i2_4,k_i2_4_offset,d_i1_4,
417
&k_i1_4_offset,ctx,21)
420
c IF (.not.MA_POP_STACK(l_i2_offset)) CALL ERRQUIT('icsd_t2',-1,MA_E
423
if(level_x.eq.1) then
424
CALL icsd_t2_4_3(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i1_4,
425
&k_i1_4_offset,ctx,22)
428
if(level_x.eq.1) then
429
CALL icsd_t2_4_4(d_t2,k_t2_offset,d_v2,k_v2_offset,
430
&d_i1_4,k_i1_4_offset,ctx,23)
433
c - T1/X1 LOCALIZATION ----------
434
c if (.not.MA_PUSH_GET(mt_dbl,size_i1,'i1_local',
435
c 1 l_i1_local,k_i1_local))
436
c 1 call errquit('i1_local',1,MA_ERR)
437
c call ma_zero(dbl_mb(k_i1_local),size_i1)
438
c copy d_t1 ==> l_t1_local
439
c call ga_get(d_i1,1,size_i1,1,1,dbl_mb(k_i1_local),1)
440
c -------------------------------
441
ccx CALL icsd_t2_4(d_t2,k_t2_offset,d_i1,k_i1_offset,d_i0,k_i0_offset)
444
if(level_x.eq.3) then
445
CALL icsd_t2_4(d_t2,k_t2_offset,d_i1_4,k_i1_4_offset,
446
& d_i0,k_i0_offset,ctx,24)
449
if(level_x.eq.1) then
450
CALL icsd_t2_5_1(d_f1,k_f1_offset,d_i1_5,k_i1_5_offset,ctx,25)
453
if(level_x.eq.1) then
454
CALL icsd_t2_5_2(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i1_5,
455
&k_i1_5_offset,ctx,26)
458
if(level_x.eq.1) then
459
CALL icsd_t2_5_3(d_t2,k_t2_offset,d_v2,k_v2_offset,d_i1_5,
460
&k_i1_5_offset,ctx,27)
463
c - T1/X1 LOCALIZATION ----------
464
c if (.not.MA_PUSH_GET(mt_dbl,size_i1,'i1_local',
465
c 1 l_i1_local,k_i1_local))
466
c 1 call errquit('i1_local',1,MA_ERR)
467
c call ma_zero(dbl_mb(k_i1_local),size_i1)
468
cc copy d_t1 ==> l_t1_local
469
c call ga_get(d_i1,1,size_i1,1,1,dbl_mb(k_i1_local),1)
470
c -------------------------------
471
ccx CALL icsd_t2_5(d_t2,k_t2_offset,d_i1,k_i1_offset,d_i0,k_i0_offset)
473
if(level_x.eq.2) then
474
CALL icsd_t2_5(d_t2,k_t2_offset,d_i1_5,k_i1_5_offset,
475
& d_i0,k_i0_offset,ctx,28)
478
if(level_x.eq.1) then
479
CALL icsd_t2_6_1(d_v2,k_v2_offset,d_i1_6,k_i1_6_offset,ctx,29)
482
if(level_x.eq.1) then
483
CALL icsd_t2_6_2_1(d_v2,k_v2_offset,d_i2_6,k_i2_6_offset,ctx,30)
486
if(level_x.eq.1) then
487
CALL icsd_t2_6_2_2(d_t1,k_t1_offset,d_v2,k_v2_offset,d_i2_6,
488
&k_i2_6_offset,ctx,31)
491
if(level_x.eq.2) then
492
CALL icsd_t2_6_2(d_t1,k_t1_offset,d_i2_6,k_i2_6_offset,
493
&d_i1_6,k_i1_6_offset,ctx,32)
496
if(level_x.eq.1) then
497
CALL icsd_t2_6_3(d_t2,k_t2_offset,d_v2,k_v2_offset,
498
&d_i1_6,k_i1_6_offset,ctx,33)
501
if(level_x.eq.3) then
502
CALL icsd_t2_6(d_t2,k_t2_offset,d_i1_6,k_i1_6_offset,d_i0,
506
if(level_x.eq.1) then
507
CALL icsd_t2_7_1(d_v2,k_v2_offset,d_i1_7,k_i1_7_offset,ctx,35)
510
if(level_x.eq.1) then
511
CALL icsd_t2_7_2(d_t1,k_t1_offset,d_v2,k_v2_offset,
512
&d_i1_7,k_i1_7_offset,ctx,36)
515
if(level_x.eq.1) then
516
CALL icsd_t2_7_3(d_t2,k_t2_offset,d_v2,k_v2_offset,
517
&d_i1_7,k_i1_7_offset,ctx,37)
520
if(level_x.eq.2) then
521
CALL icsd_t2_7(d_t2,k_t2_offset,d_i1_7,k_i1_7_offset,
522
&d_i0,k_i0_offset,ctx,38)
526
if(level_x.eq.1) then
527
CALL vt1ic_1_2(d_t1,k_t1_offset,d_v2,k_v2_offset,
528
&d_i1_vt,k_i1_vt_offset,ctx,39)
531
if(level_x.eq.2) then
532
CALL vt1ic_1(d_t1,k_t1_offset,d_i1_vt,k_i1_vt_offset,
533
&d_i0,k_i0_offset,ctx,40)
537
if(level_x.eq.1) then
538
CALL icsd_t2_8(d_c2,k_t2_offset,d_v2,k_v2_offset,
539
&d_i0,k_i0_offset,ctx,41)
542
cc if(level_x.eq.1) then
543
c -----------------------------------
544
c localize 2 intermediates
545
c -----------------------------------
549
cc call ma_zero(dbl_mb(k_i1_4_local),size_i1_4)
550
cc call ga_get(d_i1_4,1,size_i1_4,1,1,dbl_mb(k_i1_4_local),1)
552
cc call ma_zero(dbl_mb(k_i1_5_local),size_i1_5)
553
cc call ga_get(d_i1_5,1,size_i1_5,1,1,dbl_mb(k_i1_5_local),1)
558
enddo ! -- level_x --------
559
c counters are closed here
560
call nxt_ctx_destroy(ctx)
564
call deletefile(d_i1_vt)
565
call deletefile(d_i1_7)
566
call deletefile(d_i2_6)
567
call deletefile(d_i1_6)
568
call deletefile(d_i1_5)
569
call deletefile(d_i2_4)
570
call deletefile(d_i1_4)
571
call deletefile(d_i2_2d)
572
call deletefile(d_i2_2c)
573
call deletefile(d_i3_2)
574
call deletefile(d_i2_2a)
575
call deletefile(d_i1_2)
577
c closing all OFFSETS
579
c IF (.not.MA_POP_STACK(l_i1_5_local))
580
c & CALL ERRQUIT('l_-1',-1,MA_ERR)
581
c IF (.not.MA_POP_STACK(l_i1_4_local))
582
c & CALL ERRQUIT('l_0',-1,MA_ERR)
583
IF (.not.MA_POP_STACK(l_i1_vt_offset))
584
& CALL ERRQUIT('l_1',-1,MA_ERR)
585
IF (.not.MA_POP_STACK(l_i1_7_offset))
586
& CALL ERRQUIT('l_2',-1,MA_ERR)
587
IF (.not.MA_POP_STACK(l_i2_6_offset))
588
& CALL ERRQUIT('l_3',-1,MA_ERR)
589
IF (.not.MA_POP_STACK(l_i1_6_offset))
590
& CALL ERRQUIT('l_4',-1,MA_ERR)
591
IF (.not.MA_POP_STACK(l_i1_5_offset))
592
& CALL ERRQUIT('l_5',-1,MA_ERR)
593
IF (.not.MA_POP_STACK(l_i2_4_offset))
594
& CALL ERRQUIT('l_6',-1,MA_ERR)
595
IF (.not.MA_POP_STACK(l_i1_4_offset))
596
& CALL ERRQUIT('l_7',-1,MA_ERR)
597
IF (.not.MA_POP_STACK(l_i2_2d_offset))
598
& CALL ERRQUIT('l_8',-1,MA_ERR)
599
IF (.not.MA_POP_STACK(l_i2_2c_offset))
600
& CALL ERRQUIT('l_9',-1,MA_ERR)
601
IF (.not.MA_POP_STACK(l_i3_2_offset))
602
& CALL ERRQUIT('l_10',-1,MA_ERR)
603
IF (.not.MA_POP_STACK(l_i2_2a_offset))
604
& CALL ERRQUIT('l_11',-1,MA_ERR)
605
IF (.not.MA_POP_STACK(l_i1_2_offset))
606
& CALL ERRQUIT('l_12',-1,MA_ERR)
612
SUBROUTINE icsd_t2_1(d_a,k_a_offset,d_c,k_c_offset,ctx,icounter)
613
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
614
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
615
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
616
C i0 ( p3 p4 h1 h2 )_v + = 1 * v ( p3 p4 h1 h2 )_v
619
#include "mafdecls.fh"
621
#include "errquit.fh"
627
c old way INTEGER NXTASK
628
c -------------------------
630
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
631
c -------------------------
653
c old way EXTERNAL NXTASK
656
c old way next = NXTASK(nprocs, 1)
658
call nxt_ctx_next(ctx, icounter, next)
660
DO p3b = noab+1,noab+nvab
661
DO p4b = p3b,noab+nvab
664
IF (next.eq.count) THEN
665
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
666
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
667
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
668
&1b-1)+int_mb(k_spin+h2b-1)) THEN
669
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
670
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
671
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
672
&nge+h1b-1) * int_mb(k_range+h2b-1)
673
CALL TCE_RESTRICTED_4(p3b,p4b,h1b,h2b,p3b_1,p4b_1,h1b_1,h2b_1)
675
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb
676
&(k_range+h1b-1) * int_mb(k_range+h2b-1)
677
dima = dim_common * dima_sort
678
IF (dima .gt. 0) THEN
679
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
680
& ERRQUIT('icsd_t2_1',0,MA_ERR)
681
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
682
&icsd_t2_1',1,MA_ERR)
684
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
685
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p4b_1 - 1 + (noab
686
&+nvab) * (p3b_1 - 1)))))
688
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
690
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p4b_1 - 1 + (noab
691
&+nvab) * (p3b_1 - 1)))),h2b_1,h1b_1,p4b_1,p3b_1)
693
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
694
&,int_mb(k_range+p4b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
696
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_1',2,MA_ERR)
697
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
698
&icsd_t2_1',3,MA_ERR)
699
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
700
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
702
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
703
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
705
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_1',4,MA_ERR)
706
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_1',5,MA_ERR
712
c old way next = NXTASK(nprocs, 1)
714
call nxt_ctx_next(ctx, icounter, next)
722
c old way next = NXTASK(-nprocs, 1)
723
c old way call GA_SYNC()
726
SUBROUTINE icsd_t2_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
728
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
729
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
730
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
731
C i0 ( p3 p4 h1 h2 )_vt + = -1 * P( 2 ) * Sum ( h10 ) * t ( p3 h10 )_t * i1 ( h10 p4 h1 h2 )_v
734
#include "mafdecls.fh"
736
#include "errquit.fh"
744
c old way INTEGER NXTASK
755
c -------------------------
757
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
758
c -------------------------
781
c old way EXTERNAL NXTASK
784
c old way next = NXTASK(nprocs, 1)
786
call nxt_ctx_next(ctx, icounter, next)
788
DO p3b = noab+1,noab+nvab
789
DO p4b = noab+1,noab+nvab
792
IF (next.eq.count) THEN
793
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
794
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
795
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
796
&1b-1)+int_mb(k_spin+h2b-1)) THEN
797
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
798
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
800
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
801
&nge+h1b-1) * int_mb(k_range+h2b-1)
802
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
803
& ERRQUIT('icsd_t2_2',0,MA_ERR)
804
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
806
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+h10b-1)) THEN
807
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+h10b-1)) .eq. irrep_t) T
809
CALL TCE_RESTRICTED_2(p3b,h10b,p3b_1,h10b_1)
810
CALL TCE_RESTRICTED_4(p4b,h10b,h1b,h2b,p4b_2,h10b_2,h1b_2,h2b_2)
811
dim_common = int_mb(k_range+h10b-1)
812
dima_sort = int_mb(k_range+p3b-1)
813
dima = dim_common * dima_sort
814
dimb_sort = int_mb(k_range+p4b-1) * int_mb(k_range+h1b-1) * int_mb
816
dimb = dim_common * dimb_sort
817
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
818
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
819
& ERRQUIT('icsd_t2_2',1,MA_ERR)
820
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
821
&icsd_t2_2',2,MA_ERR)
822
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
823
& int_mb(k_a_offset),(h10b_
824
&1 - 1 + noab * (p3b_1 - noab - 1)))
825
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
826
&,int_mb(k_range+h10b-1),1,2,1.0d0)
827
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2',3,MA_ERR)
828
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
829
& ERRQUIT('icsd_t2_2',4,MA_ERR)
830
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
831
&icsd_t2_2',5,MA_ERR)
832
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(h2b_2
833
& - 1 + noab * (h1b_2 - 1 + noab * (h10b_2 - 1 + noab * (p4b_2 - no
835
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p4b-1)
836
&,int_mb(k_range+h10b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1
838
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2',6,MA_ERR)
839
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
840
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
842
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2',7,MA_ERR
844
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2',8,MA_ERR
850
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
851
&icsd_t2_2',9,MA_ERR)
852
IF ((p3b .le. p4b)) THEN
853
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
854
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
856
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
857
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
860
IF ((p4b .le. p3b)) THEN
861
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
862
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
864
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
865
& 1 + noab * (h1b - 1 + noab * (p3b - noab - 1 + nvab * (p4b - noab
868
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2',10,MA_ERR)
869
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2',11,MA_ER
874
c old way next = NXTASK(nprocs, 1)
876
call nxt_ctx_next(ctx, icounter, next)
884
c old way next = NXTASK(-nprocs, 1)
885
c old way call GA_SYNC()
888
SUBROUTINE icsd_t2_2_1(d_a,k_a_offset,d_c,k_c_offset,ctx,icounter)
889
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
890
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
891
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
892
C i1 ( h10 p3 h1 h2 )_v + = 1 * v ( h10 p3 h1 h2 )_v
895
#include "mafdecls.fh"
897
#include "errquit.fh"
903
c old way INTEGER NXTASK
907
c -------------------------
909
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
910
c -------------------------
929
c old way EXTERNAL NXTASK
932
c old way next = NXTASK(nprocs, 1)
934
call nxt_ctx_next(ctx, icounter, next)
936
DO p3b = noab+1,noab+nvab
940
IF (next.eq.count) THEN
941
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
942
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
943
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
944
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
945
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
946
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
947
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
948
&ange+h1b-1) * int_mb(k_range+h2b-1)
949
CALL TCE_RESTRICTED_4(p3b,h10b,h1b,h2b,p3b_1,h10b_1,h1b_1,h2b_1)
951
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_m
952
&b(k_range+h1b-1) * int_mb(k_range+h2b-1)
953
dima = dim_common * dima_sort
954
IF (dima .gt. 0) THEN
955
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
956
& ERRQUIT('icsd_t2_2_1',0,MA_ERR)
957
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
958
&icsd_t2_2_1',1,MA_ERR)
959
IF ((h10b .le. p3b)) THEN
961
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
962
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p3b_1 - 1 + (noab
963
&+nvab) * (h10b_1 - 1)))))
965
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
967
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p3b_1 - 1 + (noab
968
&+nvab) * (h10b_1 - 1)))),h2b_1,h1b_1,p3b_1,h10b_1)
970
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h10b-1
971
&),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1
974
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_1',2,MA_ERR)
975
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
976
&icsd_t2_2_1',3,MA_ERR)
977
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
978
&,int_mb(k_range+h1b-1),int_mb(k_range+h10b-1),int_mb(k_range+p3b-1
980
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
981
& 1 + noab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
983
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_1',4,MA_ERR)
984
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_1',5,MA_E
990
c old way next = NXTASK(nprocs, 1)
992
call nxt_ctx_next(ctx, icounter, next)
1000
c old way next = NXTASK(-nprocs, 1)
1001
c old way call GA_SYNC()
1004
SUBROUTINE OFFSET_icsd_t2_2_1(l_a_offset,k_a_offset,size)
1005
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1006
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1007
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1008
C i1 ( h10 p3 h1 h2 )_v
1010
#include "global.fh"
1011
#include "mafdecls.fh"
1013
#include "errquit.fh"
1025
DO p3b = noab+1,noab+nvab
1029
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+
1030
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
1031
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb
1032
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
1033
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-
1034
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
1043
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
1044
&set)) CALL ERRQUIT('icsd_t2_2_1',0,MA_ERR)
1045
int_mb(k_a_offset) = length
1048
DO p3b = noab+1,noab+nvab
1052
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+
1053
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
1054
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb
1055
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
1056
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-
1057
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
1059
int_mb(k_a_offset+addr) = h2b - 1 + noab * (h1b - 1 + noab * (h10b
1060
& - 1 + noab * (p3b - noab - 1)))
1061
int_mb(k_a_offset+length+addr) = size
1062
size = size + int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int
1063
&_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
1073
SUBROUTINE icsd_t2_2_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
1075
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1076
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1077
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1078
C i1 ( h10 p3 h1 h2 )_vt + = 1/2 * Sum ( h11 ) * t ( p3 h11 )_t * i2 ( h10 h11 h1 h2 )_v
1080
#include "global.fh"
1081
#include "mafdecls.fh"
1083
#include "errquit.fh"
1091
c old way INTEGER NXTASK
1092
c -------------------------
1093
INTEGER ctx,icounter
1094
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
1095
c -------------------------
1128
c old way EXTERNAL NXTASK
1129
nprocs = GA_NNODES()
1131
c old way next = NXTASK(nprocs, 1)
1133
call nxt_ctx_next(ctx, icounter, next)
1135
DO p3b = noab+1,noab+nvab
1139
IF (next.eq.count) THEN
1140
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
1141
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
1142
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
1143
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
1144
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
1145
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) T
1147
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
1148
&ange+h1b-1) * int_mb(k_range+h2b-1)
1149
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
1150
& ERRQUIT('icsd_t2_2_2',0,MA_ERR)
1151
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
1153
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+h11b-1)) THEN
1154
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+h11b-1)) .eq. irrep_t) T
1156
CALL TCE_RESTRICTED_2(p3b,h11b,p3b_1,h11b_1)
1157
CALL TCE_RESTRICTED_4(h10b,h11b,h1b,h2b,h10b_2,h11b_2,h1b_2,h2b_2)
1158
dim_common = int_mb(k_range+h11b-1)
1159
dima_sort = int_mb(k_range+p3b-1)
1160
dima = dim_common * dima_sort
1161
dimb_sort = int_mb(k_range+h10b-1) * int_mb(k_range+h1b-1) * int_m
1163
dimb = dim_common * dimb_sort
1164
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
1165
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
1166
& ERRQUIT('icsd_t2_2_2',1,MA_ERR)
1167
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
1168
&icsd_t2_2_2',2,MA_ERR)
1169
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
1170
& int_mb(k_a_offset),(h11b_
1171
&1 - 1 + noab * (p3b_1 - noab - 1)))
1172
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
1173
&,int_mb(k_range+h11b-1),1,2,1.0d0)
1174
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_2',3,MA_ERR)
1175
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
1176
& ERRQUIT('icsd_t2_2_2',4,MA_ERR)
1177
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
1178
&icsd_t2_2_2',5,MA_ERR)
1179
IF ((h11b .lt. h10b)) THEN
1180
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(h2b_2
1181
& - 1 + noab * (h1b_2 - 1 + noab * (h10b_2 - 1 + noab * (h11b_2 - 1
1183
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h11b-1
1184
&),int_mb(k_range+h10b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-
1187
IF ((h10b .le. h11b)) THEN
1188
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(h2b_2
1189
& - 1 + noab * (h1b_2 - 1 + noab * (h11b_2 - 1 + noab * (h10b_2 - 1
1191
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
1192
&),int_mb(k_range+h11b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-
1195
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_2',6,MA_ERR)
1196
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
1197
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
1199
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_2',7,MA_E
1201
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_2',8,MA_E
1207
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
1208
&icsd_t2_2_2',9,MA_ERR)
1209
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
1210
&,int_mb(k_range+h1b-1),int_mb(k_range+h10b-1),int_mb(k_range+p3b-1
1211
&),4,3,2,1,1.0d0/2.0d0)
1212
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
1213
& 1 + noab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
1215
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_2',10,MA_ERR)
1216
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_2',11,MA_
1221
c old way next = NXTASK(nprocs, 1)
1223
call nxt_ctx_next(ctx, icounter, next)
1231
c old way next = NXTASK(-nprocs, 1)
1232
c old way call GA_SYNC()
1235
SUBROUTINE icsd_t2_2_2_1(d_a,k_a_offset,d_c,k_c_offset,
1237
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1238
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1239
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1240
C i2 ( h10 h11 h1 h2 )_v + = -1 * v ( h10 h11 h1 h2 )_v
1242
#include "global.fh"
1243
#include "mafdecls.fh"
1245
#include "errquit.fh"
1251
c old way INTEGER NXTASK
1252
c -------------------------
1253
INTEGER ctx,icounter
1254
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
1255
c -------------------------
1277
c old way EXTERNAL NXTASK
1278
nprocs = GA_NNODES()
1280
c old way next = NXTASK(nprocs, 1)
1282
call nxt_ctx_next(ctx, icounter, next)
1288
IF (next.eq.count) THEN
1289
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1290
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
1291
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1292
&+h1b-1)+int_mb(k_spin+h2b-1)) THEN
1293
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1294
&b(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
1295
dimc = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_mb(k_
1296
&range+h1b-1) * int_mb(k_range+h2b-1)
1297
CALL TCE_RESTRICTED_4(h10b,h11b,h1b,h2b,h10b_1,h11b_1,h1b_1,h2b_1)
1299
dima_sort = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_
1300
&mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
1301
dima = dim_common * dima_sort
1302
IF (dima .gt. 0) THEN
1303
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
1304
& ERRQUIT('icsd_t2_2_2_1',0,MA_ERR)
1305
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
1306
&icsd_t2_2_2_1',1,MA_ERR)
1307
if(.not.intorb) then
1308
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
1309
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
1310
&b+nvab) * (h10b_1 - 1)))))
1312
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
1314
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
1315
&b+nvab) * (h10b_1 - 1)))),h2b_1,h1b_1,h11b_1,h10b_1)
1317
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h10b-1
1318
&),int_mb(k_range+h11b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-
1320
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_2_1',2,MA_ERR)
1321
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
1322
&icsd_t2_2_2_1',3,MA_ERR)
1323
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
1324
&,int_mb(k_range+h1b-1),int_mb(k_range+h11b-1),int_mb(k_range+h10b-
1326
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
1327
& 1 + noab * (h1b - 1 + noab * (h11b - 1 + noab * (h10b - 1)))))
1328
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_2_1',4,MA_ERR)
1329
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_2_1',5,MA
1335
c old way next = NXTASK(nprocs, 1)
1337
call nxt_ctx_next(ctx, icounter, next)
1345
c old way next = NXTASK(-nprocs, 1)
1346
c old way call GA_SYNC()
1349
SUBROUTINE OFFSET_icsd_t2_2_2_1(l_a_offset,k_a_offset,size)
1350
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1351
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1352
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1353
C i2 ( h10 h11 h1 h2 )_v
1355
#include "global.fh"
1356
#include "mafdecls.fh"
1358
#include "errquit.fh"
1374
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1375
&+h1b-1)+int_mb(k_spin+h2b-1)) THEN
1376
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1377
&b(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
1378
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1379
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
1388
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
1389
&set)) CALL ERRQUIT('icsd_t2_2_2_1',0,MA_ERR)
1390
int_mb(k_a_offset) = length
1397
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1398
&+h1b-1)+int_mb(k_spin+h2b-1)) THEN
1399
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1400
&b(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
1401
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1402
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
1404
int_mb(k_a_offset+addr) = h2b - 1 + noab * (h1b - 1 + noab * (h11b
1405
& - 1 + noab * (h10b - 1)))
1406
int_mb(k_a_offset+length+addr) = size
1407
size = size + int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * in
1408
&t_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
1418
SUBROUTINE icsd_t2_2_2_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_off
1420
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1421
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1422
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1423
C i2 ( h10 h11 h1 h2 )_vt + = 1 * P( 2 ) * Sum ( p5 ) * t ( p5 h1 )_t * i3 ( h10 h11 h2 p5 )_v
1425
#include "global.fh"
1426
#include "mafdecls.fh"
1428
#include "errquit.fh"
1436
c old way INTEGER NXTASK
1437
c -------------------------
1438
INTEGER ctx,icounter
1439
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
1440
c -------------------------
1473
c old way EXTERNAL NXTASK
1474
nprocs = GA_NNODES()
1476
c old way next = NXTASK(nprocs, 1)
1478
call nxt_ctx_next(ctx, icounter, next)
1484
IF (next.eq.count) THEN
1485
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1486
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
1487
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1488
&+h1b-1)+int_mb(k_spin+h2b-1)) THEN
1489
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1490
&b(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t))
1492
dimc = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_mb(k_
1493
&range+h1b-1) * int_mb(k_range+h2b-1)
1494
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
1495
& ERRQUIT('icsd_t2_2_2_2',0,MA_ERR)
1496
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
1497
DO p5b = noab+1,noab+nvab
1498
IF (int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h1b-1)) THEN
1499
IF (ieor(int_mb(k_sym+p5b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
1501
CALL TCE_RESTRICTED_2(p5b,h1b,p5b_1,h1b_1)
1502
CALL TCE_RESTRICTED_4(h10b,h11b,h2b,p5b,h10b_2,h11b_2,h2b_2,p5b_2)
1503
dim_common = int_mb(k_range+p5b-1)
1504
dima_sort = int_mb(k_range+h1b-1)
1505
dima = dim_common * dima_sort
1506
dimb_sort = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_
1508
dimb = dim_common * dimb_sort
1509
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
1510
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
1511
& ERRQUIT('icsd_t2_2_2_2',1,MA_ERR)
1512
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
1513
&icsd_t2_2_2_2',2,MA_ERR)
1514
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
1515
& int_mb(k_a_offset),(h1b_1
1516
& - 1 + noab * (p5b_1 - noab - 1)))
1517
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
1518
&,int_mb(k_range+h1b-1),2,1,1.0d0)
1519
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_2_2',3,MA_ERR)
1520
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
1521
& ERRQUIT('icsd_t2_2_2_2',4,MA_ERR)
1522
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
1523
&icsd_t2_2_2_2',5,MA_ERR)
1524
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
1525
& - noab - 1 + nvab * (h2b_2 - 1 + noab * (h11b_2 - 1 + noab * (h10
1527
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
1528
&),int_mb(k_range+h11b-1),int_mb(k_range+h2b-1),int_mb(k_range+p5b-
1530
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_2_2',6,MA_ERR)
1531
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
1532
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
1534
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_2_2',7,MA
1536
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_2_2',8,MA
1542
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
1543
&icsd_t2_2_2_2',9,MA_ERR)
1544
IF ((h1b .le. h2b)) THEN
1545
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
1546
&,int_mb(k_range+h11b-1),int_mb(k_range+h10b-1),int_mb(k_range+h1b-
1548
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
1549
& 1 + noab * (h1b - 1 + noab * (h11b - 1 + noab * (h10b - 1)))))
1551
IF ((h2b .le. h1b)) THEN
1552
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
1553
&,int_mb(k_range+h11b-1),int_mb(k_range+h10b-1),int_mb(k_range+h1b-
1555
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
1556
& 1 + noab * (h2b - 1 + noab * (h11b - 1 + noab * (h10b - 1)))))
1558
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_2_2',10,MA_ERR
1560
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_2_2',11,M
1565
c old way next = NXTASK(nprocs, 1)
1567
call nxt_ctx_next(ctx, icounter, next)
1575
c old way next = NXTASK(-nprocs, 1)
1576
c old way call GA_SYNC()
1579
SUBROUTINE icsd_t2_2_2_2_1(d_a,k_a_offset,d_c,k_c_offset,
1581
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1582
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1583
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1584
C i3 ( h10 h11 h1 p5 )_v + = 1 * v ( h10 h11 h1 p5 )_v
1586
#include "global.fh"
1587
#include "mafdecls.fh"
1589
#include "errquit.fh"
1595
c old way INTEGER NXTASK
1596
c -------------------------
1597
INTEGER ctx,icounter
1598
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
1599
c -------------------------
1621
c old way EXTERNAL NXTASK
1622
nprocs = GA_NNODES()
1624
c old way next = NXTASK(nprocs, 1)
1626
call nxt_ctx_next(ctx, icounter, next)
1631
DO p5b = noab+1,noab+nvab
1632
IF (next.eq.count) THEN
1633
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1634
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
1635
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1636
&+h1b-1)+int_mb(k_spin+p5b-1)) THEN
1637
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1638
&b(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
1639
dimc = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_mb(k_
1640
&range+h1b-1) * int_mb(k_range+p5b-1)
1641
CALL TCE_RESTRICTED_4(h10b,h11b,h1b,p5b,h10b_1,h11b_1,h1b_1,p5b_1)
1643
dima_sort = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_
1644
&mb(k_range+h1b-1) * int_mb(k_range+p5b-1)
1645
dima = dim_common * dima_sort
1646
IF (dima .gt. 0) THEN
1647
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
1648
& ERRQUIT('icsd_t2_2_2_2_1',0,MA_ERR)
1649
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
1650
&icsd_t2_2_2_2_1',1,MA_ERR)
1651
IF ((h1b .le. p5b)) THEN
1652
if(.not.intorb) then
1653
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p5b_1
1654
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
1655
&b+nvab) * (h10b_1 - 1)))))
1657
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
1659
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
1660
&b+nvab) * (h10b_1 - 1)))),p5b_1,h1b_1,h11b_1,h10b_1)
1662
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h10b-1
1663
&),int_mb(k_range+h11b-1),int_mb(k_range+h1b-1),int_mb(k_range+p5b-
1666
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_2_2_1',2,MA_ER
1668
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
1669
&icsd_t2_2_2_2_1',3,MA_ERR)
1670
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
1671
&,int_mb(k_range+h1b-1),int_mb(k_range+h11b-1),int_mb(k_range+h10b-
1673
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
1674
& noab - 1 + nvab * (h1b - 1 + noab * (h11b - 1 + noab * (h10b - 1)
1676
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_2_2_1',4,MA_ER
1678
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_2_2_1',5,
1684
c old way next = NXTASK(nprocs, 1)
1686
call nxt_ctx_next(ctx, icounter, next)
1694
c old way next = NXTASK(-nprocs, 1)
1695
c old way call GA_SYNC()
1698
SUBROUTINE OFFSET_icsd_t2_2_2_2_1(l_a_offset,k_a_offset,size)
1699
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1700
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1701
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1702
C i3 ( h10 h11 h1 p5 )_v
1704
#include "global.fh"
1705
#include "mafdecls.fh"
1707
#include "errquit.fh"
1722
DO p5b = noab+1,noab+nvab
1723
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1724
&+h1b-1)+int_mb(k_spin+p5b-1)) THEN
1725
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1726
&b(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
1727
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1728
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
1737
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
1738
&set)) CALL ERRQUIT('icsd_t2_2_2_2_1',0,MA_ERR)
1739
int_mb(k_a_offset) = length
1745
DO p5b = noab+1,noab+nvab
1746
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1747
&+h1b-1)+int_mb(k_spin+p5b-1)) THEN
1748
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1749
&b(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
1750
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1751
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
1753
int_mb(k_a_offset+addr) = p5b - noab - 1 + nvab * (h1b - 1 + noab
1754
&* (h11b - 1 + noab * (h10b - 1)))
1755
int_mb(k_a_offset+length+addr) = size
1756
size = size + int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * in
1757
&t_mb(k_range+h1b-1) * int_mb(k_range+p5b-1)
1767
SUBROUTINE icsd_t2_2_2_2_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_o
1768
&ffset,ctx,icounter)
1769
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1770
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1771
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1772
C i3 ( h10 h11 h1 p5 )_vt + = -1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( h10 h11 p5 p6 )_v
1774
#include "global.fh"
1775
#include "mafdecls.fh"
1777
#include "errquit.fh"
1785
c old way INTEGER NXTASK
1786
c -------------------------
1787
INTEGER ctx,icounter
1788
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
1789
c -------------------------
1822
c old way EXTERNAL NXTASK
1823
nprocs = GA_NNODES()
1825
c old way next = NXTASK(nprocs, 1)
1827
call nxt_ctx_next(ctx, icounter, next)
1832
DO p5b = noab+1,noab+nvab
1833
IF (next.eq.count) THEN
1834
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
1835
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
1836
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
1837
&+h1b-1)+int_mb(k_spin+p5b-1)) THEN
1838
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
1839
&b(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. ieor(irrep_v,irrep_t))
1841
dimc = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_mb(k_
1842
&range+h1b-1) * int_mb(k_range+p5b-1)
1843
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
1844
& ERRQUIT('icsd_t2_2_2_2_2',0,MA_ERR)
1845
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
1846
DO p6b = noab+1,noab+nvab
1847
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h1b-1)) THEN
1848
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
1850
CALL TCE_RESTRICTED_2(p6b,h1b,p6b_1,h1b_1)
1851
CALL TCE_RESTRICTED_4(h10b,h11b,p5b,p6b,h10b_2,h11b_2,p5b_2,p6b_2)
1852
dim_common = int_mb(k_range+p6b-1)
1853
dima_sort = int_mb(k_range+h1b-1)
1854
dima = dim_common * dima_sort
1855
dimb_sort = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_
1857
dimb = dim_common * dimb_sort
1858
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
1859
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
1860
& ERRQUIT('icsd_t2_2_2_2_2',1,MA_ERR)
1861
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
1862
&icsd_t2_2_2_2_2',2,MA_ERR)
1863
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
1864
& int_mb(k_a_offset),(h1b_1
1865
& - 1 + noab * (p6b_1 - noab - 1)))
1866
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
1867
&,int_mb(k_range+h1b-1),2,1,1.0d0)
1868
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_2_2_2',3,MA_ER
1870
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
1871
& ERRQUIT('icsd_t2_2_2_2_2',4,MA_ERR)
1872
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
1873
&icsd_t2_2_2_2_2',5,MA_ERR)
1874
IF ((p6b .lt. p5b)) THEN
1875
if(.not.intorb) then
1876
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
1877
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
1878
&b+nvab) * (h10b_2 - 1)))))
1880
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
1882
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
1883
&b+nvab) * (h10b_2 - 1)))),p5b_2,p6b_2,h11b_2,h10b_2)
1885
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
1886
&),int_mb(k_range+h11b-1),int_mb(k_range+p6b-1),int_mb(k_range+p5b-
1889
IF ((p5b .le. p6b)) THEN
1890
if(.not.intorb) then
1891
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
1892
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
1893
&b+nvab) * (h10b_2 - 1)))))
1895
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
1897
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
1898
&b+nvab) * (h10b_2 - 1)))),p6b_2,p5b_2,h11b_2,h10b_2)
1900
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
1901
&),int_mb(k_range+h11b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-
1904
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_2_2_2',6,MA_ER
1906
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
1907
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
1909
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_2_2_2',7,
1911
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_2_2_2',8,
1917
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
1918
&icsd_t2_2_2_2_2',9,MA_ERR)
1919
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
1920
&,int_mb(k_range+h11b-1),int_mb(k_range+h10b-1),int_mb(k_range+h1b-
1921
&1),3,2,4,1,-1.0d0/2.0d0)
1922
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
1923
& noab - 1 + nvab * (h1b - 1 + noab * (h11b - 1 + noab * (h10b - 1)
1925
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_2_2_2',10,MA_E
1927
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_2_2_2',11
1932
c old way next = NXTASK(nprocs, 1)
1934
call nxt_ctx_next(ctx, icounter, next)
1942
c old way next = NXTASK(-nprocs, 1)
1943
c old way call GA_SYNC()
1946
SUBROUTINE icsd_t2_2_2_3(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_off
1948
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
1949
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
1950
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
1951
C i2 ( h10 h11 h1 h2 )_vt + = -1/2 * Sum ( p7 p8 ) * t ( p7 p8 h1 h2 )_t * v ( h10 h11 p7 p8 )_v
1953
#include "global.fh"
1954
#include "mafdecls.fh"
1956
#include "errquit.fh"
1964
c old way INTEGER NXTASK
1965
c -------------------------
1966
INTEGER ctx,icounter
1967
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
1968
c -------------------------
2006
DOUBLE PRECISION FACTORIAL
2007
c old way EXTERNAL NXTASK
2009
nprocs = GA_NNODES()
2011
c old way next = NXTASK(nprocs, 1)
2013
call nxt_ctx_next(ctx, icounter, next)
2019
IF (next.eq.count) THEN
2020
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b
2021
&-1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
2022
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin
2023
&+h1b-1)+int_mb(k_spin+h2b-1)) THEN
2024
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_m
2025
&b(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t))
2027
dimc = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1) * int_mb(k_
2028
&range+h1b-1) * int_mb(k_range+h2b-1)
2029
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
2030
& ERRQUIT('icsd_t2_2_2_3',0,MA_ERR)
2031
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
2032
DO p7b = noab+1,noab+nvab
2033
DO p8b = p7b,noab+nvab
2034
IF (int_mb(k_spin+p7b-1)+int_mb(k_spin+p8b-1) .eq. int_mb(k_spin+h
2035
&1b-1)+int_mb(k_spin+h2b-1)) THEN
2036
IF (ieor(int_mb(k_sym+p7b-1),ieor(int_mb(k_sym+p8b-1),ieor(int_mb(
2037
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_t) THEN
2038
CALL TCE_RESTRICTED_4(p7b,p8b,h1b,h2b,p7b_1,p8b_1,h1b_1,h2b_1)
2039
CALL TCE_RESTRICTED_4(h10b,h11b,p7b,p8b,h10b_2,h11b_2,p7b_2,p8b_2)
2040
dim_common = int_mb(k_range+p7b-1) * int_mb(k_range+p8b-1)
2041
dima_sort = int_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
2042
dima = dim_common * dima_sort
2043
dimb_sort = int_mb(k_range+h10b-1) * int_mb(k_range+h11b-1)
2044
dimb = dim_common * dimb_sort
2045
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
2046
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
2047
& ERRQUIT('icsd_t2_2_2_3',1,MA_ERR)
2048
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
2049
&icsd_t2_2_2_3',2,MA_ERR)
2050
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
2051
& - 1 + noab * (h1b_1 - 1 + noab * (p8b_1 - noab - 1 + nvab * (p7b_
2053
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p7b-1)
2054
&,int_mb(k_range+p8b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
2056
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_2_3',3,MA_ERR)
2057
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
2058
& ERRQUIT('icsd_t2_2_2_3',4,MA_ERR)
2059
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
2060
&icsd_t2_2_2_3',5,MA_ERR)
2061
if(.not.intorb) then
2062
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p8b_2
2063
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
2064
&b+nvab) * (h10b_2 - 1)))))
2066
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
2068
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
2069
&b+nvab) * (h10b_2 - 1)))),p8b_2,p7b_2,h11b_2,h10b_2)
2071
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
2072
&),int_mb(k_range+h11b-1),int_mb(k_range+p7b-1),int_mb(k_range+p8b-
2074
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_2_3',6,MA_ERR)
2078
IF (p7b .eq. p8b) THEN
2079
nsuperp(isuperp) = nsuperp(isuperp) + 1
2081
isuperp = isuperp + 1
2083
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,2.0d0/FACTORIAL(
2084
&nsuperp(1))/FACTORIAL(nsuperp(2)),dbl_mb(k_a_sort),dim_common,dbl_
2085
&mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sort),dima_sort)
2086
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_2_3',7,MA
2088
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_2_3',8,MA
2095
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
2096
&icsd_t2_2_2_3',9,MA_ERR)
2097
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h11b-1
2098
&),int_mb(k_range+h10b-1),int_mb(k_range+h2b-1),int_mb(k_range+h1b-
2099
&1),2,1,4,3,-1.0d0/2.0d0)
2100
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
2101
& 1 + noab * (h1b - 1 + noab * (h11b - 1 + noab * (h10b - 1)))))
2102
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_2_3',10,MA_ERR
2104
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_2_3',11,M
2109
c old way next = NXTASK(nprocs, 1)
2111
call nxt_ctx_next(ctx, icounter, next)
2119
c old way next = NXTASK(-nprocs, 1)
2120
c old way call GA_SYNC()
2123
SUBROUTINE icsd_t2_2_3(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
2125
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2126
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2127
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2128
C i1 ( h10 p3 h1 h2 )_vt + = -1 * P( 2 ) * Sum ( p5 ) * t ( p5 h1 )_t * i2 ( h10 p3 h2 p5 )_v
2130
#include "global.fh"
2131
#include "mafdecls.fh"
2133
#include "errquit.fh"
2141
c old way INTEGER NXTASK
2142
c -------------------------
2143
INTEGER ctx,icounter
2144
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
2145
c -------------------------
2178
c old way EXTERNAL NXTASK
2179
nprocs = GA_NNODES()
2181
c old way next = NXTASK(nprocs, 1)
2183
call nxt_ctx_next(ctx, icounter, next)
2185
DO p3b = noab+1,noab+nvab
2189
IF (next.eq.count) THEN
2190
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
2191
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
2192
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
2193
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
2194
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
2195
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) T
2197
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
2198
&ange+h1b-1) * int_mb(k_range+h2b-1)
2199
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
2200
& ERRQUIT('icsd_t2_2_3',0,MA_ERR)
2201
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
2202
DO p5b = noab+1,noab+nvab
2203
IF (int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h1b-1)) THEN
2204
IF (ieor(int_mb(k_sym+p5b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
2206
CALL TCE_RESTRICTED_2(p5b,h1b,p5b_1,h1b_1)
2207
CALL TCE_RESTRICTED_4(p3b,h10b,h2b,p5b,p3b_2,h10b_2,h2b_2,p5b_2)
2208
dim_common = int_mb(k_range+p5b-1)
2209
dima_sort = int_mb(k_range+h1b-1)
2210
dima = dim_common * dima_sort
2211
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_m
2213
dimb = dim_common * dimb_sort
2214
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
2215
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
2216
& ERRQUIT('icsd_t2_2_3',1,MA_ERR)
2217
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
2218
&icsd_t2_2_3',2,MA_ERR)
2219
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
2220
& int_mb(k_a_offset),(h1b_1
2221
& - 1 + noab * (p5b_1 - noab - 1)))
2222
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
2223
&,int_mb(k_range+h1b-1),2,1,1.0d0)
2224
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_3',3,MA_ERR)
2225
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
2226
& ERRQUIT('icsd_t2_2_3',4,MA_ERR)
2227
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
2228
&icsd_t2_2_3',5,MA_ERR)
2229
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
2230
& - noab - 1 + nvab * (h2b_2 - 1 + noab * (h10b_2 - 1 + noab * (p3b
2232
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p3b-1)
2233
&,int_mb(k_range+h10b-1),int_mb(k_range+h2b-1),int_mb(k_range+p5b-1
2235
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_3',6,MA_ERR)
2236
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
2237
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
2239
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_3',7,MA_E
2241
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_3',8,MA_E
2247
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
2248
&icsd_t2_2_3',9,MA_ERR)
2249
IF ((h1b .le. h2b)) THEN
2250
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
2251
&,int_mb(k_range+h10b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1
2253
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
2254
& 1 + noab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
2257
IF ((h2b .le. h1b)) THEN
2258
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
2259
&,int_mb(k_range+h10b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1
2261
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
2262
& 1 + noab * (h2b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
2265
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_3',10,MA_ERR)
2266
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_3',11,MA_
2271
c old way next = NXTASK(nprocs, 1)
2273
call nxt_ctx_next(ctx, icounter, next)
2281
c old way next = NXTASK(-nprocs, 1)
2282
c old way call GA_SYNC()
2285
SUBROUTINE icsd_t2_2_3_1(d_a,k_a_offset,d_c,k_c_offset,
2287
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2288
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2289
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2290
C i2 ( h10 p3 h1 p5 )_v + = 1 * v ( h10 p3 h1 p5 )_v
2292
#include "global.fh"
2293
#include "mafdecls.fh"
2295
#include "errquit.fh"
2301
c old way INTEGER NXTASK
2302
c -------------------------
2303
INTEGER ctx,icounter
2304
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
2305
c -------------------------
2327
c old way EXTERNAL NXTASK
2328
nprocs = GA_NNODES()
2330
c old way next = NXTASK(nprocs, 1)
2332
call nxt_ctx_next(ctx, icounter, next)
2334
DO p3b = noab+1,noab+nvab
2337
DO p5b = noab+1,noab+nvab
2338
IF (next.eq.count) THEN
2339
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
2340
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
2341
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
2342
&h1b-1)+int_mb(k_spin+p5b-1)) THEN
2343
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
2344
&(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
2345
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
2346
&ange+h1b-1) * int_mb(k_range+p5b-1)
2347
CALL TCE_RESTRICTED_4(p3b,h10b,h1b,p5b,p3b_1,h10b_1,h1b_1,p5b_1)
2349
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_m
2350
&b(k_range+h1b-1) * int_mb(k_range+p5b-1)
2351
dima = dim_common * dima_sort
2352
IF (dima .gt. 0) THEN
2353
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
2354
& ERRQUIT('icsd_t2_2_3_1',0,MA_ERR)
2355
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
2356
&icsd_t2_2_3_1',1,MA_ERR)
2357
IF ((h10b .le. p3b) .and. (h1b .le. p5b)) THEN
2358
if(.not.intorb) then
2359
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p5b_1
2360
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p3b_1 - 1 + (noab
2361
&+nvab) * (h10b_1 - 1)))))
2363
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
2365
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p3b_1 - 1 + (noab
2366
&+nvab) * (h10b_1 - 1)))),p5b_1,h1b_1,p3b_1,h10b_1)
2368
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h10b-1
2369
&),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+p5b-1
2372
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_3_1',2,MA_ERR)
2373
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
2374
&icsd_t2_2_3_1',3,MA_ERR)
2375
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
2376
&,int_mb(k_range+h1b-1),int_mb(k_range+h10b-1),int_mb(k_range+p3b-1
2378
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
2379
& noab - 1 + nvab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noa
2381
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_3_1',4,MA_ERR)
2382
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_3_1',5,MA
2388
c old way next = NXTASK(nprocs, 1)
2390
call nxt_ctx_next(ctx, icounter, next)
2398
c old way next = NXTASK(-nprocs, 1)
2399
c old way call GA_SYNC()
2402
SUBROUTINE OFFSET_icsd_t2_2_3_1(l_a_offset,k_a_offset,size)
2403
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2404
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2405
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2406
C i2 ( h10 p3 h1 p5 )_v
2408
#include "global.fh"
2409
#include "mafdecls.fh"
2411
#include "errquit.fh"
2423
DO p3b = noab+1,noab+nvab
2426
DO p5b = noab+1,noab+nvab
2427
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+
2428
&h1b-1)+int_mb(k_spin+p5b-1)) THEN
2429
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb
2430
&(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
2431
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-
2432
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
2441
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
2442
&set)) CALL ERRQUIT('icsd_t2_2_3_1',0,MA_ERR)
2443
int_mb(k_a_offset) = length
2446
DO p3b = noab+1,noab+nvab
2449
DO p5b = noab+1,noab+nvab
2450
IF (int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+
2451
&h1b-1)+int_mb(k_spin+p5b-1)) THEN
2452
IF (ieor(int_mb(k_sym+h10b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb
2453
&(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
2454
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p3b-
2455
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
2457
int_mb(k_a_offset+addr) = p5b - noab - 1 + nvab * (h1b - 1 + noab
2458
&* (h10b - 1 + noab * (p3b - noab - 1)))
2459
int_mb(k_a_offset+length+addr) = size
2460
size = size + int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int
2461
&_mb(k_range+h1b-1) * int_mb(k_range+p5b-1)
2471
SUBROUTINE icsd_t2_2_3_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_off
2473
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2474
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2475
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2476
C i2 ( h10 p3 h1 p5 )_vt + = -1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( h10 p3 p5 p6 )_v
2478
#include "global.fh"
2479
#include "mafdecls.fh"
2481
#include "errquit.fh"
2489
c old way INTEGER NXTASK
2490
c -------------------------
2491
INTEGER ctx,icounter
2492
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
2493
c -------------------------
2526
c old way EXTERNAL NXTASK
2527
nprocs = GA_NNODES()
2529
c old way next = NXTASK(nprocs, 1)
2531
call nxt_ctx_next(ctx, icounter, next)
2533
DO p3b = noab+1,noab+nvab
2536
DO p5b = noab+1,noab+nvab
2537
IF (next.eq.count) THEN
2538
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
2539
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
2540
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
2541
&h1b-1)+int_mb(k_spin+p5b-1)) THEN
2542
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
2543
&(k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. ieor(irrep_v,irrep_t)) T
2545
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
2546
&ange+h1b-1) * int_mb(k_range+p5b-1)
2547
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
2548
& ERRQUIT('icsd_t2_2_3_2',0,MA_ERR)
2549
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
2550
DO p6b = noab+1,noab+nvab
2551
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h1b-1)) THEN
2552
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
2554
CALL TCE_RESTRICTED_2(p6b,h1b,p6b_1,h1b_1)
2555
CALL TCE_RESTRICTED_4(p3b,h10b,p5b,p6b,p3b_2,h10b_2,p5b_2,p6b_2)
2556
dim_common = int_mb(k_range+p6b-1)
2557
dima_sort = int_mb(k_range+h1b-1)
2558
dima = dim_common * dima_sort
2559
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_m
2561
dimb = dim_common * dimb_sort
2562
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
2563
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
2564
& ERRQUIT('icsd_t2_2_3_2',1,MA_ERR)
2565
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
2566
&icsd_t2_2_3_2',2,MA_ERR)
2567
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
2568
& int_mb(k_a_offset),(h1b_1
2569
& - 1 + noab * (p6b_1 - noab - 1)))
2570
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
2571
&,int_mb(k_range+h1b-1),2,1,1.0d0)
2572
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_3_2',3,MA_ERR)
2573
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
2574
& ERRQUIT('icsd_t2_2_3_2',4,MA_ERR)
2575
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
2576
&icsd_t2_2_3_2',5,MA_ERR)
2577
IF ((h10b .le. p3b) .and. (p6b .lt. p5b)) THEN
2578
if(.not.intorb) then
2579
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
2580
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
2581
&+nvab) * (h10b_2 - 1)))))
2583
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
2585
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
2586
&+nvab) * (h10b_2 - 1)))),p5b_2,p6b_2,p3b_2,h10b_2)
2588
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
2589
&),int_mb(k_range+p3b-1),int_mb(k_range+p6b-1),int_mb(k_range+p5b-1
2592
IF ((h10b .le. p3b) .and. (p5b .le. p6b)) THEN
2593
if(.not.intorb) then
2594
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
2595
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
2596
&+nvab) * (h10b_2 - 1)))))
2598
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
2600
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
2601
&+nvab) * (h10b_2 - 1)))),p6b_2,p5b_2,p3b_2,h10b_2)
2603
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
2604
&),int_mb(k_range+p3b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1
2607
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_3_2',6,MA_ERR)
2608
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
2609
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
2611
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_3_2',7,MA
2613
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_3_2',8,MA
2619
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
2620
&icsd_t2_2_3_2',9,MA_ERR)
2621
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
2622
&,int_mb(k_range+h10b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1
2623
&),3,2,4,1,-1.0d0/2.0d0)
2624
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
2625
& noab - 1 + nvab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noa
2627
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_3_2',10,MA_ERR
2629
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_3_2',11,M
2634
c old way next = NXTASK(nprocs, 1)
2636
call nxt_ctx_next(ctx, icounter, next)
2644
c old way next = NXTASK(-nprocs, 1)
2645
c old way call GA_SYNC()
2648
SUBROUTINE icsd_t2_2_4(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
2650
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2651
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2652
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2653
C i1 ( h10 p3 h1 h2 )_ft + = -1 * Sum ( p5 ) * t ( p3 p5 h1 h2 )_t * i2 ( h10 p5 )_f
2655
#include "global.fh"
2656
#include "mafdecls.fh"
2658
#include "errquit.fh"
2666
c old way INTEGER NXTASK
2667
c -------------------------
2668
INTEGER ctx,icounter
2669
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
2670
c -------------------------
2703
c old way EXTERNAL NXTASK
2704
nprocs = GA_NNODES()
2706
c old way next = NXTASK(nprocs, 1)
2708
call nxt_ctx_next(ctx, icounter, next)
2710
DO p3b = noab+1,noab+nvab
2714
IF (next.eq.count) THEN
2715
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
2716
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
2717
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
2718
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
2719
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
2720
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_f,irrep_t)) T
2722
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
2723
&ange+h1b-1) * int_mb(k_range+h2b-1)
2724
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
2725
& ERRQUIT('icsd_t2_2_4',0,MA_ERR)
2726
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
2727
DO p5b = noab+1,noab+nvab
2728
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h
2729
&1b-1)+int_mb(k_spin+h2b-1)) THEN
2730
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p5b-1),ieor(int_mb(
2731
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_t) THEN
2732
CALL TCE_RESTRICTED_4(p3b,p5b,h1b,h2b,p3b_1,p5b_1,h1b_1,h2b_1)
2733
CALL TCE_RESTRICTED_2(h10b,p5b,h10b_2,p5b_2)
2734
dim_common = int_mb(k_range+p5b-1)
2735
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h1b-1) * int_mb
2737
dima = dim_common * dima_sort
2738
dimb_sort = int_mb(k_range+h10b-1)
2739
dimb = dim_common * dimb_sort
2740
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
2741
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
2742
& ERRQUIT('icsd_t2_2_4',1,MA_ERR)
2743
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
2744
&icsd_t2_2_4',2,MA_ERR)
2745
IF ((p5b .lt. p3b)) THEN
2746
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
2747
& - 1 + noab * (h1b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p5b_
2749
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
2750
&,int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
2753
IF ((p3b .le. p5b)) THEN
2754
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
2755
& - 1 + noab * (h1b_1 - 1 + noab * (p5b_1 - noab - 1 + nvab * (p3b_
2757
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
2758
&,int_mb(k_range+p5b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
2761
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_4',3,MA_ERR)
2762
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
2763
& ERRQUIT('icsd_t2_2_4',4,MA_ERR)
2764
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
2765
&icsd_t2_2_4',5,MA_ERR)
2766
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
2767
& - noab - 1 + nvab * (h10b_2 - 1)))
2768
CALL TCE_SORT_2(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
2769
&),int_mb(k_range+p5b-1),1,2,1.0d0)
2770
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_4',6,MA_ERR)
2771
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
2772
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
2774
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_4',7,MA_E
2776
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_4',8,MA_E
2782
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
2783
&icsd_t2_2_4',9,MA_ERR)
2784
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h10b-1
2785
&),int_mb(k_range+h2b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1
2787
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
2788
& 1 + noab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
2790
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_4',10,MA_ERR)
2791
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_4',11,MA_
2796
c old way next = NXTASK(nprocs, 1)
2798
call nxt_ctx_next(ctx, icounter, next)
2806
c old way next = NXTASK(-nprocs, 1)
2807
c old way call GA_SYNC()
2810
SUBROUTINE icsd_t2_2_4_1(d_a,k_a_offset,d_c,k_c_offset,
2812
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2813
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2814
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2815
C i2 ( h10 p5 )_f + = 1 * f ( h10 p5 )_f
2817
#include "global.fh"
2818
#include "mafdecls.fh"
2820
#include "errquit.fh"
2826
c old way INTEGER NXTASK
2827
c -------------------------
2828
INTEGER ctx,icounter
2829
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
2830
c -------------------------
2848
c old way EXTERNAL NXTASK
2849
nprocs = GA_NNODES()
2851
c old way next = NXTASK(nprocs, 1)
2853
call nxt_ctx_next(ctx, icounter, next)
2856
DO p5b = noab+1,noab+nvab
2857
IF (next.eq.count) THEN
2858
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p5b-
2860
IF (int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+p5b-1)) THEN
2861
IF (ieor(int_mb(k_sym+h10b-1),int_mb(k_sym+p5b-1)) .eq. irrep_f) T
2863
dimc = int_mb(k_range+h10b-1) * int_mb(k_range+p5b-1)
2864
CALL TCE_RESTRICTED_2(h10b,p5b,h10b_1,p5b_1)
2866
dima_sort = int_mb(k_range+h10b-1) * int_mb(k_range+p5b-1)
2867
dima = dim_common * dima_sort
2868
IF (dima .gt. 0) THEN
2869
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
2870
& ERRQUIT('icsd_t2_2_4_1',0,MA_ERR)
2871
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
2872
&icsd_t2_2_4_1',1,MA_ERR)
2873
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p5b_1
2874
& - 1 + (noab+nvab) * (h10b_1 - 1)))
2875
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h10b-1
2876
&),int_mb(k_range+p5b-1),2,1,1.0d0)
2877
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_4_1',2,MA_ERR)
2878
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
2879
&icsd_t2_2_4_1',3,MA_ERR)
2880
CALL TCE_SORT_2(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
2881
&,int_mb(k_range+h10b-1),2,1,1.0d0)
2882
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
2883
& noab - 1 + nvab * (h10b - 1)))
2884
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_4_1',4,MA_ERR)
2885
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_4_1',5,MA
2891
c old way next = NXTASK(nprocs, 1)
2893
call nxt_ctx_next(ctx, icounter, next)
2899
c old way next = NXTASK(-nprocs, 1)
2900
c old way call GA_SYNC()
2903
SUBROUTINE OFFSET_icsd_t2_2_4_1(l_a_offset,k_a_offset,size)
2904
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2905
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2906
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2909
#include "global.fh"
2910
#include "mafdecls.fh"
2912
#include "errquit.fh"
2923
DO p5b = noab+1,noab+nvab
2924
IF (int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+p5b-1)) THEN
2925
IF (ieor(int_mb(k_sym+h10b-1),int_mb(k_sym+p5b-1)) .eq. irrep_f) T
2927
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p5b-
2935
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
2936
&set)) CALL ERRQUIT('icsd_t2_2_4_1',0,MA_ERR)
2937
int_mb(k_a_offset) = length
2941
DO p5b = noab+1,noab+nvab
2942
IF (int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+p5b-1)) THEN
2943
IF (ieor(int_mb(k_sym+h10b-1),int_mb(k_sym+p5b-1)) .eq. irrep_f) T
2945
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p5b-
2948
int_mb(k_a_offset+addr) = p5b - noab - 1 + nvab * (h10b - 1)
2949
int_mb(k_a_offset+length+addr) = size
2950
size = size + int_mb(k_range+h10b-1) * int_mb(k_range+p5b-1)
2958
SUBROUTINE icsd_t2_2_4_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_off
2960
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
2961
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
2962
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
2963
C i2 ( h10 p5 )_vt + = -1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 h10 p5 p6 )_v
2965
#include "global.fh"
2966
#include "mafdecls.fh"
2968
#include "errquit.fh"
2976
c old way INTEGER NXTASK
2977
c -------------------------
2978
INTEGER ctx,icounter
2979
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
2980
c -------------------------
3012
c old way EXTERNAL NXTASK
3013
nprocs = GA_NNODES()
3015
c old way next = NXTASK(nprocs, 1)
3017
call nxt_ctx_next(ctx, icounter, next)
3020
DO p5b = noab+1,noab+nvab
3021
IF (next.eq.count) THEN
3022
IF ((.not.restricted).or.(int_mb(k_spin+h10b-1)+int_mb(k_spin+p5b-
3024
IF (int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+p5b-1)) THEN
3025
IF (ieor(int_mb(k_sym+h10b-1),int_mb(k_sym+p5b-1)) .eq. ieor(irrep
3027
dimc = int_mb(k_range+h10b-1) * int_mb(k_range+p5b-1)
3028
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
3029
& ERRQUIT('icsd_t2_2_4_2',0,MA_ERR)
3030
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
3031
DO p6b = noab+1,noab+nvab
3033
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h7b-1)) THEN
3034
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h7b-1)) .eq. irrep_t) TH
3036
CALL TCE_RESTRICTED_2(p6b,h7b,p6b_1,h7b_1)
3037
CALL TCE_RESTRICTED_4(h10b,h7b,p5b,p6b,h10b_2,h7b_2,p5b_2,p6b_2)
3038
dim_common = int_mb(k_range+p6b-1) * int_mb(k_range+h7b-1)
3040
dima = dim_common * dima_sort
3041
dimb_sort = int_mb(k_range+h10b-1) * int_mb(k_range+p5b-1)
3042
dimb = dim_common * dimb_sort
3043
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
3044
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
3045
& ERRQUIT('icsd_t2_2_4_2',1,MA_ERR)
3046
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
3047
&icsd_t2_2_4_2',2,MA_ERR)
3048
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
3049
& int_mb(k_a_offset),(h7b_1
3050
& - 1 + noab * (p6b_1 - noab - 1)))
3051
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
3052
&,int_mb(k_range+h7b-1),2,1,1.0d0)
3053
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_4_2',3,MA_ERR)
3054
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
3055
& ERRQUIT('icsd_t2_2_4_2',4,MA_ERR)
3056
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
3057
&icsd_t2_2_4_2',5,MA_ERR)
3058
IF ((h7b .le. h10b) .and. (p6b .lt. p5b)) THEN
3059
if(.not.intorb) then
3060
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
3061
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3062
&b+nvab) * (h7b_2 - 1)))))
3064
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
3066
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3067
&b+nvab) * (h7b_2 - 1)))),p5b_2,p6b_2,h10b_2,h7b_2)
3069
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
3070
&,int_mb(k_range+h10b-1),int_mb(k_range+p6b-1),int_mb(k_range+p5b-1
3073
IF ((h7b .le. h10b) .and. (p5b .le. p6b)) THEN
3074
if(.not.intorb) then
3075
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
3076
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3077
&b+nvab) * (h7b_2 - 1)))))
3079
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
3081
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3082
&b+nvab) * (h7b_2 - 1)))),p6b_2,p5b_2,h10b_2,h7b_2)
3084
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
3085
&,int_mb(k_range+h10b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1
3088
IF ((h10b .lt. h7b) .and. (p6b .lt. p5b)) THEN
3089
if(.not.intorb) then
3090
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
3091
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
3092
&+nvab) * (h10b_2 - 1)))))
3094
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
3096
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
3097
&+nvab) * (h10b_2 - 1)))),p5b_2,p6b_2,h7b_2,h10b_2)
3099
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
3100
&),int_mb(k_range+h7b-1),int_mb(k_range+p6b-1),int_mb(k_range+p5b-1
3103
IF ((h10b .lt. h7b) .and. (p5b .le. p6b)) THEN
3104
if(.not.intorb) then
3105
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
3106
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
3107
&+nvab) * (h10b_2 - 1)))))
3109
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
3111
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
3112
&+nvab) * (h10b_2 - 1)))),p6b_2,p5b_2,h7b_2,h10b_2)
3114
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
3115
&),int_mb(k_range+h7b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1
3118
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_4_2',6,MA_ERR)
3119
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
3120
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
3122
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_4_2',7,MA
3124
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_4_2',8,MA
3131
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
3132
&icsd_t2_2_4_2',9,MA_ERR)
3133
CALL TCE_SORT_2(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
3134
&,int_mb(k_range+h10b-1),2,1,-1.0d0)
3135
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
3136
& noab - 1 + nvab * (h10b - 1)))
3137
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_4_2',10,MA_ERR
3139
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_4_2',11,M
3144
c old way next = NXTASK(nprocs, 1)
3146
call nxt_ctx_next(ctx, icounter, next)
3152
c old way next = NXTASK(-nprocs, 1)
3153
c old way call GA_SYNC()
3156
SUBROUTINE icsd_t2_2_5(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
3158
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
3159
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
3160
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
3161
C i1 ( h10 p3 h1 h2 )_vt + = 1 * P( 2 ) * Sum ( h7 p9 ) * t ( p3 p9 h1 h7 )_t * i2 ( h7 h10 h2 p9 )_v
3163
#include "global.fh"
3164
#include "mafdecls.fh"
3166
#include "errquit.fh"
3174
c old way INTEGER NXTASK
3175
c -------------------------
3176
INTEGER ctx,icounter
3177
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
3178
c -------------------------
3214
c old way EXTERNAL NXTASK
3215
nprocs = GA_NNODES()
3217
c old way next = NXTASK(nprocs, 1)
3219
call nxt_ctx_next(ctx, icounter, next)
3221
DO p3b = noab+1,noab+nvab
3225
IF (next.eq.count) THEN
3226
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
3227
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
3228
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
3229
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
3230
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
3231
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) T
3233
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
3234
&ange+h1b-1) * int_mb(k_range+h2b-1)
3235
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
3236
& ERRQUIT('icsd_t2_2_5',0,MA_ERR)
3237
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
3238
DO p9b = noab+1,noab+nvab
3240
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p9b-1) .eq. int_mb(k_spin+h
3241
&1b-1)+int_mb(k_spin+h7b-1)) THEN
3242
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p9b-1),ieor(int_mb(
3243
&k_sym+h1b-1),int_mb(k_sym+h7b-1)))) .eq. irrep_t) THEN
3244
CALL TCE_RESTRICTED_4(p3b,p9b,h1b,h7b,p3b_1,p9b_1,h1b_1,h7b_1)
3245
CALL TCE_RESTRICTED_4(h10b,h7b,h2b,p9b,h10b_2,h7b_2,h2b_2,p9b_2)
3246
dim_common = int_mb(k_range+p9b-1) * int_mb(k_range+h7b-1)
3247
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h1b-1)
3248
dima = dim_common * dima_sort
3249
dimb_sort = int_mb(k_range+h10b-1) * int_mb(k_range+h2b-1)
3250
dimb = dim_common * dimb_sort
3251
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
3252
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
3253
& ERRQUIT('icsd_t2_2_5',1,MA_ERR)
3254
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
3255
&icsd_t2_2_5',2,MA_ERR)
3256
IF ((p9b .lt. p3b) .and. (h7b .lt. h1b)) THEN
3257
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
3258
& - 1 + noab * (h7b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p9b_
3260
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p9b-1)
3261
&,int_mb(k_range+p3b-1),int_mb(k_range+h7b-1),int_mb(k_range+h1b-1)
3264
IF ((p9b .lt. p3b) .and. (h1b .le. h7b)) THEN
3265
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h7b_1
3266
& - 1 + noab * (h1b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p9b_
3268
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p9b-1)
3269
&,int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+h7b-1)
3272
IF ((p3b .le. p9b) .and. (h7b .lt. h1b)) THEN
3273
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
3274
& - 1 + noab * (h7b_1 - 1 + noab * (p9b_1 - noab - 1 + nvab * (p3b_
3276
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
3277
&,int_mb(k_range+p9b-1),int_mb(k_range+h7b-1),int_mb(k_range+h1b-1)
3280
IF ((p3b .le. p9b) .and. (h1b .le. h7b)) THEN
3281
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h7b_1
3282
& - 1 + noab * (h1b_1 - 1 + noab * (p9b_1 - noab - 1 + nvab * (p3b_
3284
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
3285
&,int_mb(k_range+p9b-1),int_mb(k_range+h1b-1),int_mb(k_range+h7b-1)
3288
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_5',3,MA_ERR)
3289
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
3290
& ERRQUIT('icsd_t2_2_5',4,MA_ERR)
3291
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
3292
&icsd_t2_2_5',5,MA_ERR)
3293
IF ((h7b .le. h10b)) THEN
3294
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p9b_2
3295
& - noab - 1 + nvab * (h2b_2 - 1 + noab * (h10b_2 - 1 + noab * (h7b
3297
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
3298
&,int_mb(k_range+h10b-1),int_mb(k_range+h2b-1),int_mb(k_range+p9b-1
3301
IF ((h10b .lt. h7b)) THEN
3302
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p9b_2
3303
& - noab - 1 + nvab * (h2b_2 - 1 + noab * (h7b_2 - 1 + noab * (h10b
3305
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
3306
&),int_mb(k_range+h7b-1),int_mb(k_range+h2b-1),int_mb(k_range+p9b-1
3309
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_5',6,MA_ERR)
3310
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
3311
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
3313
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_5',7,MA_E
3315
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_5',8,MA_E
3322
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
3323
&icsd_t2_2_5',9,MA_ERR)
3324
IF ((h1b .le. h2b)) THEN
3325
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
3326
&,int_mb(k_range+h10b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1
3328
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
3329
& 1 + noab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
3332
IF ((h2b .le. h1b)) THEN
3333
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
3334
&,int_mb(k_range+h10b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1
3336
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
3337
& 1 + noab * (h2b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
3340
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_5',10,MA_ERR)
3341
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_5',11,MA_
3346
c old way next = NXTASK(nprocs, 1)
3348
call nxt_ctx_next(ctx, icounter, next)
3356
c old way next = NXTASK(-nprocs, 1)
3357
c old way call GA_SYNC()
3360
SUBROUTINE icsd_t2_2_5_1(d_a,k_a_offset,d_c,k_c_offset,
3362
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
3363
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
3364
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
3365
C i2 ( h7 h10 h1 p9 )_v + = 1 * v ( h7 h10 h1 p9 )_v
3367
#include "global.fh"
3368
#include "mafdecls.fh"
3370
#include "errquit.fh"
3376
c old way INTEGER NXTASK
3377
c -------------------------
3378
INTEGER ctx,icounter
3379
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
3380
c -------------------------
3402
c old way EXTERNAL NXTASK
3403
nprocs = GA_NNODES()
3405
c old way next = NXTASK(nprocs, 1)
3407
call nxt_ctx_next(ctx, icounter, next)
3412
DO p9b = noab+1,noab+nvab
3413
IF (next.eq.count) THEN
3414
IF ((.not.restricted).or.(int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-
3415
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p9b-1).ne.8)) THEN
3416
IF (int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
3417
&h1b-1)+int_mb(k_spin+p9b-1)) THEN
3418
IF (ieor(int_mb(k_sym+h7b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
3419
&(k_sym+h1b-1),int_mb(k_sym+p9b-1)))) .eq. irrep_v) THEN
3420
dimc = int_mb(k_range+h7b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
3421
&ange+h1b-1) * int_mb(k_range+p9b-1)
3422
CALL TCE_RESTRICTED_4(h7b,h10b,h1b,p9b,h7b_1,h10b_1,h1b_1,p9b_1)
3424
dima_sort = int_mb(k_range+h7b-1) * int_mb(k_range+h10b-1) * int_m
3425
&b(k_range+h1b-1) * int_mb(k_range+p9b-1)
3426
dima = dim_common * dima_sort
3427
IF (dima .gt. 0) THEN
3428
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
3429
& ERRQUIT('icsd_t2_2_5_1',0,MA_ERR)
3430
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
3431
&icsd_t2_2_5_1',1,MA_ERR)
3432
IF ((h1b .le. p9b)) THEN
3433
if(.not.intorb) then
3434
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p9b_1
3435
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h10b_1 - 1 + (noa
3436
&b+nvab) * (h7b_1 - 1)))))
3438
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
3440
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h10b_1 - 1 + (noa
3441
&b+nvab) * (h7b_1 - 1)))),p9b_1,h1b_1,h10b_1,h7b_1)
3443
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h7b-1)
3444
&,int_mb(k_range+h10b-1),int_mb(k_range+h1b-1),int_mb(k_range+p9b-1
3447
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_5_1',2,MA_ERR)
3448
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
3449
&icsd_t2_2_5_1',3,MA_ERR)
3450
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p9b-1)
3451
&,int_mb(k_range+h1b-1),int_mb(k_range+h10b-1),int_mb(k_range+h7b-1
3453
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p9b -
3454
& noab - 1 + nvab * (h1b - 1 + noab * (h10b - 1 + noab * (h7b - 1))
3456
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_5_1',4,MA_ERR)
3457
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_5_1',5,MA
3463
c old way next = NXTASK(nprocs, 1)
3465
call nxt_ctx_next(ctx, icounter, next)
3473
c old way next = NXTASK(-nprocs, 1)
3474
c old way call GA_SYNC()
3477
SUBROUTINE OFFSET_icsd_t2_2_5_1(l_a_offset,k_a_offset,size)
3478
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
3479
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
3480
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
3481
C i2 ( h7 h10 h1 p9 )_v
3483
#include "global.fh"
3484
#include "mafdecls.fh"
3486
#include "errquit.fh"
3501
DO p9b = noab+1,noab+nvab
3502
IF (int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
3503
&h1b-1)+int_mb(k_spin+p9b-1)) THEN
3504
IF (ieor(int_mb(k_sym+h7b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
3505
&(k_sym+h1b-1),int_mb(k_sym+p9b-1)))) .eq. irrep_v) THEN
3506
IF ((.not.restricted).or.(int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-
3507
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p9b-1).ne.8)) THEN
3516
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
3517
&set)) CALL ERRQUIT('icsd_t2_2_5_1',0,MA_ERR)
3518
int_mb(k_a_offset) = length
3524
DO p9b = noab+1,noab+nvab
3525
IF (int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
3526
&h1b-1)+int_mb(k_spin+p9b-1)) THEN
3527
IF (ieor(int_mb(k_sym+h7b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
3528
&(k_sym+h1b-1),int_mb(k_sym+p9b-1)))) .eq. irrep_v) THEN
3529
IF ((.not.restricted).or.(int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-
3530
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p9b-1).ne.8)) THEN
3532
int_mb(k_a_offset+addr) = p9b - noab - 1 + nvab * (h1b - 1 + noab
3533
&* (h10b - 1 + noab * (h7b - 1)))
3534
int_mb(k_a_offset+length+addr) = size
3535
size = size + int_mb(k_range+h7b-1) * int_mb(k_range+h10b-1) * int
3536
&_mb(k_range+h1b-1) * int_mb(k_range+p9b-1)
3546
SUBROUTINE icsd_t2_2_5_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_off
3548
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
3549
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
3550
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
3551
C i2 ( h7 h10 h1 p9 )_vt + = 1 * Sum ( p5 ) * t ( p5 h1 )_t * v ( h7 h10 p5 p9 )_v
3553
#include "global.fh"
3554
#include "mafdecls.fh"
3556
#include "errquit.fh"
3564
c old way INTEGER NXTASK
3565
c -------------------------
3566
INTEGER ctx,icounter
3567
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
3568
c -------------------------
3601
c old way EXTERNAL NXTASK
3602
nprocs = GA_NNODES()
3604
c old way next = NXTASK(nprocs, 1)
3606
call nxt_ctx_next(ctx, icounter, next)
3611
DO p9b = noab+1,noab+nvab
3612
IF (next.eq.count) THEN
3613
IF ((.not.restricted).or.(int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-
3614
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p9b-1).ne.8)) THEN
3615
IF (int_mb(k_spin+h7b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
3616
&h1b-1)+int_mb(k_spin+p9b-1)) THEN
3617
IF (ieor(int_mb(k_sym+h7b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
3618
&(k_sym+h1b-1),int_mb(k_sym+p9b-1)))) .eq. ieor(irrep_v,irrep_t)) T
3620
dimc = int_mb(k_range+h7b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
3621
&ange+h1b-1) * int_mb(k_range+p9b-1)
3622
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
3623
& ERRQUIT('icsd_t2_2_5_2',0,MA_ERR)
3624
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
3625
DO p5b = noab+1,noab+nvab
3626
IF (int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h1b-1)) THEN
3627
IF (ieor(int_mb(k_sym+p5b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
3629
CALL TCE_RESTRICTED_2(p5b,h1b,p5b_1,h1b_1)
3630
CALL TCE_RESTRICTED_4(h7b,h10b,p9b,p5b,h7b_2,h10b_2,p9b_2,p5b_2)
3631
dim_common = int_mb(k_range+p5b-1)
3632
dima_sort = int_mb(k_range+h1b-1)
3633
dima = dim_common * dima_sort
3634
dimb_sort = int_mb(k_range+h7b-1) * int_mb(k_range+h10b-1) * int_m
3636
dimb = dim_common * dimb_sort
3637
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
3638
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
3639
& ERRQUIT('icsd_t2_2_5_2',1,MA_ERR)
3640
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
3641
&icsd_t2_2_5_2',2,MA_ERR)
3642
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
3643
& int_mb(k_a_offset),(h1b_1
3644
& - 1 + noab * (p5b_1 - noab - 1)))
3645
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
3646
&,int_mb(k_range+h1b-1),2,1,1.0d0)
3647
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_5_2',3,MA_ERR)
3648
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
3649
& ERRQUIT('icsd_t2_2_5_2',4,MA_ERR)
3650
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
3651
&icsd_t2_2_5_2',5,MA_ERR)
3652
IF ((p5b .le. p9b)) THEN
3653
if(.not.intorb) then
3654
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p9b_2
3655
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3656
&b+nvab) * (h7b_2 - 1)))))
3658
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
3660
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3661
&b+nvab) * (h7b_2 - 1)))),p9b_2,p5b_2,h10b_2,h7b_2)
3663
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
3664
&,int_mb(k_range+h10b-1),int_mb(k_range+p5b-1),int_mb(k_range+p9b-1
3667
IF ((p9b .lt. p5b)) THEN
3668
if(.not.intorb) then
3669
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
3670
& - 1 + (noab+nvab) * (p9b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3671
&b+nvab) * (h7b_2 - 1)))))
3673
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
3675
& - 1 + (noab+nvab) * (p9b_2 - 1 + (noab+nvab) * (h10b_2 - 1 + (noa
3676
&b+nvab) * (h7b_2 - 1)))),p5b_2,p9b_2,h10b_2,h7b_2)
3678
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
3679
&,int_mb(k_range+h10b-1),int_mb(k_range+p9b-1),int_mb(k_range+p5b-1
3682
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_5_2',6,MA_ERR)
3683
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
3684
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
3686
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_5_2',7,MA
3688
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_5_2',8,MA
3694
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
3695
&icsd_t2_2_5_2',9,MA_ERR)
3696
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p9b-1)
3697
&,int_mb(k_range+h10b-1),int_mb(k_range+h7b-1),int_mb(k_range+h1b-1
3699
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p9b -
3700
& noab - 1 + nvab * (h1b - 1 + noab * (h10b - 1 + noab * (h7b - 1))
3702
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_5_2',10,MA_ERR
3704
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_5_2',11,M
3709
c old way next = NXTASK(nprocs, 1)
3711
call nxt_ctx_next(ctx, icounter, next)
3719
c old way next = NXTASK(-nprocs, 1)
3720
c old way call GA_SYNC()
3723
SUBROUTINE icsd_t2_2_6(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
3725
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
3726
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
3727
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
3728
C i1 ( h10 p3 h1 h2 )_vt + = 1/2 * Sum ( p5 p6 ) * t ( p5 p6 h1 h2 )_t * v ( h10 p3 p5 p6 )_v
3730
#include "global.fh"
3731
#include "mafdecls.fh"
3733
#include "errquit.fh"
3741
c old way INTEGER NXTASK
3742
c -------------------------
3743
INTEGER ctx,icounter
3744
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
3745
c -------------------------
3783
DOUBLE PRECISION FACTORIAL
3784
c old way EXTERNAL NXTASK
3786
nprocs = GA_NNODES()
3788
c old way next = NXTASK(nprocs, 1)
3790
call nxt_ctx_next(ctx, icounter, next)
3792
DO p3b = noab+1,noab+nvab
3796
IF (next.eq.count) THEN
3797
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-
3798
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
3799
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h10b-1) .eq. int_mb(k_spin+
3800
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
3801
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h10b-1),ieor(int_mb
3802
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) T
3804
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1) * int_mb(k_r
3805
&ange+h1b-1) * int_mb(k_range+h2b-1)
3806
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
3807
& ERRQUIT('icsd_t2_2_6',0,MA_ERR)
3808
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
3809
DO p5b = noab+1,noab+nvab
3810
DO p6b = p5b,noab+nvab
3811
IF (int_mb(k_spin+p5b-1)+int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h
3812
&1b-1)+int_mb(k_spin+h2b-1)) THEN
3813
IF (ieor(int_mb(k_sym+p5b-1),ieor(int_mb(k_sym+p6b-1),ieor(int_mb(
3814
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_t) THEN
3815
CALL TCE_RESTRICTED_4(p5b,p6b,h1b,h2b,p5b_1,p6b_1,h1b_1,h2b_1)
3816
CALL TCE_RESTRICTED_4(p3b,h10b,p5b,p6b,p3b_2,h10b_2,p5b_2,p6b_2)
3817
dim_common = int_mb(k_range+p5b-1) * int_mb(k_range+p6b-1)
3818
dima_sort = int_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
3819
dima = dim_common * dima_sort
3820
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h10b-1)
3821
dimb = dim_common * dimb_sort
3822
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
3823
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
3824
& ERRQUIT('icsd_t2_2_6',1,MA_ERR)
3825
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
3826
&icsd_t2_2_6',2,MA_ERR)
3827
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
3828
& - 1 + noab * (h1b_1 - 1 + noab * (p6b_1 - noab - 1 + nvab * (p5b_
3830
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
3831
&,int_mb(k_range+p6b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
3833
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_2_6',3,MA_ERR)
3834
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
3835
& ERRQUIT('icsd_t2_2_6',4,MA_ERR)
3836
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
3837
&icsd_t2_2_6',5,MA_ERR)
3838
IF ((h10b .le. p3b)) THEN
3839
if(.not.intorb) then
3840
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
3841
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
3842
&+nvab) * (h10b_2 - 1)))))
3844
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
3846
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
3847
&+nvab) * (h10b_2 - 1)))),p6b_2,p5b_2,p3b_2,h10b_2)
3849
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h10b-1
3850
&),int_mb(k_range+p3b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1
3853
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_2_6',6,MA_ERR)
3857
IF (p5b .eq. p6b) THEN
3858
nsuperp(isuperp) = nsuperp(isuperp) + 1
3860
isuperp = isuperp + 1
3862
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,2.0d0/FACTORIAL(
3863
&nsuperp(1))/FACTORIAL(nsuperp(2)),dbl_mb(k_a_sort),dim_common,dbl_
3864
&mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sort),dima_sort)
3865
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_2_6',7,MA_E
3867
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_2_6',8,MA_E
3874
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
3875
&icsd_t2_2_6',9,MA_ERR)
3876
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h10b-1
3877
&),int_mb(k_range+p3b-1),int_mb(k_range+h2b-1),int_mb(k_range+h1b-1
3878
&),2,1,4,3,1.0d0/2.0d0)
3879
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
3880
& 1 + noab * (h1b - 1 + noab * (h10b - 1 + noab * (p3b - noab - 1))
3882
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_2_6',10,MA_ERR)
3883
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_2_6',11,MA_
3888
c old way next = NXTASK(nprocs, 1)
3890
call nxt_ctx_next(ctx, icounter, next)
3898
c old way next = NXTASK(-nprocs, 1)
3899
c old way call GA_SYNC()
3902
SUBROUTINE icsd_t2_3(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
3904
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
3905
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
3906
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
3907
C i0 ( p3 p4 h1 h2 )_vt + = -1 * P( 2 ) * Sum ( p5 ) * t ( p5 h1 )_t * i1 ( p3 p4 h2 p5 )_v
3909
#include "global.fh"
3910
#include "mafdecls.fh"
3912
#include "errquit.fh"
3920
c old way INTEGER NXTASK
3921
c -------------------------
3922
INTEGER ctx,icounter
3923
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
3924
c -------------------------
3957
c old way EXTERNAL NXTASK
3958
nprocs = GA_NNODES()
3960
c old way next = NXTASK(nprocs, 1)
3962
call nxt_ctx_next(ctx, icounter, next)
3964
DO p3b = noab+1,noab+nvab
3965
DO p4b = p3b,noab+nvab
3968
IF (next.eq.count) THEN
3969
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
3970
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
3971
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
3972
&1b-1)+int_mb(k_spin+h2b-1)) THEN
3973
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
3974
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
3976
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
3977
&nge+h1b-1) * int_mb(k_range+h2b-1)
3978
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
3979
& ERRQUIT('icsd_t2_3',0,MA_ERR)
3980
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
3981
DO p5b = noab+1,noab+nvab
3982
IF (int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h1b-1)) THEN
3983
IF (ieor(int_mb(k_sym+p5b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
3985
CALL TCE_RESTRICTED_2(p5b,h1b,p5b_1,h1b_1)
3986
CALL TCE_RESTRICTED_4(p3b,p4b,h2b,p5b,p3b_2,p4b_2,h2b_2,p5b_2)
3987
dim_common = int_mb(k_range+p5b-1)
3988
dima_sort = int_mb(k_range+h1b-1)
3989
dima = dim_common * dima_sort
3990
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb
3992
dimb = dim_common * dimb_sort
3993
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
3994
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
3995
& ERRQUIT('icsd_t2_3',1,MA_ERR)
3996
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
3997
&icsd_t2_3',2,MA_ERR)
3998
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
3999
& int_mb(k_a_offset),(h1b_1
4000
& - 1 + noab * (p5b_1 - noab - 1)))
4001
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
4002
&,int_mb(k_range+h1b-1),2,1,1.0d0)
4003
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_3',3,MA_ERR)
4004
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
4005
& ERRQUIT('icsd_t2_3',4,MA_ERR)
4006
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
4007
&icsd_t2_3',5,MA_ERR)
4008
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
4009
& - noab - 1 + nvab * (h2b_2 - 1 + noab * (p4b_2 - noab - 1 + nvab
4010
&* (p3b_2 - noab - 1)))))
4011
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p3b-1)
4012
&,int_mb(k_range+p4b-1),int_mb(k_range+h2b-1),int_mb(k_range+p5b-1)
4014
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_3',6,MA_ERR)
4015
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
4016
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
4018
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_3',7,MA_ERR
4020
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_3',8,MA_ERR
4026
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
4027
&icsd_t2_3',9,MA_ERR)
4028
IF ((h1b .le. h2b)) THEN
4029
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
4030
&,int_mb(k_range+p4b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
4032
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
4033
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
4036
IF ((h2b .le. h1b)) THEN
4037
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
4038
&,int_mb(k_range+p4b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
4040
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
4041
& 1 + noab * (h2b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
4044
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_3',10,MA_ERR)
4045
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_3',11,MA_ER
4050
c old way next = NXTASK(nprocs, 1)
4052
call nxt_ctx_next(ctx, icounter, next)
4060
c old way next = NXTASK(-nprocs, 1)
4061
c old way call GA_SYNC()
4064
SUBROUTINE icsd_t2_3_1(d_a,k_a_offset,d_c,k_c_offset,ctx,icounter)
4065
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4066
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4067
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4068
C i1 ( p3 p4 h1 p5 )_v + = 1 * v ( p3 p4 h1 p5 )_v
4070
#include "global.fh"
4071
#include "mafdecls.fh"
4073
#include "errquit.fh"
4079
c old way INTEGER NXTASK
4080
c -------------------------
4081
INTEGER ctx,icounter
4082
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
4083
c -------------------------
4105
c old way EXTERNAL NXTASK
4106
nprocs = GA_NNODES()
4108
c old way next = NXTASK(nprocs, 1)
4110
call nxt_ctx_next(ctx, icounter, next)
4112
DO p3b = noab+1,noab+nvab
4113
DO p4b = p3b,noab+nvab
4115
DO p5b = noab+1,noab+nvab
4116
IF (next.eq.count) THEN
4117
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
4118
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
4119
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
4120
&1b-1)+int_mb(k_spin+p5b-1)) THEN
4121
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
4122
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
4123
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
4124
&nge+h1b-1) * int_mb(k_range+p5b-1)
4125
CALL TCE_RESTRICTED_4(p3b,p4b,h1b,p5b,p3b_1,p4b_1,h1b_1,p5b_1)
4127
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb
4128
&(k_range+h1b-1) * int_mb(k_range+p5b-1)
4129
dima = dim_common * dima_sort
4130
IF (dima .gt. 0) THEN
4131
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
4132
& ERRQUIT('icsd_t2_3_1',0,MA_ERR)
4133
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
4134
&icsd_t2_3_1',1,MA_ERR)
4135
IF ((h1b .le. p5b)) THEN
4136
if(.not.intorb) then
4137
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p5b_1
4138
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p4b_1 - 1 + (noab
4139
&+nvab) * (p3b_1 - 1)))))
4141
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
4143
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p4b_1 - 1 + (noab
4144
&+nvab) * (p3b_1 - 1)))),p5b_1,h1b_1,p4b_1,p3b_1)
4146
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
4147
&,int_mb(k_range+p4b-1),int_mb(k_range+h1b-1),int_mb(k_range+p5b-1)
4150
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_3_1',2,MA_ERR)
4151
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
4152
&icsd_t2_3_1',3,MA_ERR)
4153
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
4154
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
4156
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
4157
& noab - 1 + nvab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b
4159
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_3_1',4,MA_ERR)
4160
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_3_1',5,MA_E
4166
c old way next = NXTASK(nprocs, 1)
4168
call nxt_ctx_next(ctx, icounter, next)
4176
c old way next = NXTASK(-nprocs, 1)
4177
c old way call GA_SYNC()
4180
SUBROUTINE OFFSET_icsd_t2_3_1(l_a_offset,k_a_offset,size)
4181
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4182
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4183
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4184
C i1 ( p3 p4 h1 p5 )_v
4186
#include "global.fh"
4187
#include "mafdecls.fh"
4189
#include "errquit.fh"
4201
DO p3b = noab+1,noab+nvab
4202
DO p4b = p3b,noab+nvab
4204
DO p5b = noab+1,noab+nvab
4205
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
4206
&1b-1)+int_mb(k_spin+p5b-1)) THEN
4207
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
4208
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
4209
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
4210
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
4219
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
4220
&set)) CALL ERRQUIT('icsd_t2_3_1',0,MA_ERR)
4221
int_mb(k_a_offset) = length
4224
DO p3b = noab+1,noab+nvab
4225
DO p4b = p3b,noab+nvab
4227
DO p5b = noab+1,noab+nvab
4228
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
4229
&1b-1)+int_mb(k_spin+p5b-1)) THEN
4230
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
4231
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
4232
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
4233
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
4235
int_mb(k_a_offset+addr) = p5b - noab - 1 + nvab * (h1b - 1 + noab
4236
&* (p4b - noab - 1 + nvab * (p3b - noab - 1)))
4237
int_mb(k_a_offset+length+addr) = size
4238
size = size + int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_
4239
&mb(k_range+h1b-1) * int_mb(k_range+p5b-1)
4249
SUBROUTINE icsd_t2_3_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
4251
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4252
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4253
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4254
C i1 ( p3 p4 h1 p5 )_vt + = -1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( p3 p4 p5 p6 )_v
4256
#include "global.fh"
4257
#include "mafdecls.fh"
4259
#include "errquit.fh"
4267
c old way INTEGER NXTASK
4268
c -------------------------
4269
INTEGER ctx,icounter
4270
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
4271
c -------------------------
4304
c old way EXTERNAL NXTASK
4305
nprocs = GA_NNODES()
4307
c old way next = NXTASK(nprocs, 1)
4309
call nxt_ctx_next(ctx, icounter, next)
4311
DO p3b = noab+1,noab+nvab
4312
DO p4b = p3b,noab+nvab
4314
DO p5b = noab+1,noab+nvab
4315
IF (next.eq.count) THEN
4316
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
4317
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
4318
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
4319
&1b-1)+int_mb(k_spin+p5b-1)) THEN
4320
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
4321
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
4323
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
4324
&nge+h1b-1) * int_mb(k_range+p5b-1)
4325
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
4326
& ERRQUIT('icsd_t2_3_2',0,MA_ERR)
4327
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
4328
DO p6b = noab+1,noab+nvab
4329
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h1b-1)) THEN
4330
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
4332
CALL TCE_RESTRICTED_2(p6b,h1b,p6b_1,h1b_1)
4333
CALL TCE_RESTRICTED_4(p3b,p4b,p5b,p6b,p3b_2,p4b_2,p5b_2,p6b_2)
4334
dim_common = int_mb(k_range+p6b-1)
4335
dima_sort = int_mb(k_range+h1b-1)
4336
dima = dim_common * dima_sort
4337
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb
4339
dimb = dim_common * dimb_sort
4340
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
4341
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
4342
& ERRQUIT('icsd_t2_3_2',1,MA_ERR)
4343
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
4344
&icsd_t2_3_2',2,MA_ERR)
4345
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
4346
& int_mb(k_a_offset),(h1b_1
4347
& - 1 + noab * (p6b_1 - noab - 1)))
4348
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
4349
&,int_mb(k_range+h1b-1),2,1,1.0d0)
4350
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_3_2',3,MA_ERR)
4351
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
4352
& ERRQUIT('icsd_t2_3_2',4,MA_ERR)
4353
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
4354
&icsd_t2_3_2',5,MA_ERR)
4355
IF ((p6b .lt. p5b)) THEN
4356
if(.not.intorb) then
4357
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
4358
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
4359
&+nvab) * (p3b_2 - 1)))))
4361
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
4363
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
4364
&+nvab) * (p3b_2 - 1)))),p5b_2,p6b_2,p4b_2,p3b_2)
4366
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p3b-1)
4367
&,int_mb(k_range+p4b-1),int_mb(k_range+p6b-1),int_mb(k_range+p5b-1)
4370
IF ((p5b .le. p6b)) THEN
4371
if(.not.intorb) then
4372
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
4373
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
4374
&+nvab) * (p3b_2 - 1)))))
4376
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
4378
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
4379
&+nvab) * (p3b_2 - 1)))),p6b_2,p5b_2,p4b_2,p3b_2)
4381
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p3b-1)
4382
&,int_mb(k_range+p4b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1)
4385
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_3_2',6,MA_ERR)
4386
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
4387
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
4389
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_3_2',7,MA_E
4391
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_3_2',8,MA_E
4397
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
4398
&icsd_t2_3_2',9,MA_ERR)
4399
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
4400
&,int_mb(k_range+p4b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
4401
&,3,2,4,1,-1.0d0/2.0d0)
4402
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
4403
& noab - 1 + nvab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b
4405
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_3_2',10,MA_ERR)
4406
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_3_2',11,MA_
4411
c old way next = NXTASK(nprocs, 1)
4413
call nxt_ctx_next(ctx, icounter, next)
4421
c old way next = NXTASK(-nprocs, 1)
4422
c old way call GA_SYNC()
4425
SUBROUTINE icsd_t2_4(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
4427
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4428
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4429
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4430
C i0 ( p3 p4 h1 h2 )_tf + = -1 * P( 2 ) * Sum ( h9 ) * t ( p3 p4 h1 h9 )_t * i1 ( h9 h2 )_f
4432
#include "global.fh"
4433
#include "mafdecls.fh"
4435
#include "errquit.fh"
4443
c old way INTEGER NXTASK
4444
c -------------------------
4445
INTEGER ctx,icounter
4446
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
4447
c -------------------------
4480
c old way EXTERNAL NXTASK
4481
nprocs = GA_NNODES()
4483
c old way next = NXTASK(nprocs, 1)
4485
call nxt_ctx_next(ctx, icounter, next)
4487
DO p3b = noab+1,noab+nvab
4488
DO p4b = p3b,noab+nvab
4491
IF (next.eq.count) THEN
4492
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
4493
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
4494
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
4495
&1b-1)+int_mb(k_spin+h2b-1)) THEN
4496
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
4497
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_t,irrep_f)) TH
4499
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
4500
&nge+h1b-1) * int_mb(k_range+h2b-1)
4501
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
4502
& ERRQUIT('icsd_t2_4',0,MA_ERR)
4503
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
4505
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
4506
&1b-1)+int_mb(k_spin+h9b-1)) THEN
4507
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
4508
&k_sym+h1b-1),int_mb(k_sym+h9b-1)))) .eq. irrep_t) THEN
4509
CALL TCE_RESTRICTED_4(p3b,p4b,h1b,h9b,p3b_1,p4b_1,h1b_1,h9b_1)
4510
CALL TCE_RESTRICTED_2(h9b,h2b,h9b_2,h2b_2)
4511
dim_common = int_mb(k_range+h9b-1)
4512
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb
4514
dima = dim_common * dima_sort
4515
dimb_sort = int_mb(k_range+h2b-1)
4516
dimb = dim_common * dimb_sort
4517
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
4518
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
4519
& ERRQUIT('icsd_t2_4',1,MA_ERR)
4520
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
4521
&icsd_t2_4',2,MA_ERR)
4522
IF ((h9b .lt. h1b)) THEN
4523
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
4524
& - 1 + noab * (h9b_1 - 1 + noab * (p4b_1 - noab - 1 + nvab * (p3b_
4526
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
4527
&,int_mb(k_range+p4b-1),int_mb(k_range+h9b-1),int_mb(k_range+h1b-1)
4530
IF ((h1b .le. h9b)) THEN
4531
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h9b_1
4532
& - 1 + noab * (h1b_1 - 1 + noab * (p4b_1 - noab - 1 + nvab * (p3b_
4534
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
4535
&,int_mb(k_range+p4b-1),int_mb(k_range+h1b-1),int_mb(k_range+h9b-1)
4538
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_4',3,MA_ERR)
4539
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
4540
& ERRQUIT('icsd_t2_4',4,MA_ERR)
4541
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
4542
&icsd_t2_4',5,MA_ERR)
4543
ccx CALL GET_HASH_BLOCK_MA(dbl_mb(d_b),dbl_mb(k_b),dimb,
4544
ccx & int_mb(k_b_offset),(h2b_2
4545
ccx & - 1 + noab * (h9b_2 - 1)))
4546
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(h2b_2
4547
& - 1 + noab * (h9b_2 - 1)))
4549
CALL TCE_SORT_2(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
4550
&,int_mb(k_range+h2b-1),2,1,1.0d0)
4551
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_4',6,MA_ERR)
4552
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
4553
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
4555
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_4',7,MA_ERR
4557
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_4',8,MA_ERR
4563
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
4564
&icsd_t2_4',9,MA_ERR)
4565
IF ((h1b .le. h2b)) THEN
4566
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
4567
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
4569
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
4570
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
4573
IF ((h2b .le. h1b)) THEN
4574
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
4575
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
4577
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
4578
& 1 + noab * (h2b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
4581
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_4',10,MA_ERR)
4582
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_4',11,MA_ER
4587
c old way next = NXTASK(nprocs, 1)
4589
call nxt_ctx_next(ctx, icounter, next)
4597
c old way next = NXTASK(-nprocs, 1)
4598
c old way call GA_SYNC()
4601
SUBROUTINE icsd_t2_4_1(d_a,k_a_offset,d_c,k_c_offset,ctx,icounter)
4602
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4603
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4604
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4605
C i1 ( h9 h1 )_f + = 1 * f ( h9 h1 )_f
4607
#include "global.fh"
4608
#include "mafdecls.fh"
4610
#include "errquit.fh"
4616
c old way INTEGER NXTASK
4617
c -------------------------
4618
INTEGER ctx,icounter
4619
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
4620
c -------------------------
4638
c old way EXTERNAL NXTASK
4639
nprocs = GA_NNODES()
4641
c old way next = NXTASK(nprocs, 1)
4643
call nxt_ctx_next(ctx, icounter, next)
4647
IF (next.eq.count) THEN
4648
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h1b-1
4650
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+h1b-1)) THEN
4651
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+h1b-1)) .eq. irrep_f) TH
4653
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h1b-1)
4654
CALL TCE_RESTRICTED_2(h9b,h1b,h9b_1,h1b_1)
4656
dima_sort = int_mb(k_range+h9b-1) * int_mb(k_range+h1b-1)
4657
dima = dim_common * dima_sort
4658
IF (dima .gt. 0) THEN
4659
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
4660
& ERRQUIT('icsd_t2_4_1',0,MA_ERR)
4661
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
4662
&icsd_t2_4_1',1,MA_ERR)
4663
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
4664
& - 1 + (noab+nvab) * (h9b_1 - 1)))
4665
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h9b-1)
4666
&,int_mb(k_range+h1b-1),2,1,1.0d0)
4667
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_4_1',2,MA_ERR)
4668
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
4669
&icsd_t2_4_1',3,MA_ERR)
4670
CALL TCE_SORT_2(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+h1b-1)
4671
&,int_mb(k_range+h9b-1),2,1,1.0d0)
4672
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
4673
& 1 + noab * (h9b - 1)))
4674
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_4_1',4,MA_ERR)
4675
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_4_1',5,MA_E
4681
c oldl way next = NXTASK(nprocs, 1)
4683
call nxt_ctx_next(ctx, icounter, next)
4689
c old way next = NXTASK(-nprocs, 1)
4690
c old way call GA_SYNC()
4693
SUBROUTINE OFFSET_icsd_t2_4_1(l_a_offset,k_a_offset,size)
4694
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4695
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4696
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4699
#include "global.fh"
4700
#include "mafdecls.fh"
4702
#include "errquit.fh"
4714
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+h1b-1)) THEN
4715
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+h1b-1)) .eq. irrep_f) TH
4717
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h1b-1
4725
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
4726
&set)) CALL ERRQUIT('icsd_t2_4_1',0,MA_ERR)
4727
int_mb(k_a_offset) = length
4732
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+h1b-1)) THEN
4733
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+h1b-1)) .eq. irrep_f) TH
4735
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h1b-1
4738
int_mb(k_a_offset+addr) = h1b - 1 + noab * (h9b - 1)
4739
int_mb(k_a_offset+length+addr) = size
4740
size = size + int_mb(k_range+h9b-1) * int_mb(k_range+h1b-1)
4748
SUBROUTINE icsd_t2_4_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
4750
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4751
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4752
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4753
C i1 ( h9 h1 )_ft + = 1 * Sum ( p8 ) * t ( p8 h1 )_t * i2 ( h9 p8 )_f
4755
#include "global.fh"
4756
#include "mafdecls.fh"
4758
#include "errquit.fh"
4766
c old way INTEGER NXTASK
4767
c -------------------------
4768
INTEGER ctx,icounter
4769
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
4770
c -------------------------
4799
c old way EXTERNAL NXTASK
4800
nprocs = GA_NNODES()
4802
c old way next = NXTASK(nprocs, 1)
4804
call nxt_ctx_next(ctx, icounter, next)
4808
IF (next.eq.count) THEN
4809
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h1b-1
4811
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+h1b-1)) THEN
4812
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+h1b-1)) .eq. ieor(irrep_
4814
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h1b-1)
4815
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
4816
& ERRQUIT('icsd_t2_4_2',0,MA_ERR)
4817
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
4818
DO p8b = noab+1,noab+nvab
4819
IF (int_mb(k_spin+p8b-1) .eq. int_mb(k_spin+h1b-1)) THEN
4820
IF (ieor(int_mb(k_sym+p8b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
4822
CALL TCE_RESTRICTED_2(p8b,h1b,p8b_1,h1b_1)
4823
CALL TCE_RESTRICTED_2(h9b,p8b,h9b_2,p8b_2)
4824
dim_common = int_mb(k_range+p8b-1)
4825
dima_sort = int_mb(k_range+h1b-1)
4826
dima = dim_common * dima_sort
4827
dimb_sort = int_mb(k_range+h9b-1)
4828
dimb = dim_common * dimb_sort
4829
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
4830
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
4831
& ERRQUIT('icsd_t2_4_2',1,MA_ERR)
4832
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
4833
&icsd_t2_4_2',2,MA_ERR)
4834
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
4835
& int_mb(k_a_offset),(h1b_1
4836
& - 1 + noab * (p8b_1 - noab - 1)))
4837
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p8b-1)
4838
&,int_mb(k_range+h1b-1),2,1,1.0d0)
4839
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_4_2',3,MA_ERR)
4840
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
4841
& ERRQUIT('icsd_t2_4_2',4,MA_ERR)
4842
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
4843
&icsd_t2_4_2',5,MA_ERR)
4844
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p8b_2
4845
& - noab - 1 + nvab * (h9b_2 - 1)))
4846
CALL TCE_SORT_2(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
4847
&,int_mb(k_range+p8b-1),1,2,1.0d0)
4848
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_4_2',6,MA_ERR)
4849
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
4850
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
4852
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_4_2',7,MA_E
4854
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_4_2',8,MA_E
4860
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
4861
&icsd_t2_4_2',9,MA_ERR)
4862
CALL TCE_SORT_2(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h9b-1)
4863
&,int_mb(k_range+h1b-1),1,2,1.0d0)
4864
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
4865
& 1 + noab * (h9b - 1)))
4866
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_4_2',10,MA_ERR)
4867
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_4_2',11,MA_
4872
c old way next = NXTASK(nprocs, 1)
4874
call nxt_ctx_next(ctx, icounter, next)
4880
c old way next = NXTASK(-nprocs, 1)
4881
c old way call GA_SYNC()
4884
SUBROUTINE icsd_t2_4_2_1(d_a,k_a_offset,d_c,k_c_offset,
4886
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4887
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4888
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4889
C i2 ( h9 p8 )_f + = 1 * f ( h9 p8 )_f
4891
#include "global.fh"
4892
#include "mafdecls.fh"
4894
#include "errquit.fh"
4900
c old way INTEGER NXTASK
4901
c -------------------------
4902
INTEGER ctx,icounter
4903
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
4904
c -------------------------
4922
c ol dway EXTERNAL NXTASK
4923
nprocs = GA_NNODES()
4925
c old way next = NXTASK(nprocs, 1)
4927
call nxt_ctx_next(ctx, icounter, next)
4930
DO p8b = noab+1,noab+nvab
4931
IF (next.eq.count) THEN
4932
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+p8b-1
4934
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+p8b-1)) THEN
4935
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+p8b-1)) .eq. irrep_f) TH
4937
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+p8b-1)
4938
CALL TCE_RESTRICTED_2(h9b,p8b,h9b_1,p8b_1)
4940
dima_sort = int_mb(k_range+h9b-1) * int_mb(k_range+p8b-1)
4941
dima = dim_common * dima_sort
4942
IF (dima .gt. 0) THEN
4943
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
4944
& ERRQUIT('icsd_t2_4_2_1',0,MA_ERR)
4945
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
4946
&icsd_t2_4_2_1',1,MA_ERR)
4947
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p8b_1
4948
& - 1 + (noab+nvab) * (h9b_1 - 1)))
4949
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h9b-1)
4950
&,int_mb(k_range+p8b-1),2,1,1.0d0)
4951
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_4_2_1',2,MA_ERR)
4952
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
4953
&icsd_t2_4_2_1',3,MA_ERR)
4954
CALL TCE_SORT_2(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p8b-1)
4955
&,int_mb(k_range+h9b-1),2,1,1.0d0)
4956
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p8b -
4957
& noab - 1 + nvab * (h9b - 1)))
4958
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_4_2_1',4,MA_ERR)
4959
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_4_2_1',5,MA
4965
c old way next = NXTASK(nprocs, 1)
4967
call nxt_ctx_next(ctx, icounter, next)
4973
c old way next = NXTASK(-nprocs, 1)
4974
c old way call GA_SYNC()
4977
SUBROUTINE OFFSET_icsd_t2_4_2_1(l_a_offset,k_a_offset,size)
4978
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
4979
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
4980
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
4983
#include "global.fh"
4984
#include "mafdecls.fh"
4986
#include "errquit.fh"
4997
DO p8b = noab+1,noab+nvab
4998
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+p8b-1)) THEN
4999
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+p8b-1)) .eq. irrep_f) TH
5001
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+p8b-1
5009
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
5010
&set)) CALL ERRQUIT('icsd_t2_4_2_1',0,MA_ERR)
5011
int_mb(k_a_offset) = length
5015
DO p8b = noab+1,noab+nvab
5016
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+p8b-1)) THEN
5017
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+p8b-1)) .eq. irrep_f) TH
5019
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+p8b-1
5022
int_mb(k_a_offset+addr) = p8b - noab - 1 + nvab * (h9b - 1)
5023
int_mb(k_a_offset+length+addr) = size
5024
size = size + int_mb(k_range+h9b-1) * int_mb(k_range+p8b-1)
5032
SUBROUTINE icsd_t2_4_2_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_off
5034
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
5035
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
5036
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
5037
C i2 ( h9 p8 )_vt + = 1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 h9 p6 p8 )_v
5039
#include "global.fh"
5040
#include "mafdecls.fh"
5042
#include "errquit.fh"
5050
c old way INTEGER NXTASK
5051
c -------------------------
5052
INTEGER ctx,icounter
5053
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
5054
c -------------------------
5086
c old way EXTERNAL NXTASK
5087
nprocs = GA_NNODES()
5089
c old way next = NXTASK(nprocs, 1)
5091
call nxt_ctx_next(ctx, icounter, next)
5094
DO p8b = noab+1,noab+nvab
5095
IF (next.eq.count) THEN
5096
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+p8b-1
5098
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+p8b-1)) THEN
5099
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+p8b-1)) .eq. ieor(irrep_
5101
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+p8b-1)
5102
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
5103
& ERRQUIT('icsd_t2_4_2_2',0,MA_ERR)
5104
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
5105
DO p6b = noab+1,noab+nvab
5107
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h7b-1)) THEN
5108
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h7b-1)) .eq. irrep_t) TH
5110
CALL TCE_RESTRICTED_2(p6b,h7b,p6b_1,h7b_1)
5111
CALL TCE_RESTRICTED_4(h9b,h7b,p8b,p6b,h9b_2,h7b_2,p8b_2,p6b_2)
5112
dim_common = int_mb(k_range+p6b-1) * int_mb(k_range+h7b-1)
5114
dima = dim_common * dima_sort
5115
dimb_sort = int_mb(k_range+h9b-1) * int_mb(k_range+p8b-1)
5116
dimb = dim_common * dimb_sort
5117
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
5118
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
5119
& ERRQUIT('icsd_t2_4_2_2',1,MA_ERR)
5120
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
5121
&icsd_t2_4_2_2',2,MA_ERR)
5122
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
5123
& int_mb(k_a_offset),(h7b_1
5124
& - 1 + noab * (p6b_1 - noab - 1)))
5125
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
5126
&,int_mb(k_range+h7b-1),2,1,1.0d0)
5127
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_4_2_2',3,MA_ERR)
5128
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
5129
& ERRQUIT('icsd_t2_4_2_2',4,MA_ERR)
5130
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
5131
&icsd_t2_4_2_2',5,MA_ERR)
5132
IF ((h7b .le. h9b) .and. (p6b .le. p8b)) THEN
5133
if(.not.intorb) then
5134
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p8b_2
5135
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5136
&+nvab) * (h7b_2 - 1)))))
5138
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5140
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5141
&+nvab) * (h7b_2 - 1)))),p8b_2,p6b_2,h9b_2,h7b_2)
5143
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
5144
&,int_mb(k_range+h9b-1),int_mb(k_range+p6b-1),int_mb(k_range+p8b-1)
5147
IF ((h7b .le. h9b) .and. (p8b .lt. p6b)) THEN
5148
if(.not.intorb) then
5149
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
5150
& - 1 + (noab+nvab) * (p8b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5151
&+nvab) * (h7b_2 - 1)))))
5153
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5155
& - 1 + (noab+nvab) * (p8b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5156
&+nvab) * (h7b_2 - 1)))),p6b_2,p8b_2,h9b_2,h7b_2)
5158
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
5159
&,int_mb(k_range+h9b-1),int_mb(k_range+p8b-1),int_mb(k_range+p6b-1)
5162
IF ((h9b .lt. h7b) .and. (p6b .le. p8b)) THEN
5163
if(.not.intorb) then
5164
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p8b_2
5165
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
5166
&+nvab) * (h9b_2 - 1)))))
5168
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5170
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
5171
&+nvab) * (h9b_2 - 1)))),p8b_2,p6b_2,h7b_2,h9b_2)
5173
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
5174
&,int_mb(k_range+h7b-1),int_mb(k_range+p6b-1),int_mb(k_range+p8b-1)
5177
IF ((h9b .lt. h7b) .and. (p8b .lt. p6b)) THEN
5178
if(.not.intorb) then
5179
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
5180
& - 1 + (noab+nvab) * (p8b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
5181
&+nvab) * (h9b_2 - 1)))))
5183
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5185
& - 1 + (noab+nvab) * (p8b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
5186
&+nvab) * (h9b_2 - 1)))),p6b_2,p8b_2,h7b_2,h9b_2)
5188
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
5189
&,int_mb(k_range+h7b-1),int_mb(k_range+p8b-1),int_mb(k_range+p6b-1)
5192
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_4_2_2',6,MA_ERR)
5193
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
5194
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
5196
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_4_2_2',7,MA
5198
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_4_2_2',8,MA
5205
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
5206
&icsd_t2_4_2_2',9,MA_ERR)
5207
CALL TCE_SORT_2(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p8b-1)
5208
&,int_mb(k_range+h9b-1),2,1,1.0d0)
5209
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p8b -
5210
& noab - 1 + nvab * (h9b - 1)))
5211
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_4_2_2',10,MA_ERR
5213
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_4_2_2',11,M
5218
c old way next = NXTASK(nprocs, 1)
5220
call nxt_ctx_next(ctx, icounter, next)
5226
c old way next = NXTASK(-nprocs, 1)
5227
c old way call GA_SYNC()
5230
SUBROUTINE icsd_t2_4_3(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
5232
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
5233
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
5234
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
5235
C i1 ( h9 h1 )_vt + = -1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 h9 h1 p6 )_v
5237
#include "global.fh"
5238
#include "mafdecls.fh"
5240
#include "errquit.fh"
5248
c old way INTEGER NXTASK
5249
c -------------------------
5250
INTEGER ctx,icounter
5251
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
5252
c -------------------------
5284
c old way EXTERNAL NXTASK
5285
nprocs = GA_NNODES()
5287
c old way next = NXTASK(nprocs, 1)
5289
call nxt_ctx_next(ctx, icounter, next)
5293
IF (next.eq.count) THEN
5294
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h1b-1
5296
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+h1b-1)) THEN
5297
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+h1b-1)) .eq. ieor(irrep_
5299
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h1b-1)
5300
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
5301
& ERRQUIT('icsd_t2_4_3',0,MA_ERR)
5302
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
5303
DO p6b = noab+1,noab+nvab
5305
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h7b-1)) THEN
5306
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h7b-1)) .eq. irrep_t) TH
5308
CALL TCE_RESTRICTED_2(p6b,h7b,p6b_1,h7b_1)
5309
CALL TCE_RESTRICTED_4(h9b,h7b,h1b,p6b,h9b_2,h7b_2,h1b_2,p6b_2)
5310
dim_common = int_mb(k_range+p6b-1) * int_mb(k_range+h7b-1)
5312
dima = dim_common * dima_sort
5313
dimb_sort = int_mb(k_range+h9b-1) * int_mb(k_range+h1b-1)
5314
dimb = dim_common * dimb_sort
5315
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
5316
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
5317
& ERRQUIT('icsd_t2_4_3',1,MA_ERR)
5318
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
5319
&icsd_t2_4_3',2,MA_ERR)
5320
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
5321
& int_mb(k_a_offset),(h7b_1
5322
& - 1 + noab * (p6b_1 - noab - 1)))
5323
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
5324
&,int_mb(k_range+h7b-1),2,1,1.0d0)
5325
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_4_3',3,MA_ERR)
5326
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
5327
& ERRQUIT('icsd_t2_4_3',4,MA_ERR)
5328
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
5329
&icsd_t2_4_3',5,MA_ERR)
5330
IF ((h7b .le. h9b) .and. (h1b .le. p6b)) THEN
5331
if(.not.intorb) then
5332
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
5333
& - 1 + (noab+nvab) * (h1b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5334
&+nvab) * (h7b_2 - 1)))))
5336
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5338
& - 1 + (noab+nvab) * (h1b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5339
&+nvab) * (h7b_2 - 1)))),p6b_2,h1b_2,h9b_2,h7b_2)
5341
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
5342
&,int_mb(k_range+h9b-1),int_mb(k_range+h1b-1),int_mb(k_range+p6b-1)
5345
IF ((h9b .lt. h7b) .and. (h1b .le. p6b)) THEN
5346
if(.not.intorb) then
5347
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
5348
& - 1 + (noab+nvab) * (h1b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
5349
&+nvab) * (h9b_2 - 1)))))
5351
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5353
& - 1 + (noab+nvab) * (h1b_2 - 1 + (noab+nvab) * (h7b_2 - 1 + (noab
5354
&+nvab) * (h9b_2 - 1)))),p6b_2,h1b_2,h7b_2,h9b_2)
5356
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
5357
&,int_mb(k_range+h7b-1),int_mb(k_range+h1b-1),int_mb(k_range+p6b-1)
5360
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_4_3',6,MA_ERR)
5361
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
5362
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
5364
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_4_3',7,MA_E
5366
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_4_3',8,MA_E
5373
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
5374
&icsd_t2_4_3',9,MA_ERR)
5375
CALL TCE_SORT_2(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h1b-1)
5376
&,int_mb(k_range+h9b-1),2,1,-1.0d0)
5377
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
5378
& 1 + noab * (h9b - 1)))
5379
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_4_3',10,MA_ERR)
5380
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_4_3',11,MA_
5385
c old way next = NXTASK(nprocs, 1)
5387
call nxt_ctx_next(ctx, icounter, next)
5393
c old way next = NXTASK(-nprocs, 1)
5394
c old way call GA_SYNC()
5397
SUBROUTINE icsd_t2_4_4(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
5399
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
5400
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
5401
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
5402
C i1 ( h9 h1 )_vt + = -1/2 * Sum ( h8 p6 p7 ) * t ( p6 p7 h1 h8 )_t * v ( h8 h9 p6 p7 )_v
5404
#include "global.fh"
5405
#include "mafdecls.fh"
5407
#include "errquit.fh"
5415
c old way INTEGER NXTASK
5416
c -------------------------
5417
INTEGER ctx,icounter
5418
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
5419
c -------------------------
5456
DOUBLE PRECISION FACTORIAL
5457
c old way EXTERNAL NXTASK
5459
nprocs = GA_NNODES()
5461
c old way next = NXTASK(nprocs, 1)
5463
call nxt_ctx_next(ctx, icounter, next)
5467
IF (next.eq.count) THEN
5468
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h1b-1
5470
IF (int_mb(k_spin+h9b-1) .eq. int_mb(k_spin+h1b-1)) THEN
5471
IF (ieor(int_mb(k_sym+h9b-1),int_mb(k_sym+h1b-1)) .eq. ieor(irrep_
5473
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h1b-1)
5474
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
5475
& ERRQUIT('icsd_t2_4_4',0,MA_ERR)
5476
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
5477
DO p6b = noab+1,noab+nvab
5478
DO p7b = p6b,noab+nvab
5480
IF (int_mb(k_spin+p6b-1)+int_mb(k_spin+p7b-1) .eq. int_mb(k_spin+h
5481
&1b-1)+int_mb(k_spin+h8b-1)) THEN
5482
IF (ieor(int_mb(k_sym+p6b-1),ieor(int_mb(k_sym+p7b-1),ieor(int_mb(
5483
&k_sym+h1b-1),int_mb(k_sym+h8b-1)))) .eq. irrep_t) THEN
5484
CALL TCE_RESTRICTED_4(p6b,p7b,h1b,h8b,p6b_1,p7b_1,h1b_1,h8b_1)
5485
CALL TCE_RESTRICTED_4(h9b,h8b,p6b,p7b,h9b_2,h8b_2,p6b_2,p7b_2)
5486
dim_common = int_mb(k_range+p6b-1) * int_mb(k_range+p7b-1) * int_m
5488
dima_sort = int_mb(k_range+h1b-1)
5489
dima = dim_common * dima_sort
5490
dimb_sort = int_mb(k_range+h9b-1)
5491
dimb = dim_common * dimb_sort
5492
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
5493
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
5494
& ERRQUIT('icsd_t2_4_4',1,MA_ERR)
5495
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
5496
&icsd_t2_4_4',2,MA_ERR)
5497
IF ((h8b .lt. h1b)) THEN
5498
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
5499
& - 1 + noab * (h8b_1 - 1 + noab * (p7b_1 - noab - 1 + nvab * (p6b_
5501
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
5502
&,int_mb(k_range+p7b-1),int_mb(k_range+h8b-1),int_mb(k_range+h1b-1)
5505
IF ((h1b .le. h8b)) THEN
5506
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h8b_1
5507
& - 1 + noab * (h1b_1 - 1 + noab * (p7b_1 - noab - 1 + nvab * (p6b_
5509
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
5510
&,int_mb(k_range+p7b-1),int_mb(k_range+h1b-1),int_mb(k_range+h8b-1)
5513
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_4_4',3,MA_ERR)
5514
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
5515
& ERRQUIT('icsd_t2_4_4',4,MA_ERR)
5516
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
5517
&icsd_t2_4_4',5,MA_ERR)
5518
IF ((h8b .le. h9b)) THEN
5519
if(.not.intorb) then
5520
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p7b_2
5521
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5522
&+nvab) * (h8b_2 - 1)))))
5524
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5526
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h9b_2 - 1 + (noab
5527
&+nvab) * (h8b_2 - 1)))),p7b_2,p6b_2,h9b_2,h8b_2)
5529
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h8b-1)
5530
&,int_mb(k_range+h9b-1),int_mb(k_range+p6b-1),int_mb(k_range+p7b-1)
5533
IF ((h9b .lt. h8b)) THEN
5534
if(.not.intorb) then
5535
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p7b_2
5536
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
5537
&+nvab) * (h9b_2 - 1)))))
5539
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
5541
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
5542
&+nvab) * (h9b_2 - 1)))),p7b_2,p6b_2,h8b_2,h9b_2)
5544
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
5545
&,int_mb(k_range+h8b-1),int_mb(k_range+p6b-1),int_mb(k_range+p7b-1)
5548
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_4_4',6,MA_ERR)
5552
IF (p6b .eq. p7b) THEN
5553
nsuperp(isuperp) = nsuperp(isuperp) + 1
5555
isuperp = isuperp + 1
5557
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,2.0d0/FACTORIAL(
5558
&nsuperp(1))/FACTORIAL(nsuperp(2)),dbl_mb(k_a_sort),dim_common,dbl_
5559
&mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sort),dima_sort)
5560
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_4_4',7,MA_E
5562
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_4_4',8,MA_E
5570
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
5571
&icsd_t2_4_4',9,MA_ERR)
5572
CALL TCE_SORT_2(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h9b-1)
5573
&,int_mb(k_range+h1b-1),1,2,-1.0d0/2.0d0)
5574
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
5575
& 1 + noab * (h9b - 1)))
5576
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_4_4',10,MA_ERR)
5577
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_4_4',11,MA_
5582
c old way next = NXTASK(nprocs, 1)
5584
call nxt_ctx_next(ctx, icounter, next)
5590
c old way next = NXTASK(-nprocs, 1)
5591
c old way call GA_SYNC()
5594
SUBROUTINE icsd_t2_5(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
5596
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
5597
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
5598
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
5599
C i0 ( p3 p4 h1 h2 )_tf + = 1 * P( 2 ) * Sum ( p5 ) * t ( p3 p5 h1 h2 )_t * i1 ( p4 p5 )_f
5601
#include "global.fh"
5602
#include "mafdecls.fh"
5604
#include "errquit.fh"
5612
c old way INTEGER NXTASK
5613
c -------------------------
5614
INTEGER ctx,icounter
5615
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
5616
c -------------------------
5649
c old way EXTERNAL NXTASK
5650
nprocs = GA_NNODES()
5652
c old way next = NXTASK(nprocs, 1)
5654
call nxt_ctx_next(ctx, icounter, next)
5656
DO p3b = noab+1,noab+nvab
5657
DO p4b = noab+1,noab+nvab
5660
IF (next.eq.count) THEN
5661
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
5662
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
5663
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
5664
&1b-1)+int_mb(k_spin+h2b-1)) THEN
5665
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
5666
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_t,irrep_f)) TH
5668
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
5669
&nge+h1b-1) * int_mb(k_range+h2b-1)
5670
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
5671
& ERRQUIT('icsd_t2_5',0,MA_ERR)
5672
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
5673
DO p5b = noab+1,noab+nvab
5674
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h
5675
&1b-1)+int_mb(k_spin+h2b-1)) THEN
5676
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p5b-1),ieor(int_mb(
5677
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_t) THEN
5678
CALL TCE_RESTRICTED_4(p3b,p5b,h1b,h2b,p3b_1,p5b_1,h1b_1,h2b_1)
5679
CALL TCE_RESTRICTED_2(p4b,p5b,p4b_2,p5b_2)
5680
dim_common = int_mb(k_range+p5b-1)
5681
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h1b-1) * int_mb
5683
dima = dim_common * dima_sort
5684
dimb_sort = int_mb(k_range+p4b-1)
5685
dimb = dim_common * dimb_sort
5686
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
5687
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
5688
& ERRQUIT('icsd_t2_5',1,MA_ERR)
5689
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
5690
&icsd_t2_5',2,MA_ERR)
5691
IF ((p5b .lt. p3b)) THEN
5692
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
5693
& - 1 + noab * (h1b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p5b_
5695
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
5696
&,int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
5699
IF ((p3b .le. p5b)) THEN
5700
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
5701
& - 1 + noab * (h1b_1 - 1 + noab * (p5b_1 - noab - 1 + nvab * (p3b_
5703
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
5704
&,int_mb(k_range+p5b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
5707
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_5',3,MA_ERR)
5708
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
5709
& ERRQUIT('icsd_t2_5',4,MA_ERR)
5710
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
5711
&icsd_t2_5',5,MA_ERR)
5712
ccx CALL GET_HASH_BLOCK_MA(dbl_mb(d_b),dbl_mb(k_b),dimb,
5713
ccx & int_mb(k_b_offset),(p5b_2
5714
ccx & - noab - 1 + nvab * (p4b_2 - noab - 1)))
5715
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
5716
& - noab - 1 + nvab * (p4b_2 - noab - 1)))
5718
CALL TCE_SORT_2(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p4b-1)
5719
&,int_mb(k_range+p5b-1),1,2,1.0d0)
5720
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_5',6,MA_ERR)
5721
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
5722
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
5724
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_5',7,MA_ERR
5726
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_5',8,MA_ERR
5732
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
5733
&icsd_t2_5',9,MA_ERR)
5734
IF ((p3b .le. p4b)) THEN
5735
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p4b-1)
5736
&,int_mb(k_range+h2b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1)
5738
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
5739
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
5742
IF ((p4b .le. p3b)) THEN
5743
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p4b-1)
5744
&,int_mb(k_range+h2b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1)
5746
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
5747
& 1 + noab * (h1b - 1 + noab * (p3b - noab - 1 + nvab * (p4b - noab
5750
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_5',10,MA_ERR)
5751
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_5',11,MA_ER
5756
c old way next = NXTASK(nprocs, 1)
5758
call nxt_ctx_next(ctx, icounter, next)
5766
c old way next = NXTASK(-nprocs, 1)
5767
c old way call GA_SYNC()
5770
SUBROUTINE icsd_t2_5_1(d_a,k_a_offset,d_c,k_c_offset,ctx,icounter)
5771
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
5772
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
5773
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
5774
C i1 ( p3 p5 )_f + = 1 * f ( p3 p5 )_f
5776
#include "global.fh"
5777
#include "mafdecls.fh"
5779
#include "errquit.fh"
5785
c old way INTEGER NXTASK
5786
c -------------------------
5787
INTEGER ctx,icounter
5788
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
5789
c -------------------------
5807
c old way EXTERNAL NXTASK
5808
nprocs = GA_NNODES()
5810
c old way next = NXTASK(nprocs, 1)
5812
call nxt_ctx_next(ctx, icounter, next)
5814
DO p3b = noab+1,noab+nvab
5815
DO p5b = noab+1,noab+nvab
5816
IF (next.eq.count) THEN
5817
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1
5819
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+p5b-1)) THEN
5820
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+p5b-1)) .eq. irrep_f) TH
5822
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p5b-1)
5823
CALL TCE_RESTRICTED_2(p3b,p5b,p3b_1,p5b_1)
5825
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p5b-1)
5826
dima = dim_common * dima_sort
5827
IF (dima .gt. 0) THEN
5828
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
5829
& ERRQUIT('icsd_t2_5_1',0,MA_ERR)
5830
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
5831
&icsd_t2_5_1',1,MA_ERR)
5832
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p5b_1
5833
& - 1 + (noab+nvab) * (p3b_1 - 1)))
5834
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
5835
&,int_mb(k_range+p5b-1),2,1,1.0d0)
5836
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_5_1',2,MA_ERR)
5837
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
5838
&icsd_t2_5_1',3,MA_ERR)
5839
CALL TCE_SORT_2(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
5840
&,int_mb(k_range+p3b-1),2,1,1.0d0)
5841
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
5842
& noab - 1 + nvab * (p3b - noab - 1)))
5843
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_5_1',4,MA_ERR)
5844
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_5_1',5,MA_E
5850
c old way next = NXTASK(nprocs, 1)
5852
call nxt_ctx_next(ctx, icounter, next)
5858
c old way next = NXTASK(-nprocs, 1)
5859
c old way call GA_SYNC()
5862
SUBROUTINE OFFSET_icsd_t2_5_1(l_a_offset,k_a_offset,size)
5863
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
5864
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
5865
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
5868
#include "global.fh"
5869
#include "mafdecls.fh"
5871
#include "errquit.fh"
5881
DO p3b = noab+1,noab+nvab
5882
DO p5b = noab+1,noab+nvab
5883
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+p5b-1)) THEN
5884
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+p5b-1)) .eq. irrep_f) TH
5886
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1
5894
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
5895
&set)) CALL ERRQUIT('icsd_t2_5_1',0,MA_ERR)
5896
int_mb(k_a_offset) = length
5899
DO p3b = noab+1,noab+nvab
5900
DO p5b = noab+1,noab+nvab
5901
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+p5b-1)) THEN
5902
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+p5b-1)) .eq. irrep_f) TH
5904
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1
5907
int_mb(k_a_offset+addr) = p5b - noab - 1 + nvab * (p3b - noab - 1)
5908
int_mb(k_a_offset+length+addr) = size
5909
size = size + int_mb(k_range+p3b-1) * int_mb(k_range+p5b-1)
5917
SUBROUTINE icsd_t2_5_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
5919
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
5920
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
5921
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
5922
C i1 ( p3 p5 )_vt + = -1 * Sum ( h7 p6 ) * t ( p6 h7 )_t * v ( h7 p3 p5 p6 )_v
5924
#include "global.fh"
5925
#include "mafdecls.fh"
5927
#include "errquit.fh"
5935
c old way INTEGER NXTASK
5936
c -------------------------
5937
INTEGER ctx,icounter
5938
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
5939
c -------------------------
5971
c old way EXTERNAL NXTASK
5972
nprocs = GA_NNODES()
5974
c old way next = NXTASK(nprocs, 1)
5976
call nxt_ctx_next(ctx, icounter, next)
5978
DO p3b = noab+1,noab+nvab
5979
DO p5b = noab+1,noab+nvab
5980
IF (next.eq.count) THEN
5981
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1
5983
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+p5b-1)) THEN
5984
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+p5b-1)) .eq. ieor(irrep_
5986
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p5b-1)
5987
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
5988
& ERRQUIT('icsd_t2_5_2',0,MA_ERR)
5989
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
5990
DO p6b = noab+1,noab+nvab
5992
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h7b-1)) THEN
5993
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h7b-1)) .eq. irrep_t) TH
5995
CALL TCE_RESTRICTED_2(p6b,h7b,p6b_1,h7b_1)
5996
CALL TCE_RESTRICTED_4(p3b,h7b,p5b,p6b,p3b_2,h7b_2,p5b_2,p6b_2)
5997
dim_common = int_mb(k_range+p6b-1) * int_mb(k_range+h7b-1)
5999
dima = dim_common * dima_sort
6000
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p5b-1)
6001
dimb = dim_common * dimb_sort
6002
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
6003
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
6004
& ERRQUIT('icsd_t2_5_2',1,MA_ERR)
6005
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
6006
&icsd_t2_5_2',2,MA_ERR)
6007
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
6008
& int_mb(k_a_offset),(h7b_1
6009
& - 1 + noab * (p6b_1 - noab - 1)))
6010
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
6011
&,int_mb(k_range+h7b-1),2,1,1.0d0)
6012
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_5_2',3,MA_ERR)
6013
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
6014
& ERRQUIT('icsd_t2_5_2',4,MA_ERR)
6015
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
6016
&icsd_t2_5_2',5,MA_ERR)
6017
IF ((h7b .le. p3b) .and. (p6b .lt. p5b)) THEN
6018
if(.not.intorb) then
6019
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
6020
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
6021
&+nvab) * (h7b_2 - 1)))))
6023
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
6025
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
6026
&+nvab) * (h7b_2 - 1)))),p5b_2,p6b_2,p3b_2,h7b_2)
6028
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
6029
&,int_mb(k_range+p3b-1),int_mb(k_range+p6b-1),int_mb(k_range+p5b-1)
6032
IF ((h7b .le. p3b) .and. (p5b .le. p6b)) THEN
6033
if(.not.intorb) then
6034
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
6035
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
6036
&+nvab) * (h7b_2 - 1)))))
6038
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
6040
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
6041
&+nvab) * (h7b_2 - 1)))),p6b_2,p5b_2,p3b_2,h7b_2)
6043
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
6044
&,int_mb(k_range+p3b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1)
6047
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_5_2',6,MA_ERR)
6048
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
6049
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
6051
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_5_2',7,MA_E
6053
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_5_2',8,MA_E
6060
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
6061
&icsd_t2_5_2',9,MA_ERR)
6062
CALL TCE_SORT_2(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
6063
&,int_mb(k_range+p3b-1),2,1,-1.0d0)
6064
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
6065
& noab - 1 + nvab * (p3b - noab - 1)))
6066
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_5_2',10,MA_ERR)
6067
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_5_2',11,MA_
6072
c old way next = NXTASK(nprocs, 1)
6074
call nxt_ctx_next(ctx, icounter, next)
6080
c old way next = NXTASK(-nprocs, 1)
6081
c old way call GA_SYNC()
6084
SUBROUTINE icsd_t2_5_3(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
6086
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6087
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6088
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6089
C i1 ( p3 p5 )_vt + = -1/2 * Sum ( h7 h8 p6 ) * t ( p3 p6 h7 h8 )_t * v ( h7 h8 p5 p6 )_v
6091
#include "global.fh"
6092
#include "mafdecls.fh"
6094
#include "errquit.fh"
6102
c old way INTEGER NXTASK
6103
c -------------------------
6104
INTEGER ctx,icounter
6105
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
6106
c -------------------------
6143
DOUBLE PRECISION FACTORIAL
6144
c old way EXTERNAL NXTASK
6146
nprocs = GA_NNODES()
6148
c old way next = NXTASK(nprocs, 1)
6150
call nxt_ctx_next(ctx, icounter, next)
6152
DO p3b = noab+1,noab+nvab
6153
DO p5b = noab+1,noab+nvab
6154
IF (next.eq.count) THEN
6155
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1
6157
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+p5b-1)) THEN
6158
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+p5b-1)) .eq. ieor(irrep_
6160
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p5b-1)
6161
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
6162
& ERRQUIT('icsd_t2_5_3',0,MA_ERR)
6163
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
6164
DO p6b = noab+1,noab+nvab
6167
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h
6168
&7b-1)+int_mb(k_spin+h8b-1)) THEN
6169
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p6b-1),ieor(int_mb(
6170
&k_sym+h7b-1),int_mb(k_sym+h8b-1)))) .eq. irrep_t) THEN
6171
CALL TCE_RESTRICTED_4(p3b,p6b,h7b,h8b,p3b_1,p6b_1,h7b_1,h8b_1)
6172
CALL TCE_RESTRICTED_4(h7b,h8b,p5b,p6b,h7b_2,h8b_2,p5b_2,p6b_2)
6173
dim_common = int_mb(k_range+p6b-1) * int_mb(k_range+h7b-1) * int_m
6175
dima_sort = int_mb(k_range+p3b-1)
6176
dima = dim_common * dima_sort
6177
dimb_sort = int_mb(k_range+p5b-1)
6178
dimb = dim_common * dimb_sort
6179
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
6180
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
6181
& ERRQUIT('icsd_t2_5_3',1,MA_ERR)
6182
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
6183
&icsd_t2_5_3',2,MA_ERR)
6184
IF ((p6b .lt. p3b)) THEN
6185
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h8b_1
6186
& - 1 + noab * (h7b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p6b_
6188
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
6189
&,int_mb(k_range+p3b-1),int_mb(k_range+h7b-1),int_mb(k_range+h8b-1)
6192
IF ((p3b .le. p6b)) THEN
6193
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h8b_1
6194
& - 1 + noab * (h7b_1 - 1 + noab * (p6b_1 - noab - 1 + nvab * (p3b_
6196
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
6197
&,int_mb(k_range+p6b-1),int_mb(k_range+h7b-1),int_mb(k_range+h8b-1)
6200
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_5_3',3,MA_ERR)
6201
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
6202
& ERRQUIT('icsd_t2_5_3',4,MA_ERR)
6203
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
6204
&icsd_t2_5_3',5,MA_ERR)
6205
IF ((p6b .lt. p5b)) THEN
6206
if(.not.intorb) then
6207
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
6208
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
6209
&+nvab) * (h7b_2 - 1)))))
6211
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
6213
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
6214
&+nvab) * (h7b_2 - 1)))),p5b_2,p6b_2,h8b_2,h7b_2)
6216
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
6217
&,int_mb(k_range+h8b-1),int_mb(k_range+p6b-1),int_mb(k_range+p5b-1)
6220
IF ((p5b .le. p6b)) THEN
6221
if(.not.intorb) then
6222
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
6223
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
6224
&+nvab) * (h7b_2 - 1)))))
6226
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
6228
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
6229
&+nvab) * (h7b_2 - 1)))),p6b_2,p5b_2,h8b_2,h7b_2)
6231
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h7b-1)
6232
&,int_mb(k_range+h8b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1)
6235
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_5_3',6,MA_ERR)
6239
IF (h7b .eq. h8b) THEN
6240
nsubh(isubh) = nsubh(isubh) + 1
6244
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,2.0d0/FACTORIAL(
6245
&nsubh(1))/FACTORIAL(nsubh(2)),dbl_mb(k_a_sort),dim_common,dbl_mb(k
6246
&_b_sort),dim_common,1.0d0,dbl_mb(k_c_sort),dima_sort)
6247
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_5_3',7,MA_E
6249
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_5_3',8,MA_E
6257
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
6258
&icsd_t2_5_3',9,MA_ERR)
6259
CALL TCE_SORT_2(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
6260
&,int_mb(k_range+p3b-1),2,1,-1.0d0/2.0d0)
6261
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p5b -
6262
& noab - 1 + nvab * (p3b - noab - 1)))
6263
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_5_3',10,MA_ERR)
6264
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_5_3',11,MA_
6269
c old way next = NXTASK(nprocs, 1)
6271
call nxt_ctx_next(ctx, icounter, next)
6277
c old way next = NXTASK(-nprocs, 1)
6278
c old way call GA_SYNC()
6281
SUBROUTINE icsd_t2_6(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
6283
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6284
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6285
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6286
C i0 ( p3 p4 h1 h2 )_vt + = -1/2 * Sum ( h11 h9 ) * t ( p3 p4 h9 h11 )_t * i1 ( h9 h11 h1 h2 )_v
6288
#include "global.fh"
6289
#include "mafdecls.fh"
6291
#include "errquit.fh"
6299
c old way INTEGER NXTASK
6300
c -------------------------
6301
INTEGER ctx,icounter
6302
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
6303
c -------------------------
6341
DOUBLE PRECISION FACTORIAL
6342
c old way EXTERNAL NXTASK
6344
nprocs = GA_NNODES()
6346
c old way next = NXTASK(nprocs, 1)
6348
call nxt_ctx_next(ctx, icounter, next)
6350
DO p3b = noab+1,noab+nvab
6351
DO p4b = p3b,noab+nvab
6354
IF (next.eq.count) THEN
6355
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
6356
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
6357
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
6358
&1b-1)+int_mb(k_spin+h2b-1)) THEN
6359
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
6360
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
6362
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
6363
&nge+h1b-1) * int_mb(k_range+h2b-1)
6364
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
6365
& ERRQUIT('icsd_t2_6',0,MA_ERR)
6366
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
6369
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
6370
&9b-1)+int_mb(k_spin+h11b-1)) THEN
6371
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
6372
&k_sym+h9b-1),int_mb(k_sym+h11b-1)))) .eq. irrep_t) THEN
6373
CALL TCE_RESTRICTED_4(p3b,p4b,h9b,h11b,p3b_1,p4b_1,h9b_1,h11b_1)
6374
CALL TCE_RESTRICTED_4(h9b,h11b,h1b,h2b,h9b_2,h11b_2,h1b_2,h2b_2)
6375
dim_common = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1)
6376
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1)
6377
dima = dim_common * dima_sort
6378
dimb_sort = int_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
6379
dimb = dim_common * dimb_sort
6380
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
6381
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
6382
& ERRQUIT('icsd_t2_6',1,MA_ERR)
6383
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
6384
&icsd_t2_6',2,MA_ERR)
6385
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h11b_
6386
&1 - 1 + noab * (h9b_1 - 1 + noab * (p4b_1 - noab - 1 + nvab * (p3b
6388
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
6389
&,int_mb(k_range+p4b-1),int_mb(k_range+h9b-1),int_mb(k_range+h11b-1
6391
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_6',3,MA_ERR)
6392
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
6393
& ERRQUIT('icsd_t2_6',4,MA_ERR)
6394
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
6395
&icsd_t2_6',5,MA_ERR)
6396
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(h2b_2
6397
& - 1 + noab * (h1b_2 - 1 + noab * (h11b_2 - 1 + noab * (h9b_2 - 1)
6399
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
6400
&,int_mb(k_range+h11b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1
6402
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_6',6,MA_ERR)
6406
IF (h9b .eq. h11b) THEN
6407
nsubh(isubh) = nsubh(isubh) + 1
6411
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,2.0d0/FACTORIAL(
6412
&nsubh(1))/FACTORIAL(nsubh(2)),dbl_mb(k_a_sort),dim_common,dbl_mb(k
6413
&_b_sort),dim_common,1.0d0,dbl_mb(k_c_sort),dima_sort)
6414
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_6',7,MA_ERR
6416
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_6',8,MA_ERR
6423
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
6424
&icsd_t2_6',9,MA_ERR)
6425
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
6426
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
6427
&,4,3,2,1,-1.0d0/2.0d0)
6428
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
6429
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
6431
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_6',10,MA_ERR)
6432
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_6',11,MA_ER
6437
c old way next = NXTASK(nprocs, 1)
6439
call nxt_ctx_next(ctx, icounter, next)
6447
c old way next = NXTASK(-nprocs, 1)
6448
c old way call GA_SYNC()
6451
SUBROUTINE icsd_t2_6_1(d_a,k_a_offset,d_c,k_c_offset,ctx,icounter)
6452
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6453
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6454
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6455
C i1 ( h9 h11 h1 h2 )_v + = -1 * v ( h9 h11 h1 h2 )_v
6457
#include "global.fh"
6458
#include "mafdecls.fh"
6460
#include "errquit.fh"
6466
c old way INTEGER NXTASK
6467
c -------------------------
6468
INTEGER ctx,icounter
6469
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
6470
c -------------------------
6492
c old way EXTERNAL NXTASK
6493
nprocs = GA_NNODES()
6495
c old way next = NXTASK(nprocs, 1)
6497
call nxt_ctx_next(ctx, icounter, next)
6503
IF (next.eq.count) THEN
6504
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
6505
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
6506
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
6507
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
6508
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
6509
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
6510
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_mb(k_r
6511
&ange+h1b-1) * int_mb(k_range+h2b-1)
6512
CALL TCE_RESTRICTED_4(h9b,h11b,h1b,h2b,h9b_1,h11b_1,h1b_1,h2b_1)
6514
dima_sort = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_m
6515
&b(k_range+h1b-1) * int_mb(k_range+h2b-1)
6516
dima = dim_common * dima_sort
6517
IF (dima .gt. 0) THEN
6518
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
6519
& ERRQUIT('icsd_t2_6_1',0,MA_ERR)
6520
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
6521
&icsd_t2_6_1',1,MA_ERR)
6522
if(.not.intorb) then
6523
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
6524
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
6525
&b+nvab) * (h9b_1 - 1)))))
6527
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
6529
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
6530
&b+nvab) * (h9b_1 - 1)))),h2b_1,h1b_1,h11b_1,h9b_1)
6532
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h9b-1)
6533
&,int_mb(k_range+h11b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1
6535
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_6_1',2,MA_ERR)
6536
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
6537
&icsd_t2_6_1',3,MA_ERR)
6538
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
6539
&,int_mb(k_range+h1b-1),int_mb(k_range+h11b-1),int_mb(k_range+h9b-1
6541
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
6542
& 1 + noab * (h1b - 1 + noab * (h11b - 1 + noab * (h9b - 1)))))
6543
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_6_1',4,MA_ERR)
6544
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_6_1',5,MA_E
6550
c old way next = NXTASK(nprocs, 1)
6552
call nxt_ctx_next(ctx, icounter, next)
6560
c old way next = NXTASK(-nprocs, 1)
6561
c old way call GA_SYNC()
6564
SUBROUTINE OFFSET_icsd_t2_6_1(l_a_offset,k_a_offset,size)
6565
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6566
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6567
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6568
C i1 ( h9 h11 h1 h2 )_v
6570
#include "global.fh"
6571
#include "mafdecls.fh"
6573
#include "errquit.fh"
6589
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
6590
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
6591
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
6592
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
6593
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
6594
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
6603
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
6604
&set)) CALL ERRQUIT('icsd_t2_6_1',0,MA_ERR)
6605
int_mb(k_a_offset) = length
6612
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
6613
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
6614
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
6615
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_v) THEN
6616
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
6617
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
6619
int_mb(k_a_offset+addr) = h2b - 1 + noab * (h1b - 1 + noab * (h11b
6620
& - 1 + noab * (h9b - 1)))
6621
int_mb(k_a_offset+length+addr) = size
6622
size = size + int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int
6623
&_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
6633
SUBROUTINE icsd_t2_6_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
6635
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6636
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6637
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6638
C i1 ( h9 h11 h1 h2 )_vt + = 1 * P( 2 ) * Sum ( p8 ) * t ( p8 h1 )_t * i2 ( h9 h11 h2 p8 )_v
6640
#include "global.fh"
6641
#include "mafdecls.fh"
6643
#include "errquit.fh"
6651
c old way INTEGER NXTASK
6652
c -------------------------
6653
INTEGER ctx,icounter
6654
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
6655
c -------------------------
6688
c old way EXTERNAL NXTASK
6689
nprocs = GA_NNODES()
6691
c old way next = NXTASK(nprocs, 1)
6693
call nxt_ctx_next(ctx, icounter, next)
6699
IF (next.eq.count) THEN
6700
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
6701
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
6702
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
6703
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
6704
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
6705
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) T
6707
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_mb(k_r
6708
&ange+h1b-1) * int_mb(k_range+h2b-1)
6709
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
6710
& ERRQUIT('icsd_t2_6_2',0,MA_ERR)
6711
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
6712
DO p8b = noab+1,noab+nvab
6713
IF (int_mb(k_spin+p8b-1) .eq. int_mb(k_spin+h1b-1)) THEN
6714
IF (ieor(int_mb(k_sym+p8b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
6716
CALL TCE_RESTRICTED_2(p8b,h1b,p8b_1,h1b_1)
6717
CALL TCE_RESTRICTED_4(h9b,h11b,h2b,p8b,h9b_2,h11b_2,h2b_2,p8b_2)
6718
dim_common = int_mb(k_range+p8b-1)
6719
dima_sort = int_mb(k_range+h1b-1)
6720
dima = dim_common * dima_sort
6721
dimb_sort = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_m
6723
dimb = dim_common * dimb_sort
6724
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
6725
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
6726
& ERRQUIT('icsd_t2_6_2',1,MA_ERR)
6727
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
6728
&icsd_t2_6_2',2,MA_ERR)
6729
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
6730
& int_mb(k_a_offset),(h1b_1
6731
& - 1 + noab * (p8b_1 - noab - 1)))
6732
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p8b-1)
6733
&,int_mb(k_range+h1b-1),2,1,1.0d0)
6734
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_6_2',3,MA_ERR)
6735
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
6736
& ERRQUIT('icsd_t2_6_2',4,MA_ERR)
6737
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
6738
&icsd_t2_6_2',5,MA_ERR)
6739
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p8b_2
6740
& - noab - 1 + nvab * (h2b_2 - 1 + noab * (h11b_2 - 1 + noab * (h9b
6742
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
6743
&,int_mb(k_range+h11b-1),int_mb(k_range+h2b-1),int_mb(k_range+p8b-1
6745
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_6_2',6,MA_ERR)
6746
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
6747
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
6749
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_6_2',7,MA_E
6751
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_6_2',8,MA_E
6757
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
6758
&icsd_t2_6_2',9,MA_ERR)
6759
IF ((h1b .le. h2b)) THEN
6760
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
6761
&,int_mb(k_range+h11b-1),int_mb(k_range+h9b-1),int_mb(k_range+h1b-1
6763
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
6764
& 1 + noab * (h1b - 1 + noab * (h11b - 1 + noab * (h9b - 1)))))
6766
IF ((h2b .le. h1b)) THEN
6767
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
6768
&,int_mb(k_range+h11b-1),int_mb(k_range+h9b-1),int_mb(k_range+h1b-1
6770
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
6771
& 1 + noab * (h2b - 1 + noab * (h11b - 1 + noab * (h9b - 1)))))
6773
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_6_2',10,MA_ERR)
6774
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_6_2',11,MA_
6779
c old way next = NXTASK(nprocs, 1)
6781
call nxt_ctx_next(ctx, icounter, next)
6789
c old way next = NXTASK(-nprocs, 1)
6790
c old way call GA_SYNC()
6793
SUBROUTINE icsd_t2_6_2_1(d_a,k_a_offset,d_c,k_c_offset,
6795
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6796
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6797
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6798
C i2 ( h9 h11 h1 p8 )_v + = 1 * v ( h9 h11 h1 p8 )_v
6800
#include "global.fh"
6801
#include "mafdecls.fh"
6803
#include "errquit.fh"
6809
c old way INTEGER NXTASK
6810
c -------------------------
6811
INTEGER ctx,icounter
6812
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
6813
c -------------------------
6835
c old way EXTERNAL NXTASK
6836
nprocs = GA_NNODES()
6838
c old way next = NXTASK(nprocs, 1)
6840
call nxt_ctx_next(ctx, icounter, next)
6845
DO p8b = noab+1,noab+nvab
6846
IF (next.eq.count) THEN
6847
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
6848
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p8b-1).ne.8)) THEN
6849
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
6850
&h1b-1)+int_mb(k_spin+p8b-1)) THEN
6851
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
6852
&(k_sym+h1b-1),int_mb(k_sym+p8b-1)))) .eq. irrep_v) THEN
6853
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_mb(k_r
6854
&ange+h1b-1) * int_mb(k_range+p8b-1)
6855
CALL TCE_RESTRICTED_4(h9b,h11b,h1b,p8b,h9b_1,h11b_1,h1b_1,p8b_1)
6857
dima_sort = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_m
6858
&b(k_range+h1b-1) * int_mb(k_range+p8b-1)
6859
dima = dim_common * dima_sort
6860
IF (dima .gt. 0) THEN
6861
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
6862
& ERRQUIT('icsd_t2_6_2_1',0,MA_ERR)
6863
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
6864
&icsd_t2_6_2_1',1,MA_ERR)
6865
IF ((h1b .le. p8b)) THEN
6866
if(.not.intorb) then
6867
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p8b_1
6868
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
6869
&b+nvab) * (h9b_1 - 1)))))
6871
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
6873
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (h11b_1 - 1 + (noa
6874
&b+nvab) * (h9b_1 - 1)))),p8b_1,h1b_1,h11b_1,h9b_1)
6876
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h9b-1)
6877
&,int_mb(k_range+h11b-1),int_mb(k_range+h1b-1),int_mb(k_range+p8b-1
6880
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_6_2_1',2,MA_ERR)
6881
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
6882
&icsd_t2_6_2_1',3,MA_ERR)
6883
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p8b-1)
6884
&,int_mb(k_range+h1b-1),int_mb(k_range+h11b-1),int_mb(k_range+h9b-1
6886
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p8b -
6887
& noab - 1 + nvab * (h1b - 1 + noab * (h11b - 1 + noab * (h9b - 1))
6889
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_6_2_1',4,MA_ERR)
6890
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_6_2_1',5,MA
6896
c old way next = NXTASK(nprocs, 1)
6898
call nxt_ctx_next(ctx, icounter, next)
6906
c old way next = NXTASK(-nprocs, 1)
6907
c old way call GA_SYNC()
6910
SUBROUTINE OFFSET_icsd_t2_6_2_1(l_a_offset,k_a_offset,size)
6911
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6912
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6913
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6914
C i2 ( h9 h11 h1 p8 )_v
6916
#include "global.fh"
6917
#include "mafdecls.fh"
6919
#include "errquit.fh"
6934
DO p8b = noab+1,noab+nvab
6935
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
6936
&h1b-1)+int_mb(k_spin+p8b-1)) THEN
6937
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
6938
&(k_sym+h1b-1),int_mb(k_sym+p8b-1)))) .eq. irrep_v) THEN
6939
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
6940
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p8b-1).ne.8)) THEN
6949
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
6950
&set)) CALL ERRQUIT('icsd_t2_6_2_1',0,MA_ERR)
6951
int_mb(k_a_offset) = length
6957
DO p8b = noab+1,noab+nvab
6958
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
6959
&h1b-1)+int_mb(k_spin+p8b-1)) THEN
6960
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
6961
&(k_sym+h1b-1),int_mb(k_sym+p8b-1)))) .eq. irrep_v) THEN
6962
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
6963
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p8b-1).ne.8)) THEN
6965
int_mb(k_a_offset+addr) = p8b - noab - 1 + nvab * (h1b - 1 + noab
6966
&* (h11b - 1 + noab * (h9b - 1)))
6967
int_mb(k_a_offset+length+addr) = size
6968
size = size + int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int
6969
&_mb(k_range+h1b-1) * int_mb(k_range+p8b-1)
6979
SUBROUTINE icsd_t2_6_2_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_off
6981
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
6982
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
6983
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
6984
C i2 ( h9 h11 h1 p8 )_vt + = 1/2 * Sum ( p6 ) * t ( p6 h1 )_t * v ( h9 h11 p6 p8 )_v
6986
#include "global.fh"
6987
#include "mafdecls.fh"
6989
#include "errquit.fh"
6997
c old way INTEGER NXTASK
6998
c -------------------------
6999
INTEGER ctx,icounter
7000
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
7001
c -------------------------
7034
c old way EXTERNAL NXTASK
7035
nprocs = GA_NNODES()
7037
c old way next = NXTASK(nprocs, 1)
7039
call nxt_ctx_next(ctx, icounter, next)
7044
DO p8b = noab+1,noab+nvab
7045
IF (next.eq.count) THEN
7046
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
7047
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p8b-1).ne.8)) THEN
7048
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
7049
&h1b-1)+int_mb(k_spin+p8b-1)) THEN
7050
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
7051
&(k_sym+h1b-1),int_mb(k_sym+p8b-1)))) .eq. ieor(irrep_v,irrep_t)) T
7053
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_mb(k_r
7054
&ange+h1b-1) * int_mb(k_range+p8b-1)
7055
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
7056
& ERRQUIT('icsd_t2_6_2_2',0,MA_ERR)
7057
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
7058
DO p6b = noab+1,noab+nvab
7059
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h1b-1)) THEN
7060
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
7062
CALL TCE_RESTRICTED_2(p6b,h1b,p6b_1,h1b_1)
7063
CALL TCE_RESTRICTED_4(h9b,h11b,p8b,p6b,h9b_2,h11b_2,p8b_2,p6b_2)
7064
dim_common = int_mb(k_range+p6b-1)
7065
dima_sort = int_mb(k_range+h1b-1)
7066
dima = dim_common * dima_sort
7067
dimb_sort = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_m
7069
dimb = dim_common * dimb_sort
7070
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
7071
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
7072
& ERRQUIT('icsd_t2_6_2_2',1,MA_ERR)
7073
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
7074
&icsd_t2_6_2_2',2,MA_ERR)
7075
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
7076
& int_mb(k_a_offset),(h1b_1
7077
& - 1 + noab * (p6b_1 - noab - 1)))
7078
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
7079
&,int_mb(k_range+h1b-1),2,1,1.0d0)
7080
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_6_2_2',3,MA_ERR)
7081
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
7082
& ERRQUIT('icsd_t2_6_2_2',4,MA_ERR)
7083
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
7084
&icsd_t2_6_2_2',5,MA_ERR)
7085
IF ((p6b .le. p8b)) THEN
7086
if(.not.intorb) then
7087
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p8b_2
7088
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
7089
&b+nvab) * (h9b_2 - 1)))))
7091
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
7093
& - 1 + (noab+nvab) * (p6b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
7094
&b+nvab) * (h9b_2 - 1)))),p8b_2,p6b_2,h11b_2,h9b_2)
7096
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
7097
&,int_mb(k_range+h11b-1),int_mb(k_range+p6b-1),int_mb(k_range+p8b-1
7100
IF ((p8b .lt. p6b)) THEN
7101
if(.not.intorb) then
7102
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
7103
& - 1 + (noab+nvab) * (p8b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
7104
&b+nvab) * (h9b_2 - 1)))))
7106
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
7108
& - 1 + (noab+nvab) * (p8b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
7109
&b+nvab) * (h9b_2 - 1)))),p6b_2,p8b_2,h11b_2,h9b_2)
7111
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
7112
&,int_mb(k_range+h11b-1),int_mb(k_range+p8b-1),int_mb(k_range+p6b-1
7115
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_6_2_2',6,MA_ERR)
7116
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
7117
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
7119
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_6_2_2',7,MA
7121
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_6_2_2',8,MA
7127
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
7128
&icsd_t2_6_2_2',9,MA_ERR)
7129
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p8b-1)
7130
&,int_mb(k_range+h11b-1),int_mb(k_range+h9b-1),int_mb(k_range+h1b-1
7131
&),3,2,4,1,1.0d0/2.0d0)
7132
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(p8b -
7133
& noab - 1 + nvab * (h1b - 1 + noab * (h11b - 1 + noab * (h9b - 1))
7135
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_6_2_2',10,MA_ERR
7137
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_6_2_2',11,M
7142
c old way next = NXTASK(nprocs, 1)
7144
call nxt_ctx_next(ctx, icounter, next)
7152
c old way next = NXTASK(-nprocs, 1)
7153
c old way call GA_SYNC()
7156
SUBROUTINE icsd_t2_6_3(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
7158
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
7159
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
7160
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
7161
C i1 ( h9 h11 h1 h2 )_vt + = -1/2 * Sum ( p5 p6 ) * t ( p5 p6 h1 h2 )_t * v ( h9 h11 p5 p6 )_v
7163
#include "global.fh"
7164
#include "mafdecls.fh"
7166
#include "errquit.fh"
7174
c old way INTEGER NXTASK
7175
c -------------------------
7176
INTEGER ctx,icounter
7177
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
7178
c -------------------------
7216
DOUBLE PRECISION FACTORIAL
7217
c old way EXTERNAL NXTASK
7219
nprocs = GA_NNODES()
7221
c old way next = NXTASK(nprocs, 1)
7223
call nxt_ctx_next(ctx, icounter, next)
7229
IF (next.eq.count) THEN
7230
IF ((.not.restricted).or.(int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-
7231
&1)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
7232
IF (int_mb(k_spin+h9b-1)+int_mb(k_spin+h11b-1) .eq. int_mb(k_spin+
7233
&h1b-1)+int_mb(k_spin+h2b-1)) THEN
7234
IF (ieor(int_mb(k_sym+h9b-1),ieor(int_mb(k_sym+h11b-1),ieor(int_mb
7235
&(k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) T
7237
dimc = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1) * int_mb(k_r
7238
&ange+h1b-1) * int_mb(k_range+h2b-1)
7239
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
7240
& ERRQUIT('icsd_t2_6_3',0,MA_ERR)
7241
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
7242
DO p5b = noab+1,noab+nvab
7243
DO p6b = p5b,noab+nvab
7244
IF (int_mb(k_spin+p5b-1)+int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h
7245
&1b-1)+int_mb(k_spin+h2b-1)) THEN
7246
IF (ieor(int_mb(k_sym+p5b-1),ieor(int_mb(k_sym+p6b-1),ieor(int_mb(
7247
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_t) THEN
7248
CALL TCE_RESTRICTED_4(p5b,p6b,h1b,h2b,p5b_1,p6b_1,h1b_1,h2b_1)
7249
CALL TCE_RESTRICTED_4(h9b,h11b,p5b,p6b,h9b_2,h11b_2,p5b_2,p6b_2)
7250
dim_common = int_mb(k_range+p5b-1) * int_mb(k_range+p6b-1)
7251
dima_sort = int_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
7252
dima = dim_common * dima_sort
7253
dimb_sort = int_mb(k_range+h9b-1) * int_mb(k_range+h11b-1)
7254
dimb = dim_common * dimb_sort
7255
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
7256
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
7257
& ERRQUIT('icsd_t2_6_3',1,MA_ERR)
7258
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
7259
&icsd_t2_6_3',2,MA_ERR)
7260
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
7261
& - 1 + noab * (h1b_1 - 1 + noab * (p6b_1 - noab - 1 + nvab * (p5b_
7263
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
7264
&,int_mb(k_range+p6b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
7266
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_6_3',3,MA_ERR)
7267
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
7268
& ERRQUIT('icsd_t2_6_3',4,MA_ERR)
7269
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
7270
&icsd_t2_6_3',5,MA_ERR)
7271
if(.not.intorb) then
7272
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
7273
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
7274
&b+nvab) * (h9b_2 - 1)))))
7276
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
7278
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h11b_2 - 1 + (noa
7279
&b+nvab) * (h9b_2 - 1)))),p6b_2,p5b_2,h11b_2,h9b_2)
7281
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h9b-1)
7282
&,int_mb(k_range+h11b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1
7284
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_6_3',6,MA_ERR)
7288
IF (p5b .eq. p6b) THEN
7289
nsuperp(isuperp) = nsuperp(isuperp) + 1
7291
isuperp = isuperp + 1
7293
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,2.0d0/FACTORIAL(
7294
&nsuperp(1))/FACTORIAL(nsuperp(2)),dbl_mb(k_a_sort),dim_common,dbl_
7295
&mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sort),dima_sort)
7296
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_6_3',7,MA_E
7298
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_6_3',8,MA_E
7305
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
7306
&icsd_t2_6_3',9,MA_ERR)
7307
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h11b-1
7308
&),int_mb(k_range+h9b-1),int_mb(k_range+h2b-1),int_mb(k_range+h1b-1
7309
&),2,1,4,3,-1.0d0/2.0d0)
7310
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
7311
& 1 + noab * (h1b - 1 + noab * (h11b - 1 + noab * (h9b - 1)))))
7312
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_6_3',10,MA_ERR)
7313
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_6_3',11,MA_
7318
c old way next = NXTASK(nprocs, 1)
7320
call nxt_ctx_next(ctx, icounter, next)
7328
c old way next = NXTASK(-nprocs, 1)
7329
c old way call GA_SYNC()
7332
SUBROUTINE icsd_t2_7(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
7334
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
7335
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
7336
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
7337
C i0 ( p3 p4 h1 h2 )_vt + = -1 * P( 4 ) * Sum ( h6 p5 ) * t ( p3 p5 h1 h6 )_t * i1 ( h6 p4 h2 p5 )_v
7339
#include "global.fh"
7340
#include "mafdecls.fh"
7342
#include "errquit.fh"
7350
c old way INTEGER NXTASK
7351
c -------------------------
7352
INTEGER ctx,icounter
7353
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
7354
c -------------------------
7390
c old way EXTERNAL NXTASK
7391
nprocs = GA_NNODES()
7393
c old way next = NXTASK(nprocs, 1)
7395
call nxt_ctx_next(ctx, icounter, next)
7397
DO p3b = noab+1,noab+nvab
7398
DO p4b = noab+1,noab+nvab
7401
IF (next.eq.count) THEN
7402
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
7403
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
7404
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
7405
&1b-1)+int_mb(k_spin+h2b-1)) THEN
7406
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
7407
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
7409
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
7410
&nge+h1b-1) * int_mb(k_range+h2b-1)
7411
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
7412
& ERRQUIT('icsd_t2_7',0,MA_ERR)
7413
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
7414
DO p5b = noab+1,noab+nvab
7416
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h
7417
&1b-1)+int_mb(k_spin+h6b-1)) THEN
7418
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p5b-1),ieor(int_mb(
7419
&k_sym+h1b-1),int_mb(k_sym+h6b-1)))) .eq. irrep_t) THEN
7420
CALL TCE_RESTRICTED_4(p3b,p5b,h1b,h6b,p3b_1,p5b_1,h1b_1,h6b_1)
7421
CALL TCE_RESTRICTED_4(p4b,h6b,h2b,p5b,p4b_2,h6b_2,h2b_2,p5b_2)
7422
dim_common = int_mb(k_range+p5b-1) * int_mb(k_range+h6b-1)
7423
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h1b-1)
7424
dima = dim_common * dima_sort
7425
dimb_sort = int_mb(k_range+p4b-1) * int_mb(k_range+h2b-1)
7426
dimb = dim_common * dimb_sort
7427
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
7428
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
7429
& ERRQUIT('icsd_t2_7',1,MA_ERR)
7430
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
7431
&icsd_t2_7',2,MA_ERR)
7432
IF ((p5b .lt. p3b) .and. (h6b .lt. h1b)) THEN
7433
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
7434
& - 1 + noab * (h6b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p5b_
7436
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
7437
&,int_mb(k_range+p3b-1),int_mb(k_range+h6b-1),int_mb(k_range+h1b-1)
7440
IF ((p5b .lt. p3b) .and. (h1b .le. h6b)) THEN
7441
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h6b_1
7442
& - 1 + noab * (h1b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p5b_
7444
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
7445
&,int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+h6b-1)
7448
IF ((p3b .le. p5b) .and. (h6b .lt. h1b)) THEN
7449
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
7450
& - 1 + noab * (h6b_1 - 1 + noab * (p5b_1 - noab - 1 + nvab * (p3b_
7452
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
7453
&,int_mb(k_range+p5b-1),int_mb(k_range+h6b-1),int_mb(k_range+h1b-1)
7456
IF ((p3b .le. p5b) .and. (h1b .le. h6b)) THEN
7457
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h6b_1
7458
& - 1 + noab * (h1b_1 - 1 + noab * (p5b_1 - noab - 1 + nvab * (p3b_
7460
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
7461
&,int_mb(k_range+p5b-1),int_mb(k_range+h1b-1),int_mb(k_range+h6b-1)
7464
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_7',3,MA_ERR)
7465
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
7466
& ERRQUIT('icsd_t2_7',4,MA_ERR)
7467
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
7468
&icsd_t2_7',5,MA_ERR)
7470
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
7471
&(h6b_2 -1 + noab * (p5b_2 - noab -1 +nvab * (h2b_2 - 1 + noab *
7472
&( p4b_2 - noab -1 )))))
7474
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p4b-1)
7475
&,int_mb(k_range+h6b-1),int_mb(k_range+h2b-1),int_mb(k_range+p5b-1)
7477
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_7',6,MA_ERR)
7478
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
7479
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
7481
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_7',7,MA_ERR
7483
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_7',8,MA_ERR
7490
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
7491
&icsd_t2_7',9,MA_ERR)
7492
IF ((p3b .le. p4b) .and. (h1b .le. h2b)) THEN
7493
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
7494
&,int_mb(k_range+p4b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1)
7496
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
7497
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
7500
IF ((p3b .le. p4b) .and. (h2b .le. h1b)) THEN
7501
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
7502
&,int_mb(k_range+p4b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1)
7504
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
7505
& 1 + noab * (h2b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
7508
IF ((p4b .le. p3b) .and. (h1b .le. h2b)) THEN
7509
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
7510
&,int_mb(k_range+p4b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1)
7512
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
7513
& 1 + noab * (h1b - 1 + noab * (p3b - noab - 1 + nvab * (p4b - noab
7516
IF ((p4b .le. p3b) .and. (h2b .le. h1b)) THEN
7517
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
7518
&,int_mb(k_range+p4b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1)
7520
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
7521
& 1 + noab * (h2b - 1 + noab * (p3b - noab - 1 + nvab * (p4b - noab
7524
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_7',10,MA_ERR)
7525
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_7',11,MA_ER
7530
c old way next = NXTASK(nprocs, 1)
7532
call nxt_ctx_next(ctx, icounter, next)
7540
c old way next = NXTASK(-nprocs, 1)
7541
c old way call GA_SYNC()
7544
SUBROUTINE icsd_t2_7_1(d_a,k_a_offset,d_c,k_c_offset,ctx,icounter)
7545
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
7546
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
7547
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
7548
C i1 ( h6 p3 h1 p5 )_v + = 1 * v ( h6 p3 h1 p5 )_v
7550
#include "global.fh"
7551
#include "mafdecls.fh"
7553
#include "errquit.fh"
7559
c old way INTEGER NXTASK
7560
c -------------------------
7561
INTEGER ctx,icounter
7562
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
7563
c -------------------------
7585
c old way EXTERNAL NXTASK
7586
nprocs = GA_NNODES()
7588
c old way next = NXTASK(nprocs, 1)
7590
call nxt_ctx_next(ctx, icounter, next)
7593
DO p3b = noab+1,noab+nvab
7595
DO p5b = noab+1,noab+nvab
7598
IF (next.eq.count) THEN
7599
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h6b-1
7600
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
7601
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h6b-1) .eq. int_mb(k_spin+h
7602
&1b-1)+int_mb(k_spin+p5b-1)) THEN
7603
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h6b-1),ieor(int_mb(
7604
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
7605
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h6b-1) * int_mb(k_ra
7606
&nge+h1b-1) * int_mb(k_range+p5b-1)
7607
CALL TCE_RESTRICTED_4(p3b,h6b,h1b,p5b,p3b_1,h6b_1,h1b_1,p5b_1)
7609
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h6b-1) * int_mb
7610
&(k_range+h1b-1) * int_mb(k_range+p5b-1)
7611
dima = dim_common * dima_sort
7612
IF (dima .gt. 0) THEN
7613
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
7614
& ERRQUIT('icsd_t2_7_1',0,MA_ERR)
7615
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
7616
&icsd_t2_7_1',1,MA_ERR)
7617
IF ((h6b .le. p3b) .and. (h1b .le. p5b)) THEN
7618
if(.not.intorb) then
7619
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(p5b_1
7620
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p3b_1 - 1 + (noab
7621
&+nvab) * (h6b_1 - 1)))))
7623
CALL GET_HASH_BLOCK_I(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),
7625
& - 1 + (noab+nvab) * (h1b_1 - 1 + (noab+nvab) * (p3b_1 - 1 + (noab
7626
&+nvab) * (h6b_1 - 1)))),p5b_1,h1b_1,p3b_1,h6b_1)
7628
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+h6b-1)
7629
&,int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+p5b-1)
7632
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_7_1',2,MA_ERR)
7633
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
7634
&icsd_t2_7_1',3,MA_ERR)
7635
CALL TCE_SORT_4(dbl_mb(k_a_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
7636
&,int_mb(k_range+h1b-1),int_mb(k_range+h6b-1),int_mb(k_range+p3b-1)
7639
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),
7640
&(h6b -1 + noab * (p5b - noab -1 +nvab * (h1b - 1 + noab *
7641
&( p3b - noab -1 )))))
7643
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_7_1',4,MA_ERR)
7644
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_7_1',5,MA_E
7650
c old way next = NXTASK(nprocs, 1)
7652
call nxt_ctx_next(ctx, icounter, next)
7660
c old way next = NXTASK(-nprocs, 1)
7661
c old way call GA_SYNC()
7664
SUBROUTINE OFFSET_icsd_t2_7_1(l_a_offset,k_a_offset,size)
7665
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
7666
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
7667
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
7668
C i1 ( h6 p3 h1 p5 )_v
7670
#include "global.fh"
7671
#include "mafdecls.fh"
7673
#include "errquit.fh"
7686
DO p3b = noab+1,noab+nvab
7688
DO p5b = noab+1,noab+nvab
7691
IF (int_mb(k_spin+h6b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+h
7692
&1b-1)+int_mb(k_spin+p5b-1)) THEN
7693
IF (ieor(int_mb(k_sym+h6b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb(
7694
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
7695
IF ((.not.restricted).or.(int_mb(k_spin+h6b-1)+int_mb(k_spin+p3b-1
7696
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
7705
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
7706
&set)) CALL ERRQUIT('icsd_t2_7_1',0,MA_ERR)
7707
int_mb(k_a_offset) = length
7711
DO p3b = noab+1,noab+nvab
7713
DO p5b = noab+1,noab+nvab
7716
IF (int_mb(k_spin+h6b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+h
7717
&1b-1)+int_mb(k_spin+p5b-1)) THEN
7718
IF (ieor(int_mb(k_sym+h6b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb(
7719
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. irrep_v) THEN
7720
IF ((.not.restricted).or.(int_mb(k_spin+h6b-1)+int_mb(k_spin+p3b-1
7721
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
7724
int_mb(k_a_offset+addr) = h6b -1 + noab * (p5b - noab -1 +nvab * (
7725
&h1b - 1 + noab * ( p3b - noab -1 )))
7727
int_mb(k_a_offset+length+addr) = size
7728
size = size + int_mb(k_range+p3b-1) * int_mb(k_range+h6b-1) * int_
7729
&mb(k_range+h1b-1) * int_mb(k_range+p5b-1)
7739
SUBROUTINE icsd_t2_7_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
7741
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
7742
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
7743
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
7744
C i1 ( h6 p3 h1 p5 )_vt + = -1 * Sum ( p7 ) * t ( p7 h1 )_t * v ( h6 p3 p5 p7 )_v
7746
#include "global.fh"
7747
#include "mafdecls.fh"
7749
#include "errquit.fh"
7757
c old way INTEGER NXTASK
7758
c -------------------------
7759
INTEGER ctx,icounter
7760
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
7761
c -------------------------
7794
c old way EXTERNAL NXTASK
7795
nprocs = GA_NNODES()
7797
c old way next = NXTASK(nprocs, 1)
7799
call nxt_ctx_next(ctx, icounter, next)
7802
DO p3b = noab+1,noab+nvab
7804
DO p5b = noab+1,noab+nvab
7807
IF (next.eq.count) THEN
7808
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h6b-1
7809
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
7810
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h6b-1) .eq. int_mb(k_spin+h
7811
&1b-1)+int_mb(k_spin+p5b-1)) THEN
7812
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h6b-1),ieor(int_mb(
7813
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
7815
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h6b-1) * int_mb(k_ra
7816
&nge+h1b-1) * int_mb(k_range+p5b-1)
7817
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
7818
& ERRQUIT('icsd_t2_7_2',0,MA_ERR)
7819
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
7820
DO p7b = noab+1,noab+nvab
7821
IF (int_mb(k_spin+p7b-1) .eq. int_mb(k_spin+h1b-1)) THEN
7822
IF (ieor(int_mb(k_sym+p7b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
7824
CALL TCE_RESTRICTED_2(p7b,h1b,p7b_1,h1b_1)
7825
CALL TCE_RESTRICTED_4(p3b,h6b,p5b,p7b,p3b_2,h6b_2,p5b_2,p7b_2)
7826
dim_common = int_mb(k_range+p7b-1)
7827
dima_sort = int_mb(k_range+h1b-1)
7828
dima = dim_common * dima_sort
7829
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h6b-1) * int_mb
7831
dimb = dim_common * dimb_sort
7832
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
7833
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
7834
& ERRQUIT('icsd_t2_7_2',1,MA_ERR)
7835
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
7836
&icsd_t2_7_2',2,MA_ERR)
7837
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
7838
& int_mb(k_a_offset),(h1b_1
7839
& - 1 + noab * (p7b_1 - noab - 1)))
7840
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p7b-1)
7841
&,int_mb(k_range+h1b-1),2,1,1.0d0)
7842
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_7_2',3,MA_ERR)
7843
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
7844
& ERRQUIT('icsd_t2_7_2',4,MA_ERR)
7845
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
7846
&icsd_t2_7_2',5,MA_ERR)
7847
IF ((h6b .le. p3b) .and. (p7b .lt. p5b)) THEN
7848
if(.not.intorb) then
7849
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
7850
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
7851
&+nvab) * (h6b_2 - 1)))))
7853
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
7855
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
7856
&+nvab) * (h6b_2 - 1)))),p5b_2,p7b_2,p3b_2,h6b_2)
7858
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h6b-1)
7859
&,int_mb(k_range+p3b-1),int_mb(k_range+p7b-1),int_mb(k_range+p5b-1)
7862
IF ((h6b .le. p3b) .and. (p5b .le. p7b)) THEN
7863
if(.not.intorb) then
7864
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p7b_2
7865
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
7866
&+nvab) * (h6b_2 - 1)))))
7868
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
7870
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
7871
&+nvab) * (h6b_2 - 1)))),p7b_2,p5b_2,p3b_2,h6b_2)
7873
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h6b-1)
7874
&,int_mb(k_range+p3b-1),int_mb(k_range+p5b-1),int_mb(k_range+p7b-1)
7877
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_7_2',6,MA_ERR)
7878
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
7879
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
7881
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_7_2',7,MA_E
7883
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_7_2',8,MA_E
7889
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
7890
&icsd_t2_7_2',9,MA_ERR)
7891
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
7892
&,int_mb(k_range+h6b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
7895
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),
7896
&(h6b -1 + noab * (p5b - noab -1 +nvab * (h1b - 1 + noab *
7897
&( p3b - noab -1 )))))
7899
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_7_2',10,MA_ERR)
7900
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_7_2',11,MA_
7905
c old way next = NXTASK(nprocs, 1)
7907
call nxt_ctx_next(ctx, icounter, next)
7915
c old way next = NXTASK(-nprocs, 1)
7916
c old way call GA_SYNC()
7919
SUBROUTINE icsd_t2_7_3(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offse
7921
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
7922
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
7923
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
7924
C i1 ( h6 p3 h1 p5 )_vt + = -1/2 * Sum ( h8 p7 ) * t ( p3 p7 h1 h8 )_t * v ( h6 h8 p5 p7 )_v
7926
#include "global.fh"
7927
#include "mafdecls.fh"
7929
#include "errquit.fh"
7937
c old way INTEGER NXTASK
7938
c -------------------------
7939
INTEGER ctx,icounter
7940
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
7941
c -------------------------
7977
c old way EXTERNAL NXTASK
7978
nprocs = GA_NNODES()
7980
c old way next = NXTASK(nprocs, 1)
7982
call nxt_ctx_next(ctx, icounter, next)
7985
DO p3b = noab+1,noab+nvab
7987
DO p5b = noab+1,noab+nvab
7990
IF (next.eq.count) THEN
7991
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h6b-1
7992
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+p5b-1).ne.8)) THEN
7993
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h6b-1) .eq. int_mb(k_spin+h
7994
&1b-1)+int_mb(k_spin+p5b-1)) THEN
7995
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h6b-1),ieor(int_mb(
7996
&k_sym+h1b-1),int_mb(k_sym+p5b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
7998
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h6b-1) * int_mb(k_ra
7999
&nge+h1b-1) * int_mb(k_range+p5b-1)
8000
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
8001
& ERRQUIT('icsd_t2_7_3',0,MA_ERR)
8002
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
8004
DO p7b = noab+1,noab+nvab
8005
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p7b-1) .eq. int_mb(k_spin+h
8006
&1b-1)+int_mb(k_spin+h8b-1)) THEN
8007
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p7b-1),ieor(int_mb(
8008
&k_sym+h1b-1),int_mb(k_sym+h8b-1)))) .eq. irrep_t) THEN
8009
CALL TCE_RESTRICTED_4(p3b,p7b,h1b,h8b,p3b_1,p7b_1,h1b_1,h8b_1)
8010
CALL TCE_RESTRICTED_4(h6b,h8b,p5b,p7b,h6b_2,h8b_2,p5b_2,p7b_2)
8011
dim_common = int_mb(k_range+p7b-1) * int_mb(k_range+h8b-1)
8012
dima_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h1b-1)
8013
dima = dim_common * dima_sort
8014
dimb_sort = int_mb(k_range+h6b-1) * int_mb(k_range+p5b-1)
8015
dimb = dim_common * dimb_sort
8016
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
8022
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
8023
& ERRQUIT('icsd_t2_7_3',1,MA_ERR)
8024
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
8025
&icsd_t2_7_3',2,MA_ERR)
8026
IF ((p7b .lt. p3b) .and. (h8b .lt. h1b)) THEN
8027
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
8028
& - 1 + noab * (h8b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p7b_
8030
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p7b-1)
8031
&,int_mb(k_range+p3b-1),int_mb(k_range+h8b-1),int_mb(k_range+h1b-1)
8034
IF ((p7b .lt. p3b) .and. (h1b .le. h8b)) THEN
8035
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h8b_1
8036
& - 1 + noab * (h1b_1 - 1 + noab * (p3b_1 - noab - 1 + nvab * (p7b_
8038
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p7b-1)
8039
&,int_mb(k_range+p3b-1),int_mb(k_range+h1b-1),int_mb(k_range+h8b-1)
8042
IF ((p3b .le. p7b) .and. (h8b .lt. h1b)) THEN
8043
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h1b_1
8044
& - 1 + noab * (h8b_1 - 1 + noab * (p7b_1 - noab - 1 + nvab * (p3b_
8046
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
8047
&,int_mb(k_range+p7b-1),int_mb(k_range+h8b-1),int_mb(k_range+h1b-1)
8050
IF ((p3b .le. p7b) .and. (h1b .le. h8b)) THEN
8051
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h8b_1
8052
& - 1 + noab * (h1b_1 - 1 + noab * (p7b_1 - noab - 1 + nvab * (p3b_
8054
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
8055
&,int_mb(k_range+p7b-1),int_mb(k_range+h1b-1),int_mb(k_range+h8b-1)
8058
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_7_3',3,MA_ERR)
8066
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
8067
& ERRQUIT('icsd_t2_7_3',4,MA_ERR)
8068
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
8069
&icsd_t2_7_3',5,MA_ERR)
8070
IF ((h8b .lt. h6b) .and. (p7b .lt. p5b)) THEN
8071
if(.not.intorb) then
8072
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
8073
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (h6b_2 - 1 + (noab
8074
&+nvab) * (h8b_2 - 1)))))
8076
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
8078
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (h6b_2 - 1 + (noab
8079
&+nvab) * (h8b_2 - 1)))),p5b_2,p7b_2,h6b_2,h8b_2)
8081
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h8b-1)
8082
&,int_mb(k_range+h6b-1),int_mb(k_range+p7b-1),int_mb(k_range+p5b-1)
8085
IF ((h8b .lt. h6b) .and. (p5b .le. p7b)) THEN
8086
if(.not.intorb) then
8087
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p7b_2
8088
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h6b_2 - 1 + (noab
8089
&+nvab) * (h8b_2 - 1)))))
8091
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
8093
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h6b_2 - 1 + (noab
8094
&+nvab) * (h8b_2 - 1)))),p7b_2,p5b_2,h6b_2,h8b_2)
8096
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h8b-1)
8097
&,int_mb(k_range+h6b-1),int_mb(k_range+p5b-1),int_mb(k_range+p7b-1)
8100
IF ((h6b .le. h8b) .and. (p7b .lt. p5b)) THEN
8101
if(.not.intorb) then
8102
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
8103
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
8104
&+nvab) * (h6b_2 - 1)))))
8106
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
8108
& - 1 + (noab+nvab) * (p7b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
8109
&+nvab) * (h6b_2 - 1)))),p5b_2,p7b_2,h8b_2,h6b_2)
8111
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h6b-1)
8112
&,int_mb(k_range+h8b-1),int_mb(k_range+p7b-1),int_mb(k_range+p5b-1)
8115
IF ((h6b .le. h8b) .and. (p5b .le. p7b)) THEN
8116
if(.not.intorb) then
8117
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p7b_2
8118
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
8119
&+nvab) * (h6b_2 - 1)))))
8121
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
8123
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (h8b_2 - 1 + (noab
8124
&+nvab) * (h6b_2 - 1)))),p7b_2,p5b_2,h8b_2,h6b_2)
8126
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h6b-1)
8127
&,int_mb(k_range+h8b-1),int_mb(k_range+p5b-1),int_mb(k_range+p7b-1)
8130
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_7_3',6,MA_ERR)
8139
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
8140
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
8142
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_7_3',7,MA_E
8144
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_7_3',8,MA_E
8151
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
8152
&icsd_t2_7_3',9,MA_ERR)
8153
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p5b-1)
8154
&,int_mb(k_range+h6b-1),int_mb(k_range+h1b-1),int_mb(k_range+p3b-1)
8155
&,4,2,3,1,-1.0d0/2.0d0)
8157
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),
8158
&(h6b -1 + noab * (p5b - noab -1 +nvab * (h1b - 1 + noab *
8159
&( p3b - noab -1 )))))
8161
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_7_3',10,MA_ERR)
8162
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_7_3',11,MA_
8167
c old way next = NXTASK(nprocs, 1)
8169
call nxt_ctx_next(ctx, icounter, next)
8177
c old way next = NXTASK(-nprocs, 1)
8178
c old way call GA_SYNC()
8181
SUBROUTINE icsd_t2_8(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
8183
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
8184
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
8185
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
8186
C i0 ( p3 p4 h1 h2 )_vt + = 1/2 * Sum ( p5 p6 ) * t ( p5 p6 h1 h2 )_t * v ( p3 p4 p5 p6 )_v
8188
#include "global.fh"
8189
#include "mafdecls.fh"
8191
#include "errquit.fh"
8202
c old way INTEGER NXTASK
8203
c -------------------------
8204
INTEGER ctx,icounter
8205
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
8206
c -------------------------
8244
DOUBLE PRECISION FACTORIAL
8246
c logical nodezero ! True if node 0
8247
c double precision cpu ! CPU sec counter
8248
c double precision wall ! WALL sec counter
8250
c old way EXTERNAL NXTASK
8252
nprocs = GA_NNODES()
8254
c old way next = NXTASK(nprocs, 1)
8256
call nxt_ctx_next(ctx, icounter, next)
8258
DO p3b = noab+1,noab+nvab
8259
DO p4b = p3b,noab+nvab
8262
IF (next.eq.count) THEN
8263
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
8264
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
8265
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
8266
&1b-1)+int_mb(k_spin+h2b-1)) THEN
8267
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
8268
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
8270
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
8271
&nge+h1b-1) * int_mb(k_range+h2b-1)
8272
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
8273
& ERRQUIT('icsd_t2_8',0,MA_ERR)
8274
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
8275
DO p5b = noab+1,noab+nvab
8276
DO p6b = p5b,noab+nvab
8277
IF (int_mb(k_spin+p5b-1)+int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h
8278
&1b-1)+int_mb(k_spin+h2b-1)) THEN
8279
IF (ieor(int_mb(k_sym+p5b-1),ieor(int_mb(k_sym+p6b-1),ieor(int_mb(
8280
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. irrep_t) THEN
8281
c cpu = - util_cpusec()
8282
c wall = - util_wallsec()
8283
CALL TCE_RESTRICTED_4(p5b,p6b,h1b,h2b,p5b_1,p6b_1,h1b_1,h2b_1)
8284
CALL TCE_RESTRICTED_4(p3b,p4b,p5b,p6b,p3b_2,p4b_2,p5b_2,p6b_2)
8285
c cpu = cpu + util_cpusec()
8286
c wall = wall + util_wallsec()
8288
c write(6,9022)ga_nodeid(),cpu, wall
8290
c call util_flush(6)
8291
dim_common = int_mb(k_range+p5b-1) * int_mb(k_range+p6b-1)
8292
dima_sort = int_mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
8293
dima = dim_common * dima_sort
8294
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1)
8295
dimb = dim_common * dimb_sort
8296
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
8297
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
8298
& ERRQUIT('icsd_t2_8',1,MA_ERR)
8299
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
8300
&icsd_t2_8',2,MA_ERR)
8301
c cpu = - util_cpusec()
8302
c wall = - util_wallsec()
8303
CALL GET_HASH_BLOCK(d_a,dbl_mb(k_a),dima,int_mb(k_a_offset),(h2b_1
8304
& - 1 + noab * (h1b_1 - 1 + noab * (p6b_1 - noab - 1 + nvab * (p5b_
8306
c cpu = cpu + util_cpusec()
8307
c wall = wall + util_wallsec()
8309
c write(6,9020)ga_nodeid(),cpu, wall,h2b,h1b,p6b,p5b,dima
8311
c call util_flush(6)
8313
c cpu = - util_cpusec()
8314
c wall = - util_wallsec()
8315
CALL TCE_SORT_4(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
8316
&,int_mb(k_range+p6b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
8318
c cpu = cpu + util_cpusec()
8319
c wall = wall + util_wallsec()
8321
c write(6,9023)ga_nodeid(),cpu, wall
8323
c call util_flush(6)
8324
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('icsd_t2_8',3,MA_ERR)
8325
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
8326
& ERRQUIT('icsd_t2_8',4,MA_ERR)
8327
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
8328
&icsd_t2_8',5,MA_ERR)
8329
if(.not.intorb) then
8330
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
8331
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
8332
&+nvab) * (p3b_2 - 1)))))
8334
c cpu = - util_cpusec()
8335
c wall = - util_wallsec()
8336
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
8338
& - 1 + (noab+nvab) * (p5b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
8339
&+nvab) * (p3b_2 - 1)))),p6b_2,p5b_2,p4b_2,p3b_2)
8340
c cpu = cpu + util_cpusec()
8341
c wall = wall + util_wallsec()
8343
c write(6,9021)ga_nodeid(),cpu, wall,p6b_2,p5b_2,p4b_2,p3b_2,
8346
c call util_flush(6)
8348
c cpu = - util_cpusec()
8349
c wall = - util_wallsec()
8350
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p3b-1)
8351
&,int_mb(k_range+p4b-1),int_mb(k_range+p5b-1),int_mb(k_range+p6b-1)
8353
c cpu = cpu + util_cpusec()
8354
c wall = wall + util_wallsec()
8356
c write(6,9023)ga_nodeid(),cpu, wall
8358
c call util_flush(6)
8359
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('icsd_t2_8',6,MA_ERR)
8363
IF (p5b .eq. p6b) THEN
8364
nsuperp(isuperp) = nsuperp(isuperp) + 1
8366
isuperp = isuperp + 1
8368
c cpu = - util_cpusec()
8369
c wall = - util_wallsec()
8370
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,2.0d0/FACTORIAL(
8371
&nsuperp(1))/FACTORIAL(nsuperp(2)),dbl_mb(k_a_sort),dim_common,dbl_
8372
&mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sort),dima_sort)
8373
c cpu = cpu + util_cpusec()
8374
c wall = wall + util_wallsec()
8376
c write(6,9024)ga_nodeid(),cpu, wall
8378
c call util_flush(6)
8379
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('icsd_t2_8',7,MA_ERR
8381
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('icsd_t2_8',8,MA_ERR
8388
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
8389
&icsd_t2_8',9,MA_ERR)
8390
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+p4b-1)
8391
&,int_mb(k_range+p3b-1),int_mb(k_range+h2b-1),int_mb(k_range+h1b-1)
8392
&,2,1,4,3,1.0d0/2.0d0)
8393
c cpu = - util_cpusec()
8394
c wall = - util_wallsec()
8395
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
8396
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
8398
c cpu = cpu + util_cpusec()
8399
c wall = wall + util_wallsec()
8401
c write(6,9025)ga_nodeid(),cpu, wall
8403
c call util_flush(6)
8404
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('icsd_t2_8',10,MA_ERR)
8405
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('icsd_t2_8',11,MA_ER
8410
c old way next = NXTASK(nprocs, 1)
8412
call nxt_ctx_next(ctx, icounter, next)
8420
c old way next = NXTASK(-nprocs, 1)
8421
c old way call GA_SYNC()
8422
9020 format(' T2 GA',i4,1x,'Cpu wall ',2(f17.12,1x),1x,4i4,2x,i10)
8423
9021 format(' V2 GA',i4,1x,'Cpu wall ',2(f17.12,1x),1x,4i4,2x,i10)
8424
9022 format(' TRANS',i4,1x,'Cpu wall ',2(f17.12,1x))
8425
9023 format(' SORT ',i4,1x,'Cpu wall ',2(f17.12,1x))
8426
9024 format(' DGEMM',i4,1x,'Cpu wall ',2(f17.12,1x))
8427
9025 format(' ADD_BL',i4,1x,'Cpu wall ',2(f17.12,1x))
8442
SUBROUTINE licsd_t2_3x(d_a,k_a_offset,d_b,k_b_offset,d_c,
8443
&k_c_offset,ctx,icounter)
8444
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
8445
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
8446
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
8447
C i0 ( p3 p4 h1 h2 )_vt + = -1 * P( 2 ) * Sum ( p5 ) * t ( p5 h1 )_t * v ( p3 p4 h2 p5 )_v
8449
#include "global.fh"
8450
#include "mafdecls.fh"
8452
#include "errquit.fh"
8494
c old way INTEGER NXTASK
8495
c -------------------------
8496
INTEGER ctx,icounter
8497
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
8498
c -------------------------
8499
c old way EXTERNAL NXTASK
8500
nprocs = GA_NNODES()
8502
cc next = NXTVAL(nprocs)
8503
c old way next = NXTASK(nprocs, 1)
8505
call nxt_ctx_next(ctx, icounter, next)
8507
DO p3b = noab+1,noab+nvab
8508
DO p4b = p3b,noab+nvab
8511
IF (next.eq.count) THEN
8512
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
8513
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
8514
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
8515
&1b-1)+int_mb(k_spin+h2b-1)) THEN
8516
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
8517
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
8519
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
8520
&nge+h1b-1) * int_mb(k_range+h2b-1)
8521
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
8522
& ERRQUIT('licsd_t2_3',0,MA_ERR)
8523
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
8524
DO p5b = noab+1,noab+nvab
8525
IF (int_mb(k_spin+p5b-1) .eq. int_mb(k_spin+h1b-1)) THEN
8526
IF (ieor(int_mb(k_sym+p5b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
8528
CALL TCE_RESTRICTED_2(p5b,h1b,p5b_1,h1b_1)
8529
CALL TCE_RESTRICTED_4(p3b,p4b,h2b,p5b,p3b_2,p4b_2,h2b_2,p5b_2)
8530
dim_common = int_mb(k_range+p5b-1)
8531
dima_sort = int_mb(k_range+h1b-1)
8532
dima = dim_common * dima_sort
8533
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb
8535
dimb = dim_common * dimb_sort
8536
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
8537
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
8538
& ERRQUIT('licsd_t2_3',1,MA_ERR)
8539
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
8540
&licsd_t2_3',2,MA_ERR)
8541
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
8542
& int_mb(k_a_offset),(h1b_1
8543
& - 1 + noab * (p5b_1 - noab - 1)))
8544
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p5b-1)
8545
&,int_mb(k_range+h1b-1),2,1,1.0d0)
8546
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('licsd_t2_3',3,MA_ERR)
8547
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
8548
& ERRQUIT('licsd_t2_3',4,MA_ERR)
8549
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
8550
&licsd_t2_3',5,MA_ERR)
8551
IF ((h2b .le. p5b)) THEN
8552
if(.not.intorb) then
8553
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p5b_2
8554
& - 1 + (noab+nvab) * (h2b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
8555
&+nvab) * (p3b_2 - 1)))))
8557
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
8559
& - 1 + (noab+nvab) * (h2b_2 - 1 + (noab+nvab) * (p4b_2 - 1 + (noab
8560
&+nvab) * (p3b_2 - 1)))),p5b_2,h2b_2,p4b_2,p3b_2)
8562
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p3b-1)
8563
&,int_mb(k_range+p4b-1),int_mb(k_range+h2b-1),int_mb(k_range+p5b-1)
8566
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('licsd_t2_3',6,MA_ERR)
8567
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
8568
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
8570
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('licsd_t2_3',7,MA_ER
8572
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('licsd_t2_3',8,MA_ER
8578
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
8579
&licsd_t2_3',9,MA_ERR)
8580
IF ((h1b .le. h2b)) THEN
8581
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
8582
&,int_mb(k_range+p4b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
8584
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
8585
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
8588
IF ((h2b .le. h1b)) THEN
8589
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
8590
&,int_mb(k_range+p4b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
8592
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
8593
& 1 + noab * (h2b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
8596
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('licsd_t2_3',10,MA_ERR)
8597
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('licsd_t2_3',11,MA_E
8602
cc next = NXTVAL(nprocs)
8603
c old way next = NXTASK(nprocs, 1)
8605
call nxt_ctx_next(ctx, icounter, next)
8613
cc next = NXTVAL(-nprocs)
8614
c old way next = NXTASK(-nprocs, 1)
8615
c old way call GA_SYNC()
8630
SUBROUTINE vt1ic_1(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
8632
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
8633
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
8634
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
8635
C i0 ( p3 p4 h1 h2 )_vtt + = -1/2 * P( 2 ) * Sum ( h5 ) * t ( p3 h5 )_t * i1 ( h5 p4 h1 h2 )_vt
8637
#include "global.fh"
8638
#include "mafdecls.fh"
8640
#include "errquit.fh"
8682
c old way INTEGER NXTASK
8683
c -------------------------
8684
INTEGER ctx,icounter
8685
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
8686
c -------------------------
8687
c old way EXTERNAL NXTASK
8688
nprocs = GA_NNODES()
8690
cc next = NXTVAL(nprocs)
8691
c old way next = NXTASK(nprocs, 1)
8693
call nxt_ctx_next(ctx, icounter, next)
8695
DO p3b = noab+1,noab+nvab
8696
DO p4b = noab+1,noab+nvab
8699
IF (next.eq.count) THEN
8700
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1
8701
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
8702
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+p4b-1) .eq. int_mb(k_spin+h
8703
&1b-1)+int_mb(k_spin+h2b-1)) THEN
8704
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+p4b-1),ieor(int_mb(
8705
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,ieor(irrep_t
8707
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+p4b-1) * int_mb(k_ra
8708
&nge+h1b-1) * int_mb(k_range+h2b-1)
8709
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
8710
& ERRQUIT('vt1ic_1',0,MA_ERR)
8711
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
8713
IF (int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+h5b-1)) THEN
8714
IF (ieor(int_mb(k_sym+p3b-1),int_mb(k_sym+h5b-1)) .eq. irrep_t) TH
8716
CALL TCE_RESTRICTED_2(p3b,h5b,p3b_1,h5b_1)
8717
CALL TCE_RESTRICTED_4(p4b,h5b,h1b,h2b,p4b_2,h5b_2,h1b_2,h2b_2)
8718
dim_common = int_mb(k_range+h5b-1)
8719
dima_sort = int_mb(k_range+p3b-1)
8720
dima = dim_common * dima_sort
8721
dimb_sort = int_mb(k_range+p4b-1) * int_mb(k_range+h1b-1) * int_mb
8723
dimb = dim_common * dimb_sort
8724
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
8725
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
8726
& ERRQUIT('vt1ic_1',1,MA_ERR)
8727
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
8729
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
8730
& int_mb(k_a_offset),(h5b_1
8731
& - 1 + noab * (p3b_1 - noab - 1)))
8732
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p3b-1)
8733
&,int_mb(k_range+h5b-1),1,2,1.0d0)
8734
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('vt1ic_1',3,MA_ERR)
8735
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
8736
& ERRQUIT('vt1ic_1',4,MA_ERR)
8737
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
8739
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(h2b_2
8740
& - 1 + noab * (h1b_2 - 1 + noab * (h5b_2 - 1 + noab * (p4b_2 - noa
8742
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+p4b-1)
8743
&,int_mb(k_range+h5b-1),int_mb(k_range+h1b-1),int_mb(k_range+h2b-1)
8745
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('vt1ic_1',6,MA_ERR)
8746
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
8747
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
8749
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('vt1ic_1',7,MA_ERR)
8750
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('vt1ic_1',8,MA_ERR)
8755
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
8757
IF ((p3b .le. p4b)) THEN
8758
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
8759
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
8760
&,4,3,2,1,-1.0d0/2.0d0)
8761
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
8762
& 1 + noab * (h1b - 1 + noab * (p4b - noab - 1 + nvab * (p3b - noab
8765
IF ((p4b .le. p3b)) THEN
8766
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
8767
&,int_mb(k_range+h1b-1),int_mb(k_range+p4b-1),int_mb(k_range+p3b-1)
8768
&,3,4,2,1,1.0d0/2.0d0)
8769
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
8770
& 1 + noab * (h1b - 1 + noab * (p3b - noab - 1 + nvab * (p4b - noab
8773
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('vt1ic_1',10,MA_ERR)
8774
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('vt1ic_1',11,MA_ERR)
8778
cc next = NXTVAL(nprocs)
8779
c old way next = NXTASK(nprocs, 1)
8781
call nxt_ctx_next(ctx, icounter, next)
8789
cc next = NXTVAL(-nprocs)
8790
c old way next = NXTASK(-nprocs, 1)
8791
c old way call GA_SYNC()
8794
SUBROUTINE OFFSET_vt1ic_1_1(l_a_offset,k_a_offset,size)
8795
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
8796
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
8797
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
8798
C i1 ( h5 p3 h1 h2 )_vt
8800
#include "global.fh"
8801
#include "mafdecls.fh"
8803
#include "errquit.fh"
8815
DO p3b = noab+1,noab+nvab
8819
IF (int_mb(k_spin+h5b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+h
8820
&1b-1)+int_mb(k_spin+h2b-1)) THEN
8821
IF (ieor(int_mb(k_sym+h5b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb(
8822
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
8824
IF ((.not.restricted).or.(int_mb(k_spin+h5b-1)+int_mb(k_spin+p3b-1
8825
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
8834
IF (.not.MA_PUSH_GET(mt_int,2*length+1,'noname',l_a_offset,k_a_off
8835
&set)) CALL ERRQUIT('vt1ic_1_1',0,MA_ERR)
8836
int_mb(k_a_offset) = length
8839
DO p3b = noab+1,noab+nvab
8843
IF (int_mb(k_spin+h5b-1)+int_mb(k_spin+p3b-1) .eq. int_mb(k_spin+h
8844
&1b-1)+int_mb(k_spin+h2b-1)) THEN
8845
IF (ieor(int_mb(k_sym+h5b-1),ieor(int_mb(k_sym+p3b-1),ieor(int_mb(
8846
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
8848
IF ((.not.restricted).or.(int_mb(k_spin+h5b-1)+int_mb(k_spin+p3b-1
8849
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
8851
int_mb(k_a_offset+addr) = h2b - 1 + noab * (h1b - 1 + noab * (h5b
8852
&- 1 + noab * (p3b - noab - 1)))
8853
int_mb(k_a_offset+length+addr) = size
8854
size = size + int_mb(k_range+p3b-1) * int_mb(k_range+h5b-1) * int_
8855
&mb(k_range+h1b-1) * int_mb(k_range+h2b-1)
8865
SUBROUTINE vt1ic_1_2(d_a,k_a_offset,d_b,k_b_offset,d_c,k_c_offset,
8867
C $Id: icsd_t2.F 21409 2011-11-05 06:36:24Z d3y133 $
8868
C This is a Fortran77 program generated by Tensor Contraction Engine v.1.0
8869
C Copyright (c) Battelle & Pacific Northwest National Laboratory (2002)
8870
C i1 ( h5 p3 h1 h2 )_vt + = -2 * P( 2 ) * Sum ( p6 ) * t ( p6 h1 )_t * v ( h5 p3 h2 p6 )_v
8872
#include "global.fh"
8873
#include "mafdecls.fh"
8875
#include "errquit.fh"
8917
c old way INTEGER NXTASK
8918
c -------------------------
8919
INTEGER ctx,icounter
8920
external nxt_ctx_create, nxt_ctx_destroy, nxt_ctx_next
8921
c -------------------------
8922
c old way EXTERNAL NXTASK
8923
nprocs = GA_NNODES()
8925
cc next = NXTVAL(nprocs)
8926
c old way next = NXTASK(nprocs, 1)
8928
call nxt_ctx_next(ctx, icounter, next)
8930
DO p3b = noab+1,noab+nvab
8934
IF (next.eq.count) THEN
8935
IF ((.not.restricted).or.(int_mb(k_spin+p3b-1)+int_mb(k_spin+h5b-1
8936
&)+int_mb(k_spin+h1b-1)+int_mb(k_spin+h2b-1).ne.8)) THEN
8937
IF (int_mb(k_spin+p3b-1)+int_mb(k_spin+h5b-1) .eq. int_mb(k_spin+h
8938
&1b-1)+int_mb(k_spin+h2b-1)) THEN
8939
IF (ieor(int_mb(k_sym+p3b-1),ieor(int_mb(k_sym+h5b-1),ieor(int_mb(
8940
&k_sym+h1b-1),int_mb(k_sym+h2b-1)))) .eq. ieor(irrep_v,irrep_t)) TH
8942
dimc = int_mb(k_range+p3b-1) * int_mb(k_range+h5b-1) * int_mb(k_ra
8943
&nge+h1b-1) * int_mb(k_range+h2b-1)
8944
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c_sort,k_c_sort)) CALL
8945
& ERRQUIT('vt1ic_1_2',0,MA_ERR)
8946
CALL DFILL(dimc,0.0d0,dbl_mb(k_c_sort),1)
8947
DO p6b = noab+1,noab+nvab
8948
IF (int_mb(k_spin+p6b-1) .eq. int_mb(k_spin+h1b-1)) THEN
8949
IF (ieor(int_mb(k_sym+p6b-1),int_mb(k_sym+h1b-1)) .eq. irrep_t) TH
8951
CALL TCE_RESTRICTED_2(p6b,h1b,p6b_1,h1b_1)
8952
CALL TCE_RESTRICTED_4(p3b,h5b,h2b,p6b,p3b_2,h5b_2,h2b_2,p6b_2)
8953
dim_common = int_mb(k_range+p6b-1)
8954
dima_sort = int_mb(k_range+h1b-1)
8955
dima = dim_common * dima_sort
8956
dimb_sort = int_mb(k_range+p3b-1) * int_mb(k_range+h5b-1) * int_mb
8958
dimb = dim_common * dimb_sort
8959
IF ((dima .gt. 0) .and. (dimb .gt. 0)) THEN
8960
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a_sort,k_a_sort)) CALL
8961
& ERRQUIT('vt1ic_1_2',1,MA_ERR)
8962
IF (.not.MA_PUSH_GET(mt_dbl,dima,'noname',l_a,k_a)) CALL ERRQUIT('
8963
&vt1ic_1_2',2,MA_ERR)
8964
CALL GET_HASH_BLOCK_MA(dbl_mb(d_a),dbl_mb(k_a),dima,
8965
& int_mb(k_a_offset),(h1b_1
8966
& - 1 + noab * (p6b_1 - noab - 1)))
8967
CALL TCE_SORT_2(dbl_mb(k_a),dbl_mb(k_a_sort),int_mb(k_range+p6b-1)
8968
&,int_mb(k_range+h1b-1),2,1,1.0d0)
8969
IF (.not.MA_POP_STACK(l_a)) CALL ERRQUIT('vt1ic_1_2',3,MA_ERR)
8970
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b_sort,k_b_sort)) CALL
8971
& ERRQUIT('vt1ic_1_2',4,MA_ERR)
8972
IF (.not.MA_PUSH_GET(mt_dbl,dimb,'noname',l_b,k_b)) CALL ERRQUIT('
8973
&vt1ic_1_2',5,MA_ERR)
8974
IF ((h5b .le. p3b) .and. (h2b .le. p6b)) THEN
8975
if(.not.intorb) then
8976
CALL GET_HASH_BLOCK(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),(p6b_2
8977
& - 1 + (noab+nvab) * (h2b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
8978
&+nvab) * (h5b_2 - 1)))))
8980
CALL GET_HASH_BLOCK_I(d_b,dbl_mb(k_b),dimb,int_mb(k_b_offset),
8982
& - 1 + (noab+nvab) * (h2b_2 - 1 + (noab+nvab) * (p3b_2 - 1 + (noab
8983
&+nvab) * (h5b_2 - 1)))),p6b_2,h2b_2,p3b_2,h5b_2)
8985
CALL TCE_SORT_4(dbl_mb(k_b),dbl_mb(k_b_sort),int_mb(k_range+h5b-1)
8986
&,int_mb(k_range+p3b-1),int_mb(k_range+h2b-1),int_mb(k_range+p6b-1)
8989
IF (.not.MA_POP_STACK(l_b)) CALL ERRQUIT('vt1ic_1_2',6,MA_ERR)
8990
CALL DGEMM('T','N',dima_sort,dimb_sort,dim_common,1.0d0,dbl_mb(k_a
8991
&_sort),dim_common,dbl_mb(k_b_sort),dim_common,1.0d0,dbl_mb(k_c_sor
8993
IF (.not.MA_POP_STACK(l_b_sort)) CALL ERRQUIT('vt1ic_1_2',7,MA_ERR
8995
IF (.not.MA_POP_STACK(l_a_sort)) CALL ERRQUIT('vt1ic_1_2',8,MA_ERR
9001
IF (.not.MA_PUSH_GET(mt_dbl,dimc,'noname',l_c,k_c)) CALL ERRQUIT('
9002
&vt1ic_1_2',9,MA_ERR)
9003
IF ((h1b .le. h2b)) THEN
9004
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
9005
&,int_mb(k_range+h5b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
9006
&,3,2,4,1,-2.0d0/1.0d0)
9007
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h2b -
9008
& 1 + noab * (h1b - 1 + noab * (h5b - 1 + noab * (p3b - noab - 1)))
9011
IF ((h2b .le. h1b)) THEN
9012
CALL TCE_SORT_4(dbl_mb(k_c_sort),dbl_mb(k_c),int_mb(k_range+h2b-1)
9013
&,int_mb(k_range+h5b-1),int_mb(k_range+p3b-1),int_mb(k_range+h1b-1)
9014
&,3,2,1,4,2.0d0/1.0d0)
9015
CALL ADD_HASH_BLOCK(d_c,dbl_mb(k_c),dimc,int_mb(k_c_offset),(h1b -
9016
& 1 + noab * (h2b - 1 + noab * (h5b - 1 + noab * (p3b - noab - 1)))
9019
IF (.not.MA_POP_STACK(l_c)) CALL ERRQUIT('vt1ic_1_2',10,MA_ERR)
9020
IF (.not.MA_POP_STACK(l_c_sort)) CALL ERRQUIT('vt1ic_1_2',11,MA_ER
9025
cc next = NXTVAL(nprocs)
9026
c old way next = NXTASK(nprocs, 1)
9028
call nxt_ctx_next(ctx, icounter, next)
9036
cc next = NXTVAL(-nprocs)
9037
c old way next = NXTASK(-nprocs, 1)
9038
c old way call GA_SYNC()