RotateOrbsMod Module



Contents

Lab LabVirtOrbs LabOccOrbs SymLabelList3_rotInv CoeffCorT2 CoeffUncorT2 Lambdas ArrNew ArrDiagNew TMAT2DTemp TMAT2DRot TMAT2DPartRot01 TMAT2DPartRot02 DerivCoeff UMATTemp01 UMATTemp02 DerivLambda ForceCorrect Correction ShakeLambdaNew ConstraintCor Constraint ShakeLambda DerivConstrT1 DerivConstrT2 DerivConstrT1T2 DerivConstrT1T2Diag FourIndInts TwoIndInts01 TwoIndInts02 ThreeIndInts01 FourIndInts02 ThreeIndInts02 ThreeIndInts03 ThreeIndInts04 DiagTMAT2Dfull TMAT2DNew TwoIndIntsER ThreeIndInts01ER ThreeIndInts02ER FourIndIntsER TwoIndIntsERTag ThreeIndInts01ERTag ThreeIndInts02ERTag FourIndIntsERTag TwoIndInts01Tag TwoIndInts02Tag ThreeIndInts01Tag ThreeIndInts02Tag ThreeIndInts03Tag FourIndInts02Tag ThreeIndInts04Tag UMATTemp02Tag TMAT2DTempTag TMAT2DRotTag TMAT2DPartRot01Tag TMAT2DPartRot02Tag LabTag ForceCorrectTag CorrectionTag FourIndIntsTag ArrDiagNewTag ArrNewTag UMATTemp01Tag ShakeIterInput NoOcc LowBound02 HighBound02 Iteration TotNoConstraints CoeffCorT2Tag CoeffUncorT2Tag LambdasTag DerivCoeffTag DerivLambdaTag ShakeLambdaNewTag ShakeLambdaTag ConstraintTag ConstraintCorTag DerivConstrT1Tag DerivConstrT2Tag DerivConstrT1T2Tag DerivConstrT1T2DiagTag LabVirtOrbsTag LabOccOrbsTag MinOccVirt MaxOccVirt MinMZ MaxMZ error LowBound HighBound NoInts01 NoInts02 NoInts03 NoInts04 NoInts05 NoInts06 DiagTMAT2DfullTag TMAT2DNewTag SymLabelList3_rotInvTag tNotConverged tInitIntValues OrthoNorm ERPotEnergy HijSqrdPotEnergy OffDiagPotEnergy CoulPotEnergy PotEnergy Force TwoEInts DistCs OrthoForce DistLs LambdaMag PEInts PEOrtho ForceInts TotCorrectedForce ijOccVirtPotEnergy EpsilonMin MaxTerm DiagOneElPotInit ERPotInit ijVirtOneElPotInit ijVirtCoulPotInit ijVirtExchPotInit singCoulijVirtInit singExchijVirtInit singCoulconHFInit singExchconHFInit ijklPotInit ijklantisymPotInit ijOccVirtOneElPotInit ijOccVirtCoulPotInit ijOccVirtExchPotInit OrthoFac ROHistSing ROHistOffDiag ROHistDoubExc ROHistER ROHistHijVirt ROHistHijOccVirt ROHistHii ROHistOnePartOrbEn ROHistDCijOcklVir ROHistDEijOcklVir ROHistDCijklVir ROHistDEijklVir ROHistSCikOcjVir ROHistSEikOcjVir ROHistSCkOcijVir ROHistSEkOcijVir ROHistSCijkVir ROHistSEijkVir ROHistSASikOcjVir ROHistSASkOcijVir ROHistSASijkVir ROHistASijklVir ROHistASijOcklVir Rotation_Time FullShake_Time Shake_Time Findtheforce_Time Transform2ElInts_Time findandusetheforce_time CalcDerivConstr_Time TestOrthoConver_Time RefillUMAT_Time PrintROFCIDUMP_Time

Variables

Type Visibility Attributes Name Initial
integer, public, allocatable :: Lab(:,:)
integer, public, allocatable :: LabVirtOrbs(:)
integer, public, allocatable :: LabOccOrbs(:)
integer, public, allocatable :: SymLabelList3_rotInv(:)
real(kind=dp), public, allocatable :: CoeffCorT2(:,:)
real(kind=dp), public, allocatable :: CoeffUncorT2(:,:)
real(kind=dp), public, allocatable :: Lambdas(:,:)
real(kind=dp), public, allocatable :: ArrNew(:,:)
real(kind=dp), public, allocatable :: ArrDiagNew(:)
real(kind=dp), public, allocatable :: TMAT2DTemp(:,:)
real(kind=dp), public, allocatable :: TMAT2DRot(:,:)
real(kind=dp), public, allocatable :: TMAT2DPartRot01(:,:)
real(kind=dp), public, allocatable :: TMAT2DPartRot02(:,:)
real(kind=dp), public, allocatable :: DerivCoeff(:,:)
real(kind=dp), public, allocatable :: UMATTemp01(:,:,:,:)
real(kind=dp), public, allocatable :: UMATTemp02(:,:,:,:)
real(kind=dp), public, allocatable :: DerivLambda(:,:)
real(kind=dp), public, allocatable :: ForceCorrect(:,:)
real(kind=dp), public, allocatable :: Correction(:,:)
real(kind=dp), public, allocatable :: ShakeLambdaNew(:)
real(kind=dp), public, allocatable :: ConstraintCor(:)
real(kind=dp), public, allocatable :: Constraint(:)
real(kind=dp), public, allocatable :: ShakeLambda(:)
real(kind=dp), public, allocatable :: DerivConstrT1(:,:,:)
real(kind=dp), public, allocatable :: DerivConstrT2(:,:,:)
real(kind=dp), public, allocatable :: DerivConstrT1T2(:,:)
real(kind=dp), public, allocatable :: DerivConstrT1T2Diag(:)
real(kind=dp), public, allocatable :: FourIndInts(:,:,:,:)
real(kind=dp), public, allocatable :: TwoIndInts01(:,:,:,:)
real(kind=dp), public, allocatable :: TwoIndInts02(:,:,:,:)
real(kind=dp), public, allocatable :: ThreeIndInts01(:,:,:,:)
real(kind=dp), public, allocatable :: FourIndInts02(:,:,:,:)
real(kind=dp), public, allocatable :: ThreeIndInts02(:,:,:,:)
real(kind=dp), public, allocatable :: ThreeIndInts03(:,:,:,:)
real(kind=dp), public, allocatable :: ThreeIndInts04(:,:,:,:)
real(kind=dp), public, allocatable :: DiagTMAT2Dfull(:)
real(kind=dp), public, allocatable :: TMAT2DNew(:,:)
real(kind=dp), public, allocatable :: TwoIndIntsER(:,:,:)
real(kind=dp), public, allocatable :: ThreeIndInts01ER(:,:)
real(kind=dp), public, allocatable :: ThreeIndInts02ER(:,:)
real(kind=dp), public, allocatable :: FourIndIntsER(:)
integer(kind=TagIntType), public :: TwoIndIntsERTag
integer(kind=TagIntType), public :: ThreeIndInts01ERTag
integer(kind=TagIntType), public :: ThreeIndInts02ERTag
integer(kind=TagIntType), public :: FourIndIntsERTag
integer(kind=TagIntType), public :: TwoIndInts01Tag
integer(kind=TagIntType), public :: TwoIndInts02Tag
integer(kind=TagIntType), public :: ThreeIndInts01Tag
integer(kind=TagIntType), public :: ThreeIndInts02Tag
integer(kind=TagIntType), public :: ThreeIndInts03Tag
integer(kind=TagIntType), public :: FourIndInts02Tag
integer(kind=TagIntType), public :: ThreeIndInts04Tag
integer(kind=TagIntType), public :: UMATTemp02Tag
integer(kind=TagIntType), public :: TMAT2DTempTag
integer(kind=TagIntType), public :: TMAT2DRotTag
integer(kind=TagIntType), public :: TMAT2DPartRot01Tag
integer(kind=TagIntType), public :: TMAT2DPartRot02Tag
integer(kind=TagIntType), public :: LabTag
integer(kind=TagIntType), public :: ForceCorrectTag
integer(kind=TagIntType), public :: CorrectionTag
integer(kind=TagIntType), public :: FourIndIntsTag
integer(kind=TagIntType), public :: ArrDiagNewTag
integer(kind=TagIntType), public :: ArrNewTag
integer(kind=TagIntType), public :: UMATTemp01Tag
integer, public :: ShakeIterInput
integer, public :: NoOcc
integer, public :: LowBound02
integer, public :: HighBound02
integer, public :: Iteration
integer, public :: TotNoConstraints
integer(kind=TagIntType), public :: CoeffCorT2Tag
integer(kind=TagIntType), public :: CoeffUncorT2Tag
integer(kind=TagIntType), public :: LambdasTag
integer(kind=TagIntType), public :: DerivCoeffTag
integer(kind=TagIntType), public :: DerivLambdaTag
integer(kind=TagIntType), public :: ShakeLambdaNewTag
integer(kind=TagIntType), public :: ShakeLambdaTag
integer(kind=TagIntType), public :: ConstraintTag
integer(kind=TagIntType), public :: ConstraintCorTag
integer(kind=TagIntType), public :: DerivConstrT1Tag
integer(kind=TagIntType), public :: DerivConstrT2Tag
integer(kind=TagIntType), public :: DerivConstrT1T2Tag
integer(kind=TagIntType), public :: DerivConstrT1T2DiagTag
integer(kind=TagIntType), public :: LabVirtOrbsTag
integer(kind=TagIntType), public :: LabOccOrbsTag
integer, public :: MinOccVirt
integer, public :: MaxOccVirt
integer, public :: MinMZ
integer, public :: MaxMZ
integer, public :: error
integer, public :: LowBound
integer, public :: HighBound
integer, public :: NoInts01
integer, public :: NoInts02
integer, public :: NoInts03
integer, public :: NoInts04
integer, public :: NoInts05
integer, public :: NoInts06
integer(kind=TagIntType), public :: DiagTMAT2DfullTag
integer(kind=TagIntType), public :: TMAT2DNewTag
integer(kind=TagIntType), public :: SymLabelList3_rotInvTag
logical, public :: tNotConverged
logical, public :: tInitIntValues
real(kind=dp), public :: OrthoNorm
real(kind=dp), public :: ERPotEnergy
real(kind=dp), public :: HijSqrdPotEnergy
real(kind=dp), public :: OffDiagPotEnergy
real(kind=dp), public :: CoulPotEnergy
real(kind=dp), public :: PotEnergy
real(kind=dp), public :: Force
real(kind=dp), public :: TwoEInts
real(kind=dp), public :: DistCs
real(kind=dp), public :: OrthoForce
real(kind=dp), public :: DistLs
real(kind=dp), public :: LambdaMag
real(kind=dp), public :: PEInts
real(kind=dp), public :: PEOrtho
real(kind=dp), public :: ForceInts
real(kind=dp), public :: TotCorrectedForce
real(kind=dp), public :: ijOccVirtPotEnergy
real(kind=dp), public :: EpsilonMin
real(kind=dp), public :: MaxTerm
real(kind=dp), public :: DiagOneElPotInit
real(kind=dp), public :: ERPotInit
real(kind=dp), public :: ijVirtOneElPotInit
real(kind=dp), public :: ijVirtCoulPotInit
real(kind=dp), public :: ijVirtExchPotInit
real(kind=dp), public :: singCoulijVirtInit
real(kind=dp), public :: singExchijVirtInit
real(kind=dp), public :: singCoulconHFInit
real(kind=dp), public :: singExchconHFInit
real(kind=dp), public :: ijklPotInit
real(kind=dp), public :: ijklantisymPotInit
real(kind=dp), public :: ijOccVirtOneElPotInit
real(kind=dp), public :: ijOccVirtCoulPotInit
real(kind=dp), public :: ijOccVirtExchPotInit
real(kind=dp), public :: OrthoFac = 1.0_dp
real(kind=dp), public :: ROHistSing(2,4002)
real(kind=dp), public :: ROHistOffDiag(2,4002)
real(kind=dp), public :: ROHistDoubExc(2,4002)
real(kind=dp), public :: ROHistER(2,4002)
real(kind=dp), public :: ROHistHijVirt(2,4002)
real(kind=dp), public :: ROHistHijOccVirt(2,4002)
real(kind=dp), public :: ROHistHii(2,4002)
real(kind=dp), public :: ROHistOnePartOrbEn(2,4002)
real(kind=dp), public :: ROHistDCijOcklVir(2,4002)
real(kind=dp), public :: ROHistDEijOcklVir(2,4002)
real(kind=dp), public :: ROHistDCijklVir(2,4002)
real(kind=dp), public :: ROHistDEijklVir(2,4002)
real(kind=dp), public :: ROHistSCikOcjVir(2,4002)
real(kind=dp), public :: ROHistSEikOcjVir(2,4002)
real(kind=dp), public :: ROHistSCkOcijVir(2,4002)
real(kind=dp), public :: ROHistSEkOcijVir(2,4002)
real(kind=dp), public :: ROHistSCijkVir(2,4002)
real(kind=dp), public :: ROHistSEijkVir(2,4002)
real(kind=dp), public :: ROHistSASikOcjVir(2,4002)
real(kind=dp), public :: ROHistSASkOcijVir(2,4002)
real(kind=dp), public :: ROHistSASijkVir(2,4002)
real(kind=dp), public :: ROHistASijklVir(2,4002)
real(kind=dp), public :: ROHistASijOcklVir(2,4002)
type(timer), public, save :: Rotation_Time
type(timer), public, save :: FullShake_Time
type(timer), public, save :: Shake_Time
type(timer), public, save :: Findtheforce_Time
type(timer), public, save :: Transform2ElInts_Time
type(timer), public, save :: findandusetheforce_time
type(timer), public, save :: CalcDerivConstr_Time
type(timer), public, save :: TestOrthoConver_Time
type(timer), public, save :: RefillUMAT_Time
type(timer), public, save :: PrintROFCIDUMP_Time

Subroutines

public subroutine RotateOrbs()

Arguments

None

public subroutine FindNatOrbitals()

Arguments

None

public subroutine ReTruncROFciDump()

Arguments

None

public subroutine ApproxMemReq()

Arguments

None

public subroutine WriteTransformMat()

Arguments

None

public subroutine InitLocalOrbs()

Arguments

None

public subroutine InitRotCalc()

Arguments

None

public subroutine CopyAcrossUMAT()

Arguments

None

public subroutine WriteStats()

Arguments

None

public subroutine InitSymmArrays()

Arguments

None

public subroutine EquateDiagFock()

Arguments

None

public subroutine InitOrbitalSeparation()

Second fill SymLabelCounts2_rot. - the first 8 places of SymLabelCounts2_rot(1,:) and SymLabelCounts2_rot(2,:) refer to the occupied orbitals - and the second 8 to the virtuals.

Read more…

Arguments

None

public subroutine Diagonalizehij()

Arguments

None

public subroutine ZeroOccVirtElements(Coeff)

Arguments

Type IntentOptional Attributes Name
real(kind=dp) :: Coeff(NoOrbs,NoOrbs)

public subroutine FindNewOrbs()

Arguments

None

public subroutine Transform2ElInts()

Arguments

None

public subroutine Transform2ElIntsMemSave()

Arguments

None

public subroutine Transform2ElIntsERlocal()

Arguments

None

public subroutine CalcPotentials()

Arguments

None

public subroutine FindTheForce()

Arguments

None

public subroutine UseTheForce()

Arguments

None

public subroutine TestOrthonormality()

Arguments

None

public subroutine TestForConvergence()

Arguments

None

public subroutine ShakeConstraints()

Arguments

None

public subroutine CalcDerivConstr(CurrCoeff, DerivConstr)

Arguments

Type IntentOptional Attributes Name
real(kind=dp) :: CurrCoeff(NoOrbs,NoOrbs)
real(kind=dp) :: DerivConstr(NoOrbs,NoOrbs,TotNoConstraints)

public subroutine FindandUsetheForce(TotForce, TotDiffCoeffs, CoeffT2)

Arguments

Type IntentOptional Attributes Name
real(kind=dp) :: TotForce
real(kind=dp) :: TotDiffCoeffs
real(kind=dp) :: CoeffT2(NoOrbs,NoOrbs)

public subroutine CalcConstraints(CurrCoeff, Constraint, TotConstraints)

Arguments

Type IntentOptional Attributes Name
real(kind=dp) :: CurrCoeff(NoOrbs,NoOrbs)
real(kind=dp) :: Constraint(TotNoConstraints)
real(kind=dp) :: TotConstraints

public subroutine FullShake()

Arguments

None

public subroutine ShakeApproximation()

Arguments

None

public subroutine UpdateLambdas()

Arguments

None

public subroutine TestShakeConvergence(ConvergeCount, TotCorConstraints, ShakeIteration, tShakeNotConverged)

Arguments

Type IntentOptional Attributes Name
integer :: ConvergeCount
real(kind=dp) :: TotCorConstraints
integer :: ShakeIteration
logical :: tShakeNotConverged

public subroutine FinalizeNewOrbs()

Arguments

None

public subroutine WriteSingHisttofile()

Arguments

None

public subroutine WriteDoubHisttofile()

Arguments

None

public subroutine PrintIntegrals()

Arguments

None

public subroutine CalcFOCKMatrix()

Arguments

None

public subroutine RefillUMATandTMAT2D()

Arguments

None

public subroutine PrintROFCIDUMP()

Arguments

None

public subroutine PrintRepeatROFCIDUMP()

Arguments

None

public subroutine DeallocateMem()

Arguments

None