root / src / Energy_GEDIIS.f90 @ 2
Historique | Voir | Annoter | Télécharger (1,06 ko)
1 | 1 | equemene | SUBROUTINE Energy_GEDIIS(MRESET,MSET,ci,GeomSet,GradSet,ESET,NCoord,ER_star) |
---|---|---|---|
2 | 1 | equemene | IMPLICIT NONE |
3 | 1 | equemene | integer, parameter :: KINT = kind(1) |
4 | 1 | equemene | integer, parameter :: KREAL = kind(1.0d0) |
5 | 1 | equemene | |
6 | 1 | equemene | |
7 | 1 | equemene | INTEGER(KINT) :: MRESET, MSET, NCoord |
8 | 1 | equemene | REAL(KREAL) :: ci(MRESET), GeomSet(MRESET*NCoord), GradSet(MRESET*NCoord), ESET(MRESET) |
9 | 1 | equemene | REAL(KREAL) :: ER_star, tmp |
10 | 1 | equemene | |
11 | 1 | equemene | INTEGER(KINT) :: I, J, IX, JX, INV, JNV, KX |
12 | 1 | equemene | |
13 | 1 | equemene | LOGICAL PRINT |
14 | 1 | equemene | |
15 | 1 | equemene | PRINT=.FALSE. |
16 | 1 | equemene | |
17 | 1 | equemene | IF (PRINT) WRITE(*,'(/,'' BEGIN Energy_GEDIIS '')') |
18 | 1 | equemene | |
19 | 1 | equemene | ER_star=0.D0 |
20 | 1 | equemene | INV=-NCoord |
21 | 1 | equemene | DO IX=1,MSET |
22 | 1 | equemene | INV=INV+NCoord |
23 | 1 | equemene | JNV=-NCoord |
24 | 1 | equemene | DO JX=1,MSET |
25 | 1 | equemene | JNV=JNV+NCoord |
26 | 1 | equemene | tmp=0.D0 |
27 | 1 | equemene | DO KX=1, NCoord |
28 | 1 | equemene | tmp = tmp + (((GradSet(INV+KX)-GradSet(JNV+KX))*(GeomSet(INV+KX)-GeomSet(JNV+KX)))/2.D0) |
29 | 1 | equemene | END DO |
30 | 1 | equemene | ER_star = ER_star + ci(IX)*ci(JX)*tmp |
31 | 1 | equemene | END DO |
32 | 1 | equemene | END DO |
33 | 1 | equemene | |
34 | 1 | equemene | DO I=1, MSET |
35 | 1 | equemene | ER_star = ER_star + (ci(I)*ESET(I)) |
36 | 1 | equemene | END DO |
37 | 1 | equemene | |
38 | 1 | equemene | IF (PRINT) WRITE(*,'(/,'' END Energy_GEDIIS '',/)') |
39 | 1 | equemene | |
40 | 1 | equemene | END SUBROUTINE Energy_GEDIIS |