NWChem/src/uccsdt/cuccsdtP.fh
Huub Van Dam 28859e64f1 HvD: Added and activated the Id: revision tag to a number of files that not had
any revision number information included before.
2011-10-10 06:35:49 +00:00

152 lines
5.4 KiB
Text

#include "nwc_const.fh"
#include "cbassym.fh"
c
c Internal common/parameters for UCCSDT
c
c Alpha=1, Beta=2
c Irreps numbered 0..7 so that ijsym=ieor(isym,jsym)
c
c The generic information is filled in by uccsdt_init()
c and is cleaned up by uccsdt_tidy().
c
c The triples blocking information is filled in by
c uccsdt_triples_{sub,super}_blocking() and cleaned up by
c uccsdt_triples_sub_blocking_end().
c
integer basis
integer geom
integer g_movecs(2) ! GAs holding the MO vectors
integer k_movecs(2) ! MA offsets for the local MO vectors
integer l_movecs(2) ! MA handles for the local MO vectors
c
integer nsh ! Total no. of AO shells
integer nbf ! Total no. of AO basis functions
integer nmo ! Total no. of MOs (core + occupied + virtual)
integer nact ! Total no. of active MOS (occupied + virtual)
integer nir ! No. of irreducible representations
integer nc(1:2) ! No. of frozen orbitals (same for each spin)
integer no(1:2) ! No. of active occupied for each spin.
integer nv(1:2) ! Ditto for virtuals (no frozen virtuals)
c
c Orbitals are numbered core+occupied+virtual sub-blocked by symmetry.
c
integer nc_sym(0:7,1:2) ! No. of core orbitals of each symmetry & spin
integer no_sym(0:7,1:2) ! Ditto for active occupied
integer nv_sym(0:7,1:2) ! Ditto for virtuals
c
integer c_sym(1:2,0:7,1:2) ! First/last core orbital for given irrep/spin
integer o_sym(1:2,0:7,1:2) ! Ditto for active occupied
integer v_sym(1:2,0:7,1:2) ! Ditto for virtuals
c
integer map(nw_max_nbf_small,1:2) ! Map semi-canonical to sym. blocked
c
double precision eps(nw_max_nbf_small,1:2) ! Eigenvalues for each spin
c
c GA handles for hole/particle matrices
c
integer g_part(2), g_hole(2)
c
c Info about symmetry packed OSO pairs
c Both for full SO range (v) and incomplete SO range (u)
c
integer oso_v_len(0:7,2)
integer oso_v_off(nw_max_nbf_small,0:7,2)
integer oso_u_len(0:7,2)
integer oso_u_off(nw_max_nbf_small,0:7,2)
c
c Info about symmetry packed OV pairs
c
c lenia = ov_len(symia,spini,spina)
c dimension packed(lenia)
c dimension unpacked(ilo:ihi,alo:ahi)
c packed(1 + i-o_sym(1,symi,spini) + ov_off(a,symia,spini,spina))
c . = unpacked(i,a)
c
integer ov_len(0:7,2,2)
integer ov_len_cum(0:7,2,2)
integer ov_off(nw_max_nbf_small+1,0:7,2,2)
c
c t2(spini,spina,spinj,spinb,symjb) is a dense 2D array of dimension
c (ov_len(symia,spini,spina),ov_len(symjb,spinj,spinb)) and begins
c at file_t2_off(spini,spina,spinj,spinb,symjb)
c
integer file_t1_off(2)
integer file_t2_off(2,2,2,2,0:7)
integer t1_len(2)
integer t2_len(2,2) ! t2_len(spini,spinj)
c
c Super-blocking info for the triples
c
integer asuper(2), bsuper(2), csuper(2) ! The current super block ranges
integer asuper_spin, csuper_spin ! Spin of orbital blocks
c
c Sub-blocking info for the triples
c 1=first orbital, 2=last orbital, 3=symmetry of all orbitals in sub-block
c
integer nablock, ablock(1:3,nw_max_nbf_small)
integer nbblock, bblock(1:3,nw_max_nbf_small)
integer ncblock, cblock(1:3,nw_max_nbf_small)
integer noblock(1:2), oblock(1:3,nw_max_nbf_small,1:2)
integer oblock_max, vblock_max ! Maximum size of any occ/virt block
integer e_block_max, m_block_max ! largest no. of virt/occ in any irrep
c
c Invert the orbital index to get a sub-block index
c
integer ablock_inv(nw_max_nbf_small)
integer bblock_inv(nw_max_nbf_small)
integer cblock_inv(nw_max_nbf_small)
integer oblock_inv(nw_max_nbf_small,2)
c
c Integral/amplitude lists for the triples
c 1 = length of pointer array = #block triplets/quartets
c 2 = MA index for pointer array
c 3 = MA handle
c 4 = length of actual global array
c 5 = GA handle for actual array
c 6,7,8,9 = dimensions of the pointer array
c . (note that 1st dimension is unity except for lists 11, 12, 13)
integer listinfo(1:9,23)
character*10 listname(23)
c
logical ocheck ! If true check the integral lists
c
integer aoints_file ! EAF file handle for AO integrals
logical aoints_file_read, aoints_file_write
double precision aoints_file_offset
c
common /cuccsdt/
c
c doubles
c
$ eps, aoints_file_offset,
c
c integers
c
$ basis, geom, g_movecs, k_movecs, l_movecs,
$ nsh, nbf, nmo, nact, nir, nc, no, nv, nc_sym, no_sym, nv_sym,
$ c_sym, o_sym, v_sym, map, ocheck,
$ aoints_file, aoints_file_read, aoints_file_write,
$ ov_len, ov_len_cum, ov_off,
$ file_t1_off, file_t2_off, t1_len, t2_len,
$ g_part, g_hole,
c
$ asuper, bsuper, csuper,
$ asuper_spin, csuper_spin,
$ nablock, nbblock, ncblock, noblock,
$ ablock, bblock, cblock, oblock,
$ ablock_inv, bblock_inv, cblock_inv, oblock_inv,
$ oblock_max, vblock_max,
$ e_block_max, m_block_max,
$ listinfo
c
c characters
c
common /ccuccsdt/ listname
c
c This just temporary stuff for development
c
integer k_t1a, l_t1a, k_t1b, l_t1b
common /cuccsdtfudge/
$ k_t1a, l_t1a, k_t1b, l_t1b
c
c $Id$