1
subroutine ccsd_zitf(basis,nsh,ncor,nocc,nvir,nact,nbf,
2
& t1,z1,hiu,giu,habe,gabe,hia,hz1,
4
& g_t2,g_z2,g_hz2,g_ncoul,g_nexch,tklst)
5
C $Id: ccsd_zitf.F 19708 2010-10-29 18:04:21Z d3y133 $
8
integer basis,nsh,ncor,nocc,nvir,nact,nbf,
9
& idiis,iprt,g_t2,g_z2,g_hz2
10
double precision cmo(*),eorb(*),t1(*),hiu(*),giu(*),habe(*),
11
& gabe(*),hz1(*),hia(*),z1(*)
12
#include "mafdecls.fh"
15
#include "ccsd_debug.fh"
17
integer lnov,g_nt2,g_nz2,g_nhz2,offt2,lnoov,g_jlo,g_jhi,
18
& g_ilo,g_ihi,a,i,j,b,ad1,ad2,lnoo,
19
& l_sa,k_sa,l_sb,k_sb,lsab,
20
& g_ncoul,g_nexch,tklst(nsh*(nsh+1)/2,2)
21
double precision tol2e
33
lsab=max(lnoov,nbf*nbf)
35
stat=stat.and.ma_push_get(MT_DBL,lsab,'sa',l_sa, k_sa)
36
stat=stat.and.ma_push_get(MT_DBL,lsab,'sb',l_sb, k_sb)
37
if (.not.stat)call errquit('ma_push zitf ',0, MA_ERR)
39
c ------------------------------------------------------------
40
c create new GAs with proposed final ordering
41
c ------------------------------------------------------------
42
if (.not.ga_create(MT_DBL,lnov,lnov,'nt2',
44
& call errquit('ga_create g_nt2 failed',0, GA_ERR)
45
if (.not.ga_create(MT_DBL,lnov,lnov,'nz2',
47
& call errquit('ga_create g_nz2 failed',0, GA_ERR)
48
if (.not.ga_create(MT_DBL,lnov,lnov,'nhz2',
50
& call errquit('ga_create g_nhz2 failed',0, GA_ERR)
52
c ------------------------------------------------------------
54
c ------------------------------------------------------------
55
call ga_distribution(g_t2,iam,g_jlo,g_jhi,g_ilo,g_ihi)
57
if (a.ge.g_ilo.and.a.le.g_ihi)then
58
call ga_get(g_t2,1,lnoov,a,a,
63
ad1=k_sa+(b-1)*lnoo+(i-1)*nocc+j-1
64
ad2=k_sb+(j-1)*nvir+b-1
65
dbl_mb(ad2)=dbl_mb(ad1)
69
call ga_put(g_nt2,1,lnov,ad1,ad1,dbl_mb(k_sb),lnov)
74
call ga_distribution(g_z2,iam,g_jlo,g_jhi,g_ilo,g_ihi)
76
if (a.ge.g_ilo.and.a.le.g_ihi)then
77
call ga_get(g_z2,offt2+1,offt2+lnoov,a,a,
82
ad1=k_sa+(b-1)*lnoo+(i-1)*nocc+j-1
83
ad2=k_sb+(j-1)*nvir+b-1
84
dbl_mb(ad2)=dbl_mb(ad1)
88
call ga_put(g_nz2,1,lnov,ad1,ad1,dbl_mb(k_sb),lnov)
95
call ccsd_pzamp(basis,nsh,ncor,nocc,nvir,nact,nbf,
96
& tol2e,cmo,eorb,iprt,hiu,giu,habe,gabe,hia,
97
& t1,z1,hz1,idiis,g_nt2,g_nz2,g_nhz2,
98
& g_ncoul,g_nexch,tklst)
100
call ga_distribution(g_hz2,iam,g_jlo,g_jhi,g_ilo,g_ihi)
102
if (a.ge.g_ilo.and.a.le.g_ihi)then
105
call ga_get(g_nhz2,1,lnov,ad1,ad1,dbl_mb(k_sb),lnov)
108
ad1=k_sa+(b-1)*lnoo+(i-1)*nocc+j-1
109
ad2=k_sb+(j-1)*nvir+b-1
110
dbl_mb(ad1)=dbl_mb(ad2)
114
call ga_acc(g_hz2,offt2+1,offt2+lnoov,a,a,
115
& dbl_mb(k_sa),lnoov,1.0d00)
119
if (.not.ga_destroy(g_nhz2))
120
& call errquit('ga_dest g_nhz2 fail',0, GA_ERR)
121
if (.not.ga_destroy(g_nz2))
122
& call errquit('ga_dest g_nz2 fail',0, GA_ERR)
123
if (.not.ga_destroy(g_nt2))
124
& call errquit('ga_dest g_nt2 fail',0, GA_ERR)
126
stat=stat.and.ma_pop_stack(l_sb)
127
stat=stat.and.ma_pop_stack(l_sa)
128
if (.not.stat)call errquit('ma_pop zitf ',0, MA_ERR)