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 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
......
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