From 39d58d9eb5fc46eca629e02733b73775d8b3f887 Mon Sep 17 00:00:00 2001 From: pfloos Date: Wed, 8 Nov 2023 22:59:13 +0100 Subject: [PATCH] AO <-> MO modifs --- src/AOtoMO/MOtoAO_transform_GHF.f90 | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/AOtoMO/MOtoAO_transform_GHF.f90 diff --git a/src/AOtoMO/MOtoAO_transform_GHF.f90 b/src/AOtoMO/MOtoAO_transform_GHF.f90 new file mode 100644 index 0000000..9f91884 --- /dev/null +++ b/src/AOtoMO/MOtoAO_transform_GHF.f90 @@ -0,0 +1,35 @@ +subroutine MOtoAO_transform_GHF(nBas2,nBas,S,Ca,Cb,B,A) + +! Perform MO to AO transformation of a matrix A for a given metric S +! and coefficients c + + implicit none + +! Input variables + + integer,intent(in) :: nBas2 + integer,intent(in) :: nBas + double precision,intent(in) :: S(nBas,nBas) + double precision,intent(in) :: Ca(nBas,nBas2) + double precision,intent(in) :: Cb(nBas,nBas2) + double precision,intent(in) :: B(nBas2,nBas2) + +! Local variables + + double precision,allocatable :: Sc(:,:) + +! Output variables + + double precision,intent(inout):: A(nBas,nBas) + +! Memory allocation + + allocate(Sc(nBas,nBas2)) + + Sc = matmul(S,Ca) + A = matmul(Sc,matmul(B,transpose(Sc))) + + Sc = matmul(S,Cb) + A = A + matmul(Sc,matmul(B,transpose(Sc))) + +end subroutine