"wrappers/python/vscode:/vscode.git/clone" did not exist on "8d276c26852c4c438d9546e16171760e261a6421"
Commit 513303d8 authored by Michael Sherman's avatar Michael Sherman
Browse files

Fortran Module now has bonded interface and more complete nonbond interface (untested).

parent c8a984f8
...@@ -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
real*8, intent(in) :: distanceInNm
end
function OpenMM_NonbondedForce_getCutoffDistance(nonbond)
use OpenMM_Types; implicit none
type (OpenMM_NonbondedForce) nonbond type (OpenMM_NonbondedForce) nonbond
real*8 distanceInNm 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
real*8 a(3), b(3), c(3)
end
subroutine OpenMM_NonbondedForce_getPeriodicBoxVectors(nonbond, a, b, c)
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 & function OpenMM_NonbondedForce_addParticle &
(nonbond, charge, sigmaInNm, vdwEnergyInKJ) (nonbond, charge, sigmaInNm, vdwEnergyInKJ)
use OpenMM_Types use OpenMM_Types; implicit none
type (OpenMM_NonbondedForce) nonbond
integer*4 OpenMM_NonbondedForce_addParticle
real*8 charge, sigmaInNm, vdwEnergyInKJ
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 type (OpenMM_NonbondedForce) nonbond
integer*4 ix
real*8 charge, sigmaInNm, vdwEnergyInKJ real*8 charge, sigmaInNm, vdwEnergyInKJ
end 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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment