-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRCSFzerofirst.f90
68 lines (68 loc) · 3.06 KB
/
RCSFzerofirst.f90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
!***********************************************************************
! *
PROGRAM RCSFzerofirst
!-----------------------------------------------
! *
! From a set of CSLs this program identifies the ones that *
! interact with a given multireference *
! *
! This program is a slight modification of the GENMCP program *
! *
! Written by G. Gaigalas Vilnius, May 2016 *
! *
!***********************************************************************
!-----------------------------------------------
! M o d u l e s
!-----------------------------------------------
USE BLK_C, only: NBLOCK,NCFBLK
USE rang_Int_C
!-----------------------------------------------
! I n t e r f a c e B l o c k s
!-----------------------------------------------
USE set_CSF_ZFlist_I
USE lodcsl_Zero_I
USE lodcsl_Part_I
IMPLICIT NONE
!-----------------------------------------------
! L o c a l V a r i a b l e s
!-----------------------------------------------
LOGICAL :: NEXT_BLOCK
INTEGER :: CSF_Number, ncount1, N_C
!-----------------------------------------------
call starttime (ncount1, 'RCSFzerofirst')
!
print *, ""
print *, "RCSFzerofirst: Takes a list of CSFs and partitions each symmetry"
print *, " block into a zero- and first-order CSF space from"
print *, " a zero-order list."
print *, " (C) Copyright by G. Gaigalas and Ch. F. Fischer"
print *, " (Fortran 95 version) NIST (2017)."
print *, " Input files: list with CSFs to be partitioned"
print *, " list with CSFs defining "
print *, " the zero-order space"
print *, " Output file: rcsf.out"
print *, ""
!
print *, &
"Give the the number of subshell core electrons"
read(*,'(i2)') N_C
!
NBLOCK = 0
CALL SET_CSF_ZFlist
WRITE (6, *) " Block Zero-order Space Complete Space"
DO
CALL LODCSL_Zero (NEXT_BLOCK,N_C)
CALL LODCSL_Part (CSF_Number,N_C)
WRITE (6,'(3X,I2,6X,I14,3X,I17)') &
NBLOCK,NCFBLK(NBLOCK),CSF_Number-1
deallocate (Found)
deallocate (C_shell)
deallocate (C_quant)
deallocate (C_coupl)
deallocate (C_core)
IF(.NOT. NEXT_BLOCK) EXIT
WRITE(22,'(A2)') ' *'
END DO
call stoptime (ncount1, 'RCSFzerofirst')
STOP
END PROGRAM RCSFzerofirst