root / src / Energy_GEDIIS.f90 @ 4
Historique | Voir | Annoter | Télécharger (1,08 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 | 4 | pfleura2 | INTEGER(KINT) :: MRESET, MSET, NCoord |
8 | 4 | pfleura2 | REAL(KREAL) :: ci(MRESET), GeomSet(MRESET*NCoord), GradSet(MRESET*NCoord), ESET(MRESET) |
9 | 4 | pfleura2 | REAL(KREAL) :: ER_star, tmp |
10 | 4 | pfleura2 | |
11 | 4 | pfleura2 | INTEGER(KINT) :: I, J, IX, JX, INV, JNV, KX |
12 | 4 | pfleura2 | |
13 | 4 | pfleura2 | LOGICAL PRINT |
14 | 4 | pfleura2 | |
15 | 1 | equemene | PRINT=.FALSE. |
16 | 4 | pfleura2 | |
17 | 1 | equemene | IF (PRINT) WRITE(*,'(/,'' BEGIN Energy_GEDIIS '')') |
18 | 4 | pfleura2 | |
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 | 4 | pfleura2 | DO KX=1, NCoord |
28 | 4 | pfleura2 | tmp = tmp + (((GradSet(INV+KX)-GradSet(JNV+KX))*(GeomSet(INV+KX)-GeomSet(JNV+KX)))/2.D0) |
29 | 4 | pfleura2 | END DO |
30 | 4 | pfleura2 | ER_star = ER_star + ci(IX)*ci(JX)*tmp |
31 | 1 | equemene | END DO |
32 | 1 | equemene | END DO |
33 | 1 | equemene | |
34 | 4 | pfleura2 | DO I=1, MSET |
35 | 4 | pfleura2 | ER_star = ER_star + (ci(I)*ESET(I)) |
36 | 4 | pfleura2 | END DO |
37 | 1 | equemene | |
38 | 1 | equemene | IF (PRINT) WRITE(*,'(/,'' END Energy_GEDIIS '',/)') |
39 | 1 | equemene | |
40 | 1 | equemene | END SUBROUTINE Energy_GEDIIS |