4
1
mirror of https://github.com/pfloos/quack synced 2024-06-02 03:15:31 +02:00
quack/src/QuAcK/read_methods.f90

171 lines
4.3 KiB
Fortran
Raw Normal View History

2020-10-13 13:44:24 +02:00
subroutine read_methods(doRHF,doUHF,doKS,doMOM, &
2020-03-21 22:50:43 +01:00
doMP2,doMP3,doMP2F12, &
2020-12-04 13:26:08 +01:00
doCCD,doDCD,doCCSD,doCCSDT, &
2020-03-21 22:50:43 +01:00
do_drCCD,do_rCCD,do_lCCD,do_pCCD, &
doCIS,doCIS_D,doCID,doCISD, &
2020-04-20 12:28:19 +02:00
doRPA,doRPAx,doppRPA, &
2021-03-05 22:34:48 +01:00
doG0F2,doevGF2,doqsGF2, &
doG0F3,doevGF3, &
2020-03-21 22:50:43 +01:00
doG0W0,doevGW,doqsGW, &
doG0T0,doevGT,doqsGT, &
2019-03-19 10:13:33 +01:00
doMCMP2)
! Read desired methods
implicit none
! Input variables
2020-10-13 13:44:24 +02:00
logical,intent(out) :: doRHF,doUHF,doKS,doMOM
2019-03-19 10:13:33 +01:00
logical,intent(out) :: doMP2,doMP3,doMP2F12
2020-12-04 13:26:08 +01:00
logical,intent(out) :: doCCD,doDCD,doCCSD,doCCSDT
2020-03-21 22:50:43 +01:00
logical,intent(out) :: do_drCCD,do_rCCD,do_lCCD,do_pCCD
logical,intent(out) :: doCIS,doCIS_D,doCID,doCISD
2020-04-20 12:28:19 +02:00
logical,intent(out) :: doRPA,doRPAx,doppRPA
2021-03-05 22:34:48 +01:00
logical,intent(out) :: doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3
2019-03-19 10:13:33 +01:00
logical,intent(out) :: doG0W0,doevGW,doqsGW
2019-10-16 18:14:47 +02:00
logical,intent(out) :: doG0T0,doevGT,doqsGT
2019-03-19 10:13:33 +01:00
logical,intent(out) :: doMCMP2
! Local variables
2020-03-21 22:50:43 +01:00
character(len=1) :: answer1,answer2,answer3,answer4,answer5,answer6,answer7
2019-03-19 10:13:33 +01:00
! Open file with method specification
open(unit=1,file='input/methods')
! Set all the booleans to false
doRHF = .false.
doUHF = .false.
2020-10-13 13:44:24 +02:00
doKS = .false.
2019-03-19 10:13:33 +01:00
doMOM = .false.
doMP2 = .false.
doMP3 = .false.
doMP2F12 = .false.
doCCD = .false.
2020-12-04 13:26:08 +01:00
doDCD = .false.
2019-03-19 10:13:33 +01:00
doCCSD = .false.
doCCSDT = .false.
2020-03-21 22:50:43 +01:00
do_drCCD = .false.
do_rCCD = .false.
do_lCCD = .false.
do_pCCD = .false.
2020-01-14 14:44:01 +01:00
2019-10-05 23:32:17 +02:00
doCIS = .false.
doCIS_D = .false.
2020-04-20 12:28:19 +02:00
doCID = .false.
doCISD = .false.
2020-01-13 23:08:03 +01:00
doRPA = .false.
2020-01-14 19:53:52 +01:00
doRPAx = .false.
2019-10-05 23:32:17 +02:00
doppRPA = .false.
2019-03-19 10:13:33 +01:00
2020-03-19 10:21:18 +01:00
doG0F2 = .false.
doevGF2 = .false.
2021-03-05 22:34:48 +01:00
doqsGF2 = .false.
2020-03-19 10:21:18 +01:00
doG0F3 = .false.
doevGF3 = .false.
2019-03-19 10:13:33 +01:00
doG0W0 = .false.
2019-10-16 18:14:47 +02:00
doevGT = .false.
doqsGT = .false.
doG0T0 = .false.
2019-03-19 10:13:33 +01:00
doevGW = .false.
doqsGW = .false.
doMCMP2 = .false.
! Read mean-field methods
read(1,*)
2020-10-13 13:44:24 +02:00
read(1,*) answer1,answer2,answer3,answer4
2019-03-19 10:13:33 +01:00
if(answer1 == 'T') doRHF = .true.
if(answer2 == 'T') doUHF = .true.
2020-10-13 13:44:24 +02:00
if(answer3 == 'T') doKS = .true.
if(answer4 == 'T') doMOM = .true.
2019-03-19 10:13:33 +01:00
! Read MPn methods
read(1,*)
read(1,*) answer1,answer2,answer3
if(answer1 == 'T') doMP2 = .true.
if(answer2 == 'T') doMP3 = .true.
if(answer3 == 'T') doMP2F12 = .true.
! Read CC methods
read(1,*)
2020-12-04 13:26:08 +01:00
read(1,*) answer1,answer2,answer3,answer4
2020-03-21 22:50:43 +01:00
if(answer1 == 'T') doCCD = .true.
2020-12-04 13:26:08 +01:00
if(answer2 == 'T') doDCD = .true.
if(answer3 == 'T') doCCSD = .true.
if(answer4 == 'T') doCCSDT = .true.
2020-03-24 14:55:22 +01:00
! Read weird CC methods
read(1,*)
read(1,*) answer1,answer2,answer3,answer4
2020-03-26 16:57:46 +01:00
if(answer1 == 'T') do_drCCD = .true.
if(answer2 == 'T') do_rCCD = .true.
if(answer3 == 'T') do_lCCD = .true.
if(answer4 == 'T') do_pCCD = .true.
2019-03-19 10:13:33 +01:00
! Read excited state methods
read(1,*)
read(1,*) answer1,answer2,answer3,answer4
2019-10-05 23:32:17 +02:00
if(answer1 == 'T') doCIS = .true.
if(answer2 == 'T') doCIS_D = .true.
if(answer3 == 'T') doCID = .true.
if(answer4 == 'T') doCISD = .true.
if(doCIS_D) doCIS = .true.
2020-04-20 12:28:19 +02:00
read(1,*)
read(1,*) answer1,answer2,answer3
if(answer1 == 'T') doRPA = .true.
if(answer2 == 'T') doRPAx = .true.
if(answer3 == 'T') doppRPA = .true.
2019-03-19 10:13:33 +01:00
! Read Green function methods
read(1,*)
2021-03-05 22:34:48 +01:00
read(1,*) answer1,answer2,answer3,answer4,answer5
2020-03-19 10:21:18 +01:00
if(answer1 == 'T') doG0F2 = .true.
if(answer2 == 'T') doevGF2 = .true.
2021-03-05 22:34:48 +01:00
if(answer3 == 'T') doqsGF2 = .true.
if(answer4 == 'T') doG0F3 = .true.
if(answer5 == 'T') doevGF3 = .true.
2019-03-19 10:13:33 +01:00
! Read GW methods
read(1,*)
read(1,*) answer1,answer2,answer3
if(answer1 == 'T') doG0W0 = .true.
if(answer2 == 'T') doevGW = .true.
if(answer3 == 'T') doqsGW = .true.
2019-10-16 18:14:47 +02:00
! Read GT methods
read(1,*)
read(1,*) answer1,answer2,answer3
if(answer1 == 'T') doG0T0 = .true.
if(answer2 == 'T') doevGT = .true.
if(answer3 == 'T') doqsGT = .true.
2019-03-19 10:13:33 +01:00
! Read stochastic methods
read(1,*)
read(1,*) answer1
if(answer1 == 'T') doMCMP2 = .true.
! Close file with geometry specification
close(unit=1)
end subroutine read_methods