diff --git a/src/casscf/bielec_natorb.irp.f b/src/casscf/bielec_natorb.irp.f index ca1c8e9d..53d74e14 100644 --- a/src/casscf/bielec_natorb.irp.f +++ b/src/casscf/bielec_natorb.irp.f @@ -1,4 +1,4 @@ - BEGIN_PROVIDER [real*8, bielec_PQxx_no, (mo_num, mo_num,n_core_orb+n_act_orb,n_core_orb+n_act_orb)] + BEGIN_PROVIDER [real*8, bielec_PQxx_no, (mo_num, mo_num,n_core_inact_orb+n_act_orb,n_core_inact_orb+n_act_orb)] BEGIN_DOC ! integral (pq|xx) in the basis of natural MOs ! indices are unshifted orbital numbers @@ -10,8 +10,8 @@ bielec_PQxx_no(:,:,:,:) = bielec_PQxx(:,:,:,:) do j=1,mo_num - do k=1,n_core_orb+n_act_orb - do l=1,n_core_orb+n_act_orb + do k=1,n_core_inact_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do @@ -29,8 +29,8 @@ end do ! 2nd quarter do j=1,mo_num - do k=1,n_core_orb+n_act_orb - do l=1,n_core_orb+n_act_orb + do k=1,n_core_inact_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do @@ -49,18 +49,18 @@ ! 3rd quarter do j=1,mo_num do k=1,mo_num - do l=1,n_core_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do do p=1,n_act_orb pp=n_act_orb-p+1 do q=1,n_act_orb - d(pp)+=bielec_PQxx_no(j,k,n_core_orb+q,l)*natorbsCI(q,p) + d(pp)+=bielec_PQxx_no(j,k,n_core_inact_orb+q,l)*natorbsCI(q,p) end do end do do p=1,n_act_orb - bielec_PQxx_no(j,k,n_core_orb+p,l)=d(p) + bielec_PQxx_no(j,k,n_core_inact_orb+p,l)=d(p) end do end do end do @@ -68,18 +68,18 @@ ! 4th quarter do j=1,mo_num do k=1,mo_num - do l=1,n_core_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do do p=1,n_act_orb pp=n_act_orb-p+1 do q=1,n_act_orb - d(pp)+=bielec_PQxx_no(j,k,l,n_core_orb+q)*natorbsCI(q,p) + d(pp)+=bielec_PQxx_no(j,k,l,n_core_inact_orb+q)*natorbsCI(q,p) end do end do do p=1,n_act_orb - bielec_PQxx_no(j,k,l,n_core_orb+p)=d(p) + bielec_PQxx_no(j,k,l,n_core_inact_orb+p)=d(p) end do end do end do @@ -89,7 +89,7 @@ END_PROVIDER -BEGIN_PROVIDER [real*8, bielec_PxxQ_no, (mo_num,n_core_orb+n_act_orb,n_core_orb+n_act_orb, mo_num)] +BEGIN_PROVIDER [real*8, bielec_PxxQ_no, (mo_num,n_core_inact_orb+n_act_orb,n_core_inact_orb+n_act_orb, mo_num)] BEGIN_DOC ! integral (px|xq) in the basis of natural MOs ! indices are unshifted orbital numbers @@ -101,8 +101,8 @@ BEGIN_PROVIDER [real*8, bielec_PxxQ_no, (mo_num,n_core_orb+n_act_orb,n_core_orb+ bielec_PxxQ_no(:,:,:,:) = bielec_PxxQ(:,:,:,:) do j=1,mo_num - do k=1,n_core_orb+n_act_orb - do l=1,n_core_orb+n_act_orb + do k=1,n_core_inact_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do @@ -120,8 +120,8 @@ BEGIN_PROVIDER [real*8, bielec_PxxQ_no, (mo_num,n_core_orb+n_act_orb,n_core_orb+ end do ! 2nd quarter do j=1,mo_num - do k=1,n_core_orb+n_act_orb - do l=1,n_core_orb+n_act_orb + do k=1,n_core_inact_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do @@ -140,18 +140,18 @@ BEGIN_PROVIDER [real*8, bielec_PxxQ_no, (mo_num,n_core_orb+n_act_orb,n_core_orb+ ! 3rd quarter do j=1,mo_num do k=1,mo_num - do l=1,n_core_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do do p=1,n_act_orb pp=n_act_orb-p+1 do q=1,n_act_orb - d(pp)+=bielec_PxxQ_no(j,n_core_orb+q,l,k)*natorbsCI(q,p) + d(pp)+=bielec_PxxQ_no(j,n_core_inact_orb+q,l,k)*natorbsCI(q,p) end do end do do p=1,n_act_orb - bielec_PxxQ_no(j,n_core_orb+p,l,k)=d(p) + bielec_PxxQ_no(j,n_core_inact_orb+p,l,k)=d(p) end do end do end do @@ -159,18 +159,18 @@ BEGIN_PROVIDER [real*8, bielec_PxxQ_no, (mo_num,n_core_orb+n_act_orb,n_core_orb+ ! 4th quarter do j=1,mo_num do k=1,mo_num - do l=1,n_core_orb+n_act_orb + do l=1,n_core_inact_orb+n_act_orb do p=1,n_act_orb d(p)=0.D0 end do do p=1,n_act_orb pp=n_act_orb-p+1 do q=1,n_act_orb - d(pp)+=bielec_PxxQ_no(j,l,n_core_orb+q,k)*natorbsCI(q,p) + d(pp)+=bielec_PxxQ_no(j,l,n_core_inact_orb+q,k)*natorbsCI(q,p) end do end do do p=1,n_act_orb - bielec_PxxQ_no(j,l,n_core_orb+p,k)=d(p) + bielec_PxxQ_no(j,l,n_core_inact_orb+p,k)=d(p) end do end do end do diff --git a/src/casscf/gradient.irp.f b/src/casscf/gradient.irp.f index 883a4665..00340a92 100644 --- a/src/casscf/gradient.irp.f +++ b/src/casscf/gradient.irp.f @@ -5,7 +5,7 @@ BEGIN_PROVIDER [ integer, nMonoEx ] ! Number of single excitations END_DOC implicit none - nMonoEx=n_core_orb*n_act_orb+n_core_orb*n_virt_orb+n_act_orb*n_virt_orb + nMonoEx=n_core_inact_orb*n_act_orb+n_core_inact_orb*n_virt_orb+n_act_orb*n_virt_orb END_PROVIDER BEGIN_PROVIDER [integer, excit, (2,nMonoEx)] @@ -17,8 +17,8 @@ END_PROVIDER implicit none integer :: i,t,a,ii,tt,aa,indx indx=0 - do ii=1,n_core_orb - i=list_core(ii) + do ii=1,n_core_inact_orb + i=list_core_inact(ii) do tt=1,n_act_orb t=list_act(tt) indx+=1 @@ -28,8 +28,8 @@ END_PROVIDER end do end do - do ii=1,n_core_orb - i=list_core(ii) + do ii=1,n_core_inact_orb + i=list_core_inact(ii) do aa=1,n_virt_orb a=list_virt(aa) indx+=1 @@ -145,14 +145,14 @@ BEGIN_PROVIDER [real*8, gradvec2, (nMonoEx)] real*8 :: norm_grad indx=0 - do i=1,n_core_orb + do i=1,n_core_inact_orb do t=1,n_act_orb indx+=1 gradvec2(indx)=gradvec_it(i,t) end do end do - do i=1,n_core_orb + do i=1,n_core_inact_orb do a=1,n_virt_orb indx+=1 gradvec2(indx)=gradvec_ia(i,a) @@ -181,7 +181,7 @@ END_PROVIDER real*8 function gradvec_it(i,t) BEGIN_DOC - ! the orbital gradient core -> active + ! the orbital gradient core/inactive -> active ! we assume natural orbitals END_DOC implicit none @@ -190,16 +190,16 @@ real*8 function gradvec_it(i,t) integer :: ii,tt,v,vv,x,y integer :: x3,y3 - ii=list_core(i) + ii=list_core_inact(i) tt=list_act(t) gradvec_it=2.D0*(Fipq(tt,ii)+Fapq(tt,ii)) gradvec_it-=occnum(tt)*Fipq(ii,tt) do v=1,n_act_orb vv=list_act(v) do x=1,n_act_orb - x3=x+n_core_orb + x3=x+n_core_inact_orb do y=1,n_act_orb - y3=y+n_core_orb + y3=y+n_core_inact_orb gradvec_it-=2.D0*P0tuvx_no(t,v,x,y)*bielec_PQxx_no(ii,vv,x3,y3) end do end do @@ -209,12 +209,12 @@ end function gradvec_it real*8 function gradvec_ia(i,a) BEGIN_DOC - ! the orbital gradient core -> virtual + ! the orbital gradient core/inactive -> virtual END_DOC implicit none integer :: i,a,ii,aa - ii=list_core(i) + ii=list_core_inact(i) aa=list_virt(a) gradvec_ia=2.D0*(Fipq(aa,ii)+Fapq(aa,ii)) gradvec_ia*=2.D0 diff --git a/src/casscf/hessian.irp.f b/src/casscf/hessian.irp.f index e047c5fd..75a27410 100644 --- a/src/casscf/hessian.irp.f +++ b/src/casscf/hessian.irp.f @@ -204,10 +204,10 @@ BEGIN_PROVIDER [real*8, hessmat2, (nMonoEx,nMonoEx)] endif indx=1 - do i=1,n_core_orb + do i=1,n_core_inact_orb do t=1,n_act_orb jndx=indx - do j=i,n_core_orb + do j=i,n_core_inact_orb if (i.eq.j) then ustart=t else @@ -219,7 +219,7 @@ BEGIN_PROVIDER [real*8, hessmat2, (nMonoEx,nMonoEx)] jndx+=1 end do end do - do j=1,n_core_orb + do j=1,n_core_inact_orb do a=1,n_virt_orb hessmat2(indx,jndx)=hessmat_itja(i,t,j,a) hessmat2(jndx,indx)=hessmat2(indx,jndx) @@ -237,10 +237,10 @@ BEGIN_PROVIDER [real*8, hessmat2, (nMonoEx,nMonoEx)] end do end do - do i=1,n_core_orb + do i=1,n_core_inact_orb do a=1,n_virt_orb jndx=indx - do j=i,n_core_orb + do j=i,n_core_inact_orb if (i.eq.j) then bstart=a else @@ -286,7 +286,7 @@ END_PROVIDER real*8 function hessmat_itju(i,t,j,u) BEGIN_DOC - ! the orbital hessian for core->act,core->act + ! the orbital hessian for core/inactive -> active, core/inactive -> active ! i, t, j, u are list indices, the corresponding orbitals are ii,tt,jj,uu ! ! we assume natural orbitals @@ -295,7 +295,7 @@ real*8 function hessmat_itju(i,t,j,u) integer :: i,t,j,u,ii,tt,uu,v,vv,x,xx,y,jj real*8 :: term,t2 - ii=list_core(i) + ii=list_core_inact(i) tt=list_act(t) if (i.eq.j) then if (t.eq.u) then @@ -343,7 +343,7 @@ real*8 function hessmat_itju(i,t,j,u) end if else ! it/ju - jj=list_core(j) + jj=list_core_inact(j) uu=list_act(u) if (t.eq.u) then term=occnum(tt)*Fipq(ii,jj) @@ -374,16 +374,16 @@ end function hessmat_itju real*8 function hessmat_itja(i,t,j,a) BEGIN_DOC - ! the orbital hessian for core->act,core->virt + ! the orbital hessian for core/inactive -> active, core/inactive -> virtual END_DOC implicit none integer :: i,t,j,a,ii,tt,jj,aa,v,vv,x,y real*8 :: term ! it/ja - ii=list_core(i) + ii=list_core_inact(i) tt=list_act(t) - jj=list_core(j) + jj=list_core_inact(j) aa=list_virt(a) term=2.D0*(4.D0*bielec_pxxq_no(aa,j,i,tt) & -bielec_pqxx_no(aa,tt,i,j) -bielec_pxxq_no(aa,i,j,tt)) @@ -407,17 +407,17 @@ end function hessmat_itja real*8 function hessmat_itua(i,t,u,a) BEGIN_DOC - ! the orbital hessian for core->act,act->virt + ! the orbital hessian for core/inactive -> active, active -> virtual END_DOC implicit none integer :: i,t,u,a,ii,tt,uu,aa,v,vv,x,xx,u3,t3,v3 real*8 :: term - ii=list_core(i) + ii=list_core_inact(i) tt=list_act(t) - t3=t+n_core_orb + t3=t+n_core_inact_orb uu=list_act(u) - u3=u+n_core_orb + u3=u+n_core_inact_orb aa=list_virt(a) if (t.eq.u) then term=-occnum(tt)*Fipq(aa,ii) @@ -428,11 +428,11 @@ real*8 function hessmat_itua(i,t,u,a) +bielec_pxxq_no(aa,t3,u3,ii)) do v=1,n_act_orb vv=list_act(v) - v3=v+n_core_orb + v3=v+n_core_inact_orb do x=1,n_act_orb integer :: x3 xx=list_act(x) - x3=x+n_core_orb + x3=x+n_core_inact_orb term-=2.D0*(P0tuvx_no(t,u,v,x)*bielec_pqxx_no(aa,ii,v3,x3) & +(P0tuvx_no(t,v,u,x)+P0tuvx_no(t,v,x,u)) & *bielec_pqxx_no(aa,xx,v3,i)) @@ -448,13 +448,13 @@ end function hessmat_itua real*8 function hessmat_iajb(i,a,j,b) BEGIN_DOC - ! the orbital hessian for core->virt,core->virt + ! the orbital hessian for core/inactive -> virtual, core/inactive -> virtual END_DOC implicit none integer :: i,a,j,b,ii,aa,jj,bb real*8 :: term - ii=list_core(i) + ii=list_core_inact(i) aa=list_virt(a) if (i.eq.j) then if (a.eq.b) then @@ -469,7 +469,7 @@ real*8 function hessmat_iajb(i,a,j,b) end if else ! ia/jb - jj=list_core(j) + jj=list_core_inact(j) bb=list_virt(b) term=2.D0*(4.D0*bielec_pxxq_no(aa,i,j,bb)-bielec_pqxx_no(aa,bb,i,j) & -bielec_pxxq_no(aa,j,i,bb)) @@ -484,17 +484,17 @@ end function hessmat_iajb real*8 function hessmat_iatb(i,a,t,b) BEGIN_DOC - ! the orbital hessian for core->virt,act->virt + ! the orbital hessian for core/inactive -> virtual, active -> virtual END_DOC implicit none integer :: i,a,t,b,ii,aa,tt,bb,v,vv,x,y,v3,t3 real*8 :: term - ii=list_core(i) + ii=list_core_inact(i) aa=list_virt(a) tt=list_act(t) bb=list_virt(b) - t3=t+n_core_orb + t3=t+n_core_inact_orb term=occnum(tt)*(4.D0*bielec_pxxq_no(aa,i,t3,bb)-bielec_pxxq_no(aa,t3,i,bb)& -bielec_pqxx_no(aa,bb,i,t3)) if (a.eq.b) then @@ -533,10 +533,10 @@ real*8 function hessmat_taub(t,a,u,b) t1-=occnum(tt)*Fipq(tt,tt) do v=1,n_act_orb vv=list_act(v) - v3=v+n_core_orb + v3=v+n_core_inact_orb do x=1,n_act_orb xx=list_act(x) - x3=x+n_core_orb + x3=x+n_core_inact_orb t2+=2.D0*(P0tuvx_no(t,t,v,x)*bielec_pqxx_no(aa,aa,v3,x3) & +(P0tuvx_no(t,x,v,t)+P0tuvx_no(t,x,t,v))* & bielec_pxxq_no(aa,x3,v3,aa)) @@ -552,10 +552,10 @@ real*8 function hessmat_taub(t,a,u,b) term=occnum(tt)*Fipq(aa,bb) do v=1,n_act_orb vv=list_act(v) - v3=v+n_core_orb + v3=v+n_core_inact_orb do x=1,n_act_orb xx=list_act(x) - x3=x+n_core_orb + x3=x+n_core_inact_orb term+=2.D0*(P0tuvx_no(t,t,v,x)*bielec_pqxx_no(aa,bb,v3,x3) & +(P0tuvx_no(t,x,v,t)+P0tuvx_no(t,x,t,v)) & *bielec_pxxq_no(aa,x3,v3,bb)) @@ -569,10 +569,10 @@ real*8 function hessmat_taub(t,a,u,b) term=0.D0 do v=1,n_act_orb vv=list_act(v) - v3=v+n_core_orb + v3=v+n_core_inact_orb do x=1,n_act_orb xx=list_act(x) - x3=x+n_core_orb + x3=x+n_core_inact_orb term+=2.D0*(P0tuvx_no(t,u,v,x)*bielec_pqxx_no(aa,bb,v3,x3) & +(P0tuvx_no(t,x,v,u)+P0tuvx_no(t,x,u,v)) & *bielec_pxxq_no(aa,x3,v3,bb)) @@ -606,14 +606,14 @@ BEGIN_PROVIDER [real*8, hessdiag, (nMonoEx)] real*8 :: hessmat_itju,hessmat_iajb,hessmat_taub indx=0 - do i=1,n_core_orb + do i=1,n_core_inact_orb do t=1,n_act_orb indx+=1 hessdiag(indx)=hessmat_itju(i,t,i,t) end do end do - do i=1,n_core_orb + do i=1,n_core_inact_orb do a=1,n_virt_orb indx+=1 hessdiag(indx)=hessmat_iajb(i,a,i,a) diff --git a/src/casscf/mcscf_fock.irp.f b/src/casscf/mcscf_fock.irp.f index 84b87248..e4568405 100644 --- a/src/casscf/mcscf_fock.irp.f +++ b/src/casscf/mcscf_fock.irp.f @@ -12,8 +12,8 @@ BEGIN_PROVIDER [real*8, Fipq, (mo_num,mo_num) ] end do ! the inactive Fock matrix - do k=1,n_core_orb - kk=list_core(k) + do k=1,n_core_inact_orb + kk=list_core_inact(k) do q=1,mo_num do p=1,mo_num Fipq(p,q)+=2.D0*bielec_pqxx_no(p,q,k,k) -bielec_pxxq_no(p,k,k,q) diff --git a/src/casscf/natorb.irp.f b/src/casscf/natorb.irp.f index 52cd3747..dcbcd413 100644 --- a/src/casscf/natorb.irp.f +++ b/src/casscf/natorb.irp.f @@ -6,8 +6,8 @@ integer :: i occnum=0.D0 - do i=1,n_core_orb - occnum(list_core(i))=2.D0 + do i=1,n_core_inact_orb + occnum(list_core_inact(i))=2.D0 end do do i=1,n_act_orb diff --git a/src/casscf/neworbs.irp.f b/src/casscf/neworbs.irp.f index f4319485..5cb423d6 100644 --- a/src/casscf/neworbs.irp.f +++ b/src/casscf/neworbs.irp.f @@ -122,8 +122,8 @@ BEGIN_PROVIDER [real*8, Umat, (mo_num,mo_num) ] ! the orbital rotation matrix T Tmat(:,:)=0.D0 indx=1 - do i=1,n_core_orb - ii=list_core(i) + do i=1,n_core_inact_orb + ii=list_core_inact(i) do t=1,n_act_orb tt=list_act(t) indx+=1 @@ -131,8 +131,8 @@ BEGIN_PROVIDER [real*8, Umat, (mo_num,mo_num) ] Tmat(tt,ii)=-SXvector(indx) end do end do - do i=1,n_core_orb - ii=list_core(i) + do i=1,n_core_inact_orb + ii=list_core_inact(i) do a=1,n_virt_orb aa=list_virt(a) indx+=1 diff --git a/src/casscf/tot_en.irp.f b/src/casscf/tot_en.irp.f index ce787232..1d70e087 100644 --- a/src/casscf/tot_en.irp.f +++ b/src/casscf/tot_en.irp.f @@ -10,19 +10,19 @@ real*8 :: e_one_all,e_two_all e_one_all=0.D0 e_two_all=0.D0 - do i=1,n_core_orb - ii=list_core(i) + do i=1,n_core_inact_orb + ii=list_core_inact(i) e_one_all+=2.D0*mo_one_e_integrals(ii,ii) - do j=1,n_core_orb - jj=list_core(j) + do j=1,n_core_inact_orb + jj=list_core_inact(j) e_two_all+=2.D0*bielec_PQxx(ii,ii,j,j)-bielec_PQxx(ii,jj,j,i) end do do t=1,n_act_orb tt=list_act(t) - t3=t+n_core_orb + t3=t+n_core_inact_orb do u=1,n_act_orb uu=list_act(u) - u3=u+n_core_orb + u3=u+n_core_inact_orb e_two_all+=D0tu(t,u)*(2.D0*bielec_PQxx(tt,uu,i,i) & -bielec_PQxx(tt,ii,i,u3)) end do @@ -34,9 +34,9 @@ uu=list_act(u) e_one_all+=D0tu(t,u)*mo_one_e_integrals(tt,uu) do v=1,n_act_orb - v3=v+n_core_orb + v3=v+n_core_inact_orb do x=1,n_act_orb - x3=x+n_core_orb + x3=x+n_core_inact_orb e_two_all +=P0tuvx(t,u,v,x)*bielec_PQxx(tt,uu,v3,x3) end do end do @@ -44,12 +44,12 @@ end do ecore =nuclear_repulsion ecore_bis=nuclear_repulsion - do i=1,n_core_orb - ii=list_core(i) + do i=1,n_core_inact_orb + ii=list_core_inact(i) ecore +=2.D0*mo_one_e_integrals(ii,ii) ecore_bis+=2.D0*mo_one_e_integrals(ii,ii) - do j=1,n_core_orb - jj=list_core(j) + do j=1,n_core_inact_orb + jj=list_core_inact(j) ecore +=2.D0*bielec_PQxx(ii,ii,j,j)-bielec_PQxx(ii,jj,j,i) ecore_bis+=2.D0*bielec_PxxQ(ii,i,j,jj)-bielec_PxxQ(ii,j,j,ii) end do @@ -61,14 +61,14 @@ etwo_ter=0.D0 do t=1,n_act_orb tt=list_act(t) - t3=t+n_core_orb + t3=t+n_core_inact_orb do u=1,n_act_orb uu=list_act(u) - u3=u+n_core_orb + u3=u+n_core_inact_orb eone +=D0tu(t,u)*mo_one_e_integrals(tt,uu) eone_bis+=D0tu(t,u)*mo_one_e_integrals(tt,uu) - do i=1,n_core_orb - ii=list_core(i) + do i=1,n_core_inact_orb + ii=list_core_inact(i) eone +=D0tu(t,u)*(2.D0*bielec_PQxx(tt,uu,i,i) & -bielec_PQxx(tt,ii,i,u3)) eone_bis+=D0tu(t,u)*(2.D0*bielec_PxxQ(tt,u3,i,ii) & @@ -76,10 +76,10 @@ end do do v=1,n_act_orb vv=list_act(v) - v3=v+n_core_orb + v3=v+n_core_inact_orb do x=1,n_act_orb xx=list_act(x) - x3=x+n_core_orb + x3=x+n_core_inact_orb real*8 :: h1,h2,h3 h1=bielec_PQxx(tt,uu,v3,x3) h2=bielec_PxxQ(tt,u3,v3,xx)