-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTestBond.f90
69 lines (51 loc) · 1.51 KB
/
TestBond.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
69
PROGRAM TestBond
use ChemicalSystem
use Conformation
use Dynamics
use OMPTools
use TimeTools
IMPLICIT NONE
LOGICAL :: noError = .FALSE.
CALL PrintTimeAndDate
call OMP_setup(noError)
if (noError .EQV. .FALSE.) STOP "DIED: CANNOT SET UP OMP"
CALL InitialiseWallClock()
CALL StartWallClock()
CALL CreateChemicalSystem(3,2,1,0)
!Fill the created arrays of ChemicalSystem with their values - replace with read
Elements(1) = "H "
Elements(2) = "O "
Elements(3) = "H "
AtomicMasses(1) = 1.00794d0
AtomicMasses(2) = 15.9994d0
AtomicMasses(3) = 1.00794d0
BondIDS(1,1) = 1
BondIDS(1,2) = 2
BondIDs(2,1) = 2
BondIDs(2,2) = 3
AngleIDs(1,1) = 1
AngleIDs(1,2) = 2
AngleIDs(1,3) = 3
BondTypes(:) = "HARM"
BondForceConstants(:) = 50.00d0
BondReferences(:) = 1.00d0
AngleTypes(:) = "HARM"
AngleForceConstants(:) = 100.00d0
AngleReferences(:) = 1.21d0
call CreateConformation
CartCoords(1,1) = 0.00d0; CartCoords(1,2) = 0.00d0; CartCoords(1,3) = 0.0d0;
CartCoords(2,1) = 0.95d0; CartCoords(2,2) = 0.00d0; CartCoords(2,3) = 0.0d0;
CartCoords(3,1) = 1.18786100427d0; CartCoords(3,2) = 0.91974025825d0; CartCoords(3,3) = 0.0d0;
!call CartesianToRedundantInternal
!call PrintRedundantCoordinates
call MeasureWallClock("START OF DYNAMICS")
call VelocityVerlet(0.001d-1,500)
call MeasureWallClock("END OF DYNAMICS")
call PrintWallTime(.FALSE.)
call DestroyConformation
call DestroyChemicalSystem
call OMP_teardown
CALL MeasureWallClock("END OF PROGRAM");
CALL PrintWallTime(.TRUE.);
CALL PrintTimeAndDate()
END PROGRAM TestBond