Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
513303d8
Commit
513303d8
authored
Jun 26, 2009
by
Michael Sherman
Browse files
Fortran Module now has bonded interface and more complete nonbond interface (untested).
parent
c8a984f8
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
349 additions
and
68 deletions
+349
-68
examples/OpenMM_Module.f90
examples/OpenMM_Module.f90
+349
-68
No files found.
examples/OpenMM_Module.f90
View file @
513303d8
...
@@ -55,6 +55,9 @@ module OpenMM_Types
...
@@ -55,6 +55,9 @@ module OpenMM_Types
type
OpenMM_Vec3Array
type
OpenMM_Vec3Array
character
,
pointer
::
handle
=>
NULL
()
character
,
pointer
::
handle
=>
NULL
()
end
type
end
type
type
OpenMM_BondArray
character
,
pointer
::
handle
=>
NULL
()
end
type
type
OpenMM_String
type
OpenMM_String
character
,
pointer
::
handle
=>
NULL
()
character
,
pointer
::
handle
=>
NULL
()
end
type
end
type
...
@@ -68,6 +71,15 @@ module OpenMM_Types
...
@@ -68,6 +71,15 @@ module OpenMM_Types
type
OpenMM_GBSAOBCForce
type
OpenMM_GBSAOBCForce
character
,
pointer
::
handle
=>
NULL
()
character
,
pointer
::
handle
=>
NULL
()
end
type
end
type
type
OpenMM_HarmonicBondForce
character
,
pointer
::
handle
=>
NULL
()
end
type
type
OpenMM_HarmonicAngleForce
character
,
pointer
::
handle
=>
NULL
()
end
type
type
OpenMM_PeriodicTorsionForce
character
,
pointer
::
handle
=>
NULL
()
end
type
type
OpenMM_VerletIntegrator
type
OpenMM_VerletIntegrator
character
,
pointer
::
handle
=>
NULL
()
character
,
pointer
::
handle
=>
NULL
()
end
type
end
type
...
@@ -103,56 +115,61 @@ module OpenMM_Types
...
@@ -103,56 +115,61 @@ module OpenMM_Types
end
module
OpenMM_Types
end
module
OpenMM_Types
module
OpenMM
module
OpenMM
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
interface
interface
! -------------------------
! OpenMM::Vec3Array
! -------------------------
! OpenMM_Vec3Array is an interface to the std::vector<Vec3>
! OpenMM_Vec3Array is an interface to the std::vector<Vec3>
! arrays used in various contexts by OpenMM. It is not the
! arrays used in various contexts by OpenMM. It is not the
! same as a Fortran array of Vec3s would be.
! same as a Fortran array of Vec3s would be.
! You can create this with zero elements and then
! append to it and it will grow as needed.
subroutine
OpenMM_Vec3Array_create
(
array
,
n
)
subroutine
OpenMM_Vec3Array_create
(
array
,
n
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
integer
*
4
n
integer
*
4
n
end
end
function
OpenMM_Vec3Array_size
(
array
)
function
OpenMM_Vec3Array_size
(
array
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
integer
*
4
OpenMM_Vec3Array_size
integer
*
4
OpenMM_Vec3Array_size
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
end
end
subroutine
OpenMM_Vec3Array_resize
(
array
,
n
)
subroutine
OpenMM_Vec3Array_resize
(
array
,
n
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
integer
*
4
n
integer
*
4
n
end
end
subroutine
OpenMM_Vec3Array_destroy
(
array
)
subroutine
OpenMM_Vec3Array_destroy
(
array
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
end
end
subroutine
OpenMM_Vec3Array_append
(
array
,
v3
)
subroutine
OpenMM_Vec3Array_append
(
array
,
v3
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
real
*
8
v3
(
3
)
real
*
8
v3
(
3
)
end
end
subroutine
OpenMM_Vec3Array_get
(
array
,
i
,
v3
)
subroutine
OpenMM_Vec3Array_get
(
array
,
i
,
v3
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
integer
*
4
i
integer
*
4
i
real
*
8
,
intent
(
out
)
::
v3
(
3
)
real
*
8
,
intent
(
out
)
::
v3
(
3
)
end
end
subroutine
OpenMM_Vec3Array_getScaled
(
array
,
i
,
s
,
v3
)
subroutine
OpenMM_Vec3Array_getScaled
(
array
,
i
,
s
,
v3
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
integer
*
4
i
integer
*
4
i
real
*
8
s
real
*
8
s
real
*
8
,
intent
(
out
)
::
v3
(
3
)
real
*
8
,
intent
(
out
)
::
v3
(
3
)
end
end
subroutine
OpenMM_Vec3Array_set
(
array
,
i
,
v3
)
subroutine
OpenMM_Vec3Array_set
(
array
,
i
,
v3
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
integer
*
4
i
integer
*
4
i
real
*
8
,
intent
(
in
)
::
v3
(
3
)
real
*
8
,
intent
(
in
)
::
v3
(
3
)
end
end
subroutine
OpenMM_Vec3Array_setScaled
(
array
,
i
,
v3
,
s
)
subroutine
OpenMM_Vec3Array_setScaled
(
array
,
i
,
v3
,
s
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Vec3Array
)
array
type
(
OpenMM_Vec3Array
)
array
integer
*
4
i
integer
*
4
i
real
*
8
,
intent
(
in
)
::
v3
(
3
)
real
*
8
,
intent
(
in
)
::
v3
(
3
)
...
@@ -164,288 +181,552 @@ module OpenMM
...
@@ -164,288 +181,552 @@ module OpenMM
real
*
8
,
intent
(
out
)
::
v3out
(
3
)
real
*
8
,
intent
(
out
)
::
v3out
(
3
)
end
end
! -------------------------
! OpenMM::BondArray
! -------------------------
! OpenMM_BondArray is an interface to the
! std::vector<std::pair<int,int>> arrays used for
! bond lists by OpenMM. It is not the
! same as a Fortran array of integer(2)'s would be.
! You can create this with zero elements and then
! append to it and it will grow as needed.
subroutine
OpenMM_BondArray_create
(
array
,
n
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_BondArray
)
array
integer
*
4
n
end
function
OpenMM_BondArray_size
(
array
)
use
OpenMM_Types
;
implicit
none
integer
*
4
OpenMM_BondArray_size
type
(
OpenMM_BondArray
)
array
end
subroutine
OpenMM_BondArray_resize
(
array
,
n
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_BondArray
)
array
integer
*
4
n
end
subroutine
OpenMM_BondArray_destroy
(
array
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_BondArray
)
array
end
subroutine
OpenMM_BondArray_append
(
array
,
p1
,
p2
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_BondArray
)
array
integer
*
4
p1
,
p2
end
subroutine
OpenMM_BondArray_get
(
array
,
i
,
p1
,
p2
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_BondArray
)
array
integer
*
4
i
integer
*
4
p1
,
p2
end
subroutine
OpenMM_BondArray_set
(
array
,
i
,
p1
,
p2
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_BondArray
)
array
integer
*
4
i
integer
*
4
p1
,
p2
end
! -------------------------
! OpenMM::String
! -------------------------
! OpenMM_String is an interface to std::string, with some
! OpenMM_String is an interface to std::string, with some
! crude ability to copy from and out to fixed-size Fortran
! crude ability to copy from and out to fixed-size Fortran
! character arrays (with blank padding).
! character arrays (with blank padding).
subroutine
OpenMM_String_create
(
string
,
initVal
)
subroutine
OpenMM_String_create
(
string
,
initVal
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_String
)
string
type
(
OpenMM_String
)
string
character
(
*
)
initVal
character
(
*
)
initVal
end
end
subroutine
OpenMM_String_destroy
(
string
)
subroutine
OpenMM_String_destroy
(
string
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_String
)
string
type
(
OpenMM_String
)
string
end
end
function
OpenMM_String_length
(
string
)
function
OpenMM_String_length
(
string
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
integer
*
4
OpenMM_String_length
integer
*
4
OpenMM_String_length
type
(
OpenMM_String
)
string
type
(
OpenMM_String
)
string
end
end
subroutine
OpenMM_String_get
(
string
,
fstring
)
subroutine
OpenMM_String_get
(
string
,
fstring
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_String
)
string
type
(
OpenMM_String
)
string
character
(
*
)
fstring
character
(
*
)
fstring
end
end
subroutine
OpenMM_String_set
(
string
,
fstring
)
subroutine
OpenMM_String_set
(
string
,
fstring
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_String
)
string
type
(
OpenMM_String
)
string
character
(
*
)
fstring
character
(
*
)
fstring
end
end
! -------------------------
! OpenMM::Platform
! OpenMM::Platform
! -------------------------
subroutine
OpenMM_Platform_loadPluginsFromDirectory
(
dirName
)
subroutine
OpenMM_Platform_loadPluginsFromDirectory
(
dirName
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_String
)
dirName
type
(
OpenMM_String
)
dirName
end
end
subroutine
OpenMM_Platform_getDefaultPluginsDirectory
(
dirName
)
subroutine
OpenMM_Platform_getDefaultPluginsDirectory
(
dirName
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_String
)
dirName
type
(
OpenMM_String
)
dirName
end
end
! -------------------------
! OpenMM::System
! OpenMM::System
! -------------------------
subroutine
OpenMM_System_create
(
system
)
subroutine
OpenMM_System_create
(
system
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_System
)
system
type
(
OpenMM_System
)
system
end
end
subroutine
OpenMM_System_destroy
(
system
)
subroutine
OpenMM_System_destroy
(
system
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_System
)
system
type
(
OpenMM_System
)
system
end
end
subroutine
OpenMM_System_addForce
(
system
,
force
)
subroutine
OpenMM_System_addForce
(
system
,
force
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_System
)
system
type
(
OpenMM_System
)
system
type
(
OpenMM_Force
)
force
type
(
OpenMM_Force
)
force
end
end
subroutine
OpenMM_System_addParticle
(
system
,
mass
)
subroutine
OpenMM_System_addParticle
(
system
,
mass
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_System
)
system
type
(
OpenMM_System
)
system
real
*
8
mass
real
*
8
mass
end
end
! -------------------------
! OpenMM::NonbondedForce
! OpenMM::NonbondedForce
! -------------------------
subroutine
OpenMM_NonbondedForce_create
(
nonbond
)
subroutine
OpenMM_NonbondedForce_create
(
nonbond
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_NonbondedForce
)
nonbond
end
end
subroutine
OpenMM_NonbondedForce_destroy
(
nonbond
)
subroutine
OpenMM_NonbondedForce_destroy
(
nonbond
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_NonbondedForce
)
nonbond
end
end
subroutine
OpenMM_NonbondedForce_asForce
(
nonbond
,
force
)
subroutine
OpenMM_NonbondedForce_asForce
(
nonbond
,
force
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_Force
)
force
type
(
OpenMM_Force
)
force
end
end
subroutine
OpenMM_NonbondedForce_setNonbondedMethod
(
nonbond
,
method
)
subroutine
OpenMM_NonbondedForce_setNonbondedMethod
(
nonbond
,
method
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
method
integer
*
4
method
end
end
function
OpenMM_NonbondedForce_getNonbondedMethod
(
nonbond
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
OpenMM_NonbondedForce_getNonbondedMethod
end
subroutine
OpenMM_NonbondedForce_setCutoffDistance
(
nonbond
,
distanceInNm
)
subroutine
OpenMM_NonbondedForce_setCutoffDistance
(
nonbond
,
distanceInNm
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_NonbondedForce
)
nonbond
real
*
8
distanceInNm
real
*
8
,
intent
(
in
)
::
distanceInNm
end
function
OpenMM_NonbondedForce_getCutoffDistance
(
nonbond
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
real
*
8
OpenMM_NonbondedForce_getCutoffDistance
end
end
subroutine
OpenMM_NonbondedForce_setPeriodicBoxVectors
(
nonbond
,
a
,
b
,
c
)
subroutine
OpenMM_NonbondedForce_setPeriodicBoxVectors
(
nonbond
,
a
,
b
,
c
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_NonbondedForce
)
nonbond
real
*
8
a
(
3
),
b
(
3
),
c
(
3
)
real
*
8
a
(
3
),
b
(
3
),
c
(
3
)
end
end
subroutine
OpenMM_NonbondedForce_addParticle
&
subroutine
OpenMM_NonbondedForce_getPeriodicBoxVectors
(
nonbond
,
a
,
b
,
c
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
real
*
8
a
(
3
),
b
(
3
),
c
(
3
)
end
function
OpenMM_NonbondedForce_addParticle
&
(
nonbond
,
charge
,
sigmaInNm
,
vdwEnergyInKJ
)
(
nonbond
,
charge
,
sigmaInNm
,
vdwEnergyInKJ
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
OpenMM_NonbondedForce_addParticle
real
*
8
charge
,
sigmaInNm
,
vdwEnergyInKJ
real
*
8
charge
,
sigmaInNm
,
vdwEnergyInKJ
end
end
subroutine
OpenMM_NonbondedForce_setParticleParameters
&
(
nonbond
,
ix
,
charge
,
sigmaInNm
,
vdwEnergyInKJ
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
ix
real
*
8
charge
,
sigmaInNm
,
vdwEnergyInKJ
end
subroutine
OpenMM_NonbondedForce_getParticleParameters
&
(
nonbond
,
ix
,
charge
,
sigmaInNm
,
vdwEnergyInKJ
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
ix
real
*
8
charge
,
sigmaInNm
,
vdwEnergyInKJ
end
function
OpenMM_NonbondedForce_getNumParticles
(
nonbond
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
OpenMM_NonbondedForce_getNumParticles
end
function
OpenMM_NonbondedForce_getNumExceptions
(
nonbond
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
OpenMM_NonbondedForce_getNumExceptions
end
function
OpenMM_NonbondedForce_addException
&
(
nonbond
,
p1
,
p2
,
chargeProd
,
sigmaInNm
,
vdwEnergyInKJ
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
OpenMM_NonbondedForce_addException
integer
*
4
p1
,
p2
real
*
8
chargeProd
,
sigmaInNm
,
vdwEnergyInKJ
end
subroutine
OpenMM_NonbondedForce_setExceptionParameters
&
(
nonbond
,
ix
,
p1
,
p2
,
chargeProd
,
sigmaInNm
,
vdwEnergyInKJ
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
ix
,
p1
,
p2
real
*
8
chargeProd
,
sigmaInNm
,
vdwEnergyInKJ
end
subroutine
OpenMM_NonbondedForce_getExceptionParameters
&
(
nonbond
,
ix
,
p1
,
p2
,
chargeProd
,
sigmaInNm
,
vdwEnergyInKJ
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
integer
*
4
ix
,
p1
,
p2
real
*
8
chargeProd
,
sigmaInNm
,
vdwEnergyInKJ
end
subroutine
OpenMM_NonbondedForce_createExceptionsFromBonds
&
(
nonbond
,
bonds
,
coulomb14Scale
,
lj14Scale
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_NonbondedForce
)
nonbond
type
(
OpenMM_BondArray
)
bonds
real
*
8
coulomb14Scale
,
lj14Scale
end
! -------------------------
! OpenMM::GBSAOBCForce
! OpenMM::GBSAOBCForce
! -------------------------
subroutine
OpenMM_GBSAOBCForce_create
(
gbsa
)
subroutine
OpenMM_GBSAOBCForce_create
(
gbsa
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_GBSAOBCForce
)
gbsa
type
(
OpenMM_GBSAOBCForce
)
gbsa
end
end
subroutine
OpenMM_GBSAOBCForce_destroy
(
gbsa
)
subroutine
OpenMM_GBSAOBCForce_destroy
(
gbsa
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_GBSAOBCForce
)
gbsa
type
(
OpenMM_GBSAOBCForce
)
gbsa
end
end
subroutine
OpenMM_GBSAOBCForce_asForce
(
gbsa
,
force
)
subroutine
OpenMM_GBSAOBCForce_asForce
(
gbsa
,
force
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_GBSAOBCForce
)
gbsa
type
(
OpenMM_GBSAOBCForce
)
gbsa
type
(
OpenMM_Force
)
force
type
(
OpenMM_Force
)
force
end
end
subroutine
OpenMM_GBSAOBCForce_setSolventDielectric
(
gbsa
,
d
)
subroutine
OpenMM_GBSAOBCForce_setSolventDielectric
(
gbsa
,
d
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_GBSAOBCForce
)
gbsa
type
(
OpenMM_GBSAOBCForce
)
gbsa
real
*
8
d
real
*
8
d
end
end
subroutine
OpenMM_GBSAOBCForce_setSoluteDielectric
(
gbsa
,
d
)
subroutine
OpenMM_GBSAOBCForce_setSoluteDielectric
(
gbsa
,
d
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_GBSAOBCForce
)
gbsa
type
(
OpenMM_GBSAOBCForce
)
gbsa
real
*
8
d
real
*
8
d
end
end
subroutine
OpenMM_GBSAOBCForce_addParticle
&
subroutine
OpenMM_GBSAOBCForce_addParticle
&
(
gbsa
,
charge
,
radiusInNm
,
scalingFactor
)
(
gbsa
,
charge
,
radiusInNm
,
scalingFactor
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_GBSAOBCForce
)
gbsa
type
(
OpenMM_GBSAOBCForce
)
gbsa
real
*
8
charge
,
radiusInNm
,
scalingFactor
real
*
8
charge
,
radiusInNm
,
scalingFactor
end
end
! -------------------------
! OpenMM::HarmonicBondForce
! -------------------------
subroutine
OpenMM_HarmonicBondForce_create
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicBondForce
)
hbf
end
subroutine
OpenMM_HarmonicBondForce_destroy
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicBondForce
)
hbf
end
subroutine
OpenMM_HarmonicBondForce_asForce
(
hbf
,
force
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicBondForce
)
hbf
type
(
OpenMM_Force
)
force
end
function
OpenMM_HarmonicBondForce_getNumBonds
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicBondForce
)
hbf
integer
*
4
OpenMM_HarmonicBondForce_getNumBonds
end
function
OpenMM_HarmonicBondForce_addBond
(
hbf
,
p1
,
p2
,
length
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicBondForce
)
hbf
integer
*
4
OpenMM_HarmonicBondForce_addBond
integer
*
4
p1
,
p2
real
*
8
length
,
k
end
subroutine
OpenMM_HarmonicBondForce_setBondParameters
(
hbf
,
ix
,
p1
,
p2
,
length
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicBondForce
)
hbf
integer
*
4
ix
,
p1
,
p2
real
*
8
length
,
k
end
subroutine
OpenMM_HarmonicBondForce_getBondParameters
(
hbf
,
ix
,
p1
,
p2
,
length
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicBondForce
)
hbf
integer
*
4
ix
,
p1
,
p2
real
*
8
length
,
k
end
! --------------------------
! OpenMM::HarmonicAngleForce
! --------------------------
subroutine
OpenMM_HarmonicAngleForce_create
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicAngleForce
)
hbf
end
subroutine
OpenMM_HarmonicAngleForce_destroy
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicAngleForce
)
hbf
end
subroutine
OpenMM_HarmonicAngleForce_asForce
(
hbf
,
force
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicAngleForce
)
hbf
type
(
OpenMM_Force
)
force
end
function
OpenMM_HarmonicAngleForce_getNumAngles
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicAngleForce
)
hbf
integer
*
4
OpenMM_HarmonicAngleForce_getNumAngles
end
function
OpenMM_HarmonicAngleForce_addAngle
(
hbf
,
p1
,
p2
,
p3
,
angle
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicAngleForce
)
hbf
integer
*
4
OpenMM_HarmonicAngleForce_addAngle
integer
*
4
p1
,
p2
,
p3
real
*
8
angle
,
k
end
subroutine
OpenMM_HarmonicAngleForce_setAngleParameters
&
(
hbf
,
ix
,
p1
,
p2
,
p3
,
angle
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicAngleForce
)
hbf
integer
*
4
ix
,
p1
,
p2
,
p3
real
*
8
angle
,
k
end
subroutine
OpenMM_HarmonicAngleForce_getAngleParameters
&
(
hbf
,
ix
,
p1
,
p2
,
p3
,
angle
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_HarmonicAngleForce
)
hbf
integer
*
4
ix
,
p1
,
p2
,
p3
real
*
8
angle
,
k
end
! ----------------------------
! OpenMM::PeriodicTorsionForce
! ----------------------------
subroutine
OpenMM_PeriodicTorsionForce_create
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_PeriodicTorsionForce
)
hbf
end
subroutine
OpenMM_PeriodicTorsionForce_destroy
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_PeriodicTorsionForce
)
hbf
end
subroutine
OpenMM_PeriodicTorsionForce_asForce
(
hbf
,
force
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_PeriodicTorsionForce
)
hbf
type
(
OpenMM_Force
)
force
end
function
OpenMM_PeriodicTorsionForce_getNumTorsions
(
hbf
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_PeriodicTorsionForce
)
hbf
integer
*
4
OpenMM_PeriodicTorsionForce_getNumTorsions
end
function
OpenMM_PeriodicTorsionForce_addTorsion
&
(
hbf
,
p1
,
p2
,
p3
,
p4
,
periodicity
,
phase
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_PeriodicTorsionForce
)
hbf
integer
*
4
OpenMM_PeriodicTorsionForce_addTorsion
integer
*
4
p1
,
p2
,
p3
,
p4
,
periodicity
real
*
8
phase
,
k
end
subroutine
OpenMM_PeriodicTorsionForce_setTorsionParameters
&
(
hbf
,
ix
,
p1
,
p2
,
p3
,
p4
,
periodicity
,
phase
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_PeriodicTorsionForce
)
hbf
integer
*
4
ix
,
p1
,
p2
,
p3
,
p4
,
periodicity
real
*
8
phase
,
k
end
subroutine
OpenMM_PeriodicTorsionForce_getTorsionParameters
&
(
hbf
,
ix
,
p1
,
p2
,
p3
,
p4
,
periodicity
,
phase
,
k
)
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_PeriodicTorsionForce
)
hbf
integer
*
4
ix
,
p1
,
p2
,
p3
,
p4
,
periodicity
real
*
8
phase
,
k
end
! -------------------------
! OpenMM::Integrator
! OpenMM::Integrator
! -------------------------
subroutine
OpenMM_Integrator_step
(
integrator
,
numSteps
)
subroutine
OpenMM_Integrator_step
(
integrator
,
numSteps
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Integrator
)
integrator
type
(
OpenMM_Integrator
)
integrator
integer
*
4
numSteps
integer
*
4
numSteps
end
end
subroutine
OpenMM_Integrator_destroy
(
integrator
)
subroutine
OpenMM_Integrator_destroy
(
integrator
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Integrator
)
integrator
type
(
OpenMM_Integrator
)
integrator
end
end
! -------------------------
! OpenMM::VerletIntegrator
! OpenMM::VerletIntegrator
! -------------------------
subroutine
OpenMM_VerletIntegrator_create
(
verlet
,
stepSzInPs
)
subroutine
OpenMM_VerletIntegrator_create
(
verlet
,
stepSzInPs
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_VerletIntegrator
)
verlet
type
(
OpenMM_VerletIntegrator
)
verlet
real
*
8
stepSzInPs
real
*
8
stepSzInPs
end
end
subroutine
OpenMM_VerletIntegrator_destroy
(
verlet
)
subroutine
OpenMM_VerletIntegrator_destroy
(
verlet
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_VerletIntegrator
)
verlet
type
(
OpenMM_VerletIntegrator
)
verlet
end
end
subroutine
OpenMM_VerletIntegrator_asIntegrator
(
verlet
,
integ
)
subroutine
OpenMM_VerletIntegrator_asIntegrator
(
verlet
,
integ
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_VerletIntegrator
)
verlet
type
(
OpenMM_VerletIntegrator
)
verlet
type
(
OpenMM_Integrator
)
integ
type
(
OpenMM_Integrator
)
integ
end
end
subroutine
OpenMM_VerletIntegrator_step
(
verlet
,
numSteps
)
subroutine
OpenMM_VerletIntegrator_step
(
verlet
,
numSteps
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_VerletIntegrator
)
verlet
type
(
OpenMM_VerletIntegrator
)
verlet
integer
*
4
numSteps
integer
*
4
numSteps
end
end
! -------------------------
! OpenMM::LangevinIntegrator
! OpenMM::LangevinIntegrator
! -------------------------
subroutine
OpenMM_LangevinIntegrator_create
&
subroutine
OpenMM_LangevinIntegrator_create
&
(
langevin
,
temperature
,
frictionInPerPs
,
stepSzInPs
)
(
langevin
,
temperature
,
frictionInPerPs
,
stepSzInPs
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_LangevinIntegrator
)
langevin
type
(
OpenMM_LangevinIntegrator
)
langevin
real
*
8
temperature
,
frictionInPerPs
,
stepSzInPs
real
*
8
temperature
,
frictionInPerPs
,
stepSzInPs
end
end
subroutine
OpenMM_LangevinIntegrator_destroy
(
langevin
)
subroutine
OpenMM_LangevinIntegrator_destroy
(
langevin
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_LangevinIntegrator
)
langevin
type
(
OpenMM_LangevinIntegrator
)
langevin
end
end
subroutine
OpenMM_LangevinIntegrator_asIntegrator
(
langevin
,
integ
)
subroutine
OpenMM_LangevinIntegrator_asIntegrator
(
langevin
,
integ
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_LangevinIntegrator
)
langevin
type
(
OpenMM_LangevinIntegrator
)
langevin
type
(
OpenMM_Integrator
)
integ
type
(
OpenMM_Integrator
)
integ
end
end
subroutine
OpenMM_LangevinIntegrator_step
(
langevin
,
numSteps
)
subroutine
OpenMM_LangevinIntegrator_step
(
langevin
,
numSteps
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_LangevinIntegrator
)
langevin
type
(
OpenMM_LangevinIntegrator
)
langevin
integer
*
4
numSteps
integer
*
4
numSteps
end
end
! -------------------------
! OpenMM::Context
! OpenMM::Context
! -------------------------
subroutine
OpenMM_Context_create
(
context
,
system
,
integrator
)
subroutine
OpenMM_Context_create
(
context
,
system
,
integrator
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
type
(
OpenMM_System
)
system
type
(
OpenMM_System
)
system
type
(
OpenMM_Integrator
)
integrator
type
(
OpenMM_Integrator
)
integrator
end
end
subroutine
OpenMM_Context_destroy
(
context
)
subroutine
OpenMM_Context_destroy
(
context
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
end
end
subroutine
OpenMM_Context_setPositions
(
context
,
positions
)
subroutine
OpenMM_Context_setPositions
(
context
,
positions
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
type
(
OpenMM_Vec3Array
)
positions
type
(
OpenMM_Vec3Array
)
positions
end
end
subroutine
OpenMM_Context_setVelocities
(
context
,
velocities
)
subroutine
OpenMM_Context_setVelocities
(
context
,
velocities
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
type
(
OpenMM_Vec3Array
)
velocities
type
(
OpenMM_Vec3Array
)
velocities
end
end
subroutine
OpenMM_Context_createState
(
context
,
types
,
state
)
subroutine
OpenMM_Context_createState
(
context
,
types
,
state
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
integer
*
4
types
integer
*
4
types
type
(
OpenMM_State
)
state
type
(
OpenMM_State
)
state
end
end
subroutine
OpenMM_Context_getPlatformName
(
context
,
platformName
)
subroutine
OpenMM_Context_getPlatformName
(
context
,
platformName
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
character
(
*
)
platformName
character
(
*
)
platformName
end
end
! -------------------------
! OpenMM::State
! OpenMM::State
! -------------------------
subroutine
OpenMM_State_destroy
(
state
)
subroutine
OpenMM_State_destroy
(
state
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_State
)
state
type
(
OpenMM_State
)
state
end
end
function
OpenMM_State_getTime
(
state
)
function
OpenMM_State_getTime
(
state
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_State
)
state
type
(
OpenMM_State
)
state
real
*
8
OpenMM_State_getTime
real
*
8
OpenMM_State_getTime
end
end
function
OpenMM_State_getPotentialEnergy
(
state
)
function
OpenMM_State_getPotentialEnergy
(
state
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_State
)
state
type
(
OpenMM_State
)
state
real
*
8
OpenMM_State_getPotentialEnergy
real
*
8
OpenMM_State_getPotentialEnergy
end
end
function
OpenMM_State_getKineticEnergy
(
state
)
function
OpenMM_State_getKineticEnergy
(
state
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_State
)
state
type
(
OpenMM_State
)
state
real
*
8
OpenMM_State_getKineticEnergy
real
*
8
OpenMM_State_getKineticEnergy
end
end
subroutine
OpenMM_State_getPositions
(
state
,
positions
)
subroutine
OpenMM_State_getPositions
(
state
,
positions
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_State
)
state
type
(
OpenMM_State
)
state
type
(
OpenMM_Vec3Array
)
positions
type
(
OpenMM_Vec3Array
)
positions
end
end
subroutine
OpenMM_State_getVelocities
(
state
,
velocities
)
subroutine
OpenMM_State_getVelocities
(
state
,
velocities
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_State
)
state
type
(
OpenMM_State
)
state
type
(
OpenMM_Vec3Array
)
velocities
type
(
OpenMM_Vec3Array
)
velocities
end
end
subroutine
OpenMM_RuntimeObjects_create
(
omm
)
subroutine
OpenMM_RuntimeObjects_create
(
omm
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
end
end
subroutine
OpenMM_RuntimeObjects_clear
(
omm
)
subroutine
OpenMM_RuntimeObjects_clear
(
omm
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
end
end
subroutine
OpenMM_RuntimeObjects_destroy
(
omm
)
subroutine
OpenMM_RuntimeObjects_destroy
(
omm
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
end
end
subroutine
OpenMM_RuntimeObjects_setSystem
(
omm
,
sys
)
subroutine
OpenMM_RuntimeObjects_setSystem
(
omm
,
sys
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_System
)
sys
type
(
OpenMM_System
)
sys
end
end
subroutine
OpenMM_RuntimeObjects_setIntegrator
(
omm
,
integ
)
subroutine
OpenMM_RuntimeObjects_setIntegrator
(
omm
,
integ
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_Integrator
)
integ
type
(
OpenMM_Integrator
)
integ
end
end
subroutine
OpenMM_RuntimeObjects_setContext
(
omm
,
context
)
subroutine
OpenMM_RuntimeObjects_setContext
(
omm
,
context
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
end
end
subroutine
OpenMM_RuntimeObjects_getSystem
(
omm
,
sys
)
subroutine
OpenMM_RuntimeObjects_getSystem
(
omm
,
sys
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_System
)
sys
type
(
OpenMM_System
)
sys
end
end
subroutine
OpenMM_RuntimeObjects_getIntegrator
(
omm
,
integ
)
subroutine
OpenMM_RuntimeObjects_getIntegrator
(
omm
,
integ
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_Integrator
)
integ
type
(
OpenMM_Integrator
)
integ
end
end
subroutine
OpenMM_RuntimeObjects_getContext
(
omm
,
context
)
subroutine
OpenMM_RuntimeObjects_getContext
(
omm
,
context
)
use
OpenMM_Types
use
OpenMM_Types
;
implicit
none
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_RuntimeObjects
)
omm
type
(
OpenMM_Context
)
context
type
(
OpenMM_Context
)
context
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment