"platforms/common/src/kernels/integrationUtilities.cc" did not exist on "4be5daf13f212d9a663bc53a26db4e4a634f8c0b"
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
type OpenMM_Vec3Array
character, pointer :: handle => NULL()
end type
type OpenMM_BondArray
character, pointer :: handle => NULL()
end type
type OpenMM_String
character, pointer :: handle => NULL()
end type
......@@ -68,6 +71,15 @@ module OpenMM_Types
type OpenMM_GBSAOBCForce
character, pointer :: handle => NULL()
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
character, pointer :: handle => NULL()
end type
......@@ -103,56 +115,61 @@ module OpenMM_Types
end module OpenMM_Types
module OpenMM
use OpenMM_Types
use OpenMM_Types; implicit none
interface
! -------------------------
! OpenMM::Vec3Array
! -------------------------
! OpenMM_Vec3Array is an interface to the std::vector<Vec3>
! arrays used in various contexts by OpenMM. It is not the
! 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)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
integer*4 n
end
function OpenMM_Vec3Array_size(array)
use OpenMM_Types
use OpenMM_Types; implicit none
integer*4 OpenMM_Vec3Array_size
type (OpenMM_Vec3Array) array
end
subroutine OpenMM_Vec3Array_resize(array, n)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
integer*4 n
end
subroutine OpenMM_Vec3Array_destroy(array)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
end
subroutine OpenMM_Vec3Array_append(array, v3)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
real*8 v3(3)
end
subroutine OpenMM_Vec3Array_get(array, i, v3)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
integer*4 i
real*8, intent(out) :: v3(3)
end
subroutine OpenMM_Vec3Array_getScaled(array, i, s, v3)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
integer*4 i
real*8 s
real*8, intent(out) :: v3(3)
end
subroutine OpenMM_Vec3Array_set(array, i, v3)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
integer*4 i
real*8, intent(in) :: v3(3)
end
subroutine OpenMM_Vec3Array_setScaled(array, i, v3, s)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Vec3Array) array
integer*4 i
real*8, intent(in) :: v3(3)
......@@ -164,288 +181,552 @@ module OpenMM
real*8, intent(out) :: v3out(3)
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
! crude ability to copy from and out to fixed-size Fortran
! character arrays (with blank padding).
subroutine OpenMM_String_create(string, initVal)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_String) string
character(*) initVal
end
subroutine OpenMM_String_destroy(string)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_String) string
end
function OpenMM_String_length(string)
use OpenMM_Types
use OpenMM_Types; implicit none
integer*4 OpenMM_String_length
type (OpenMM_String) string
end
subroutine OpenMM_String_get(string, fstring)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_String) string
character(*) fstring
end
subroutine OpenMM_String_set(string, fstring)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_String) string
character(*) fstring
end
! -------------------------
! OpenMM::Platform
! -------------------------
subroutine OpenMM_Platform_loadPluginsFromDirectory(dirName)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_String) dirName
end
subroutine OpenMM_Platform_getDefaultPluginsDirectory(dirName)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_String) dirName
end
! -------------------------
! OpenMM::System
! -------------------------
subroutine OpenMM_System_create(system)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_System) system
end
subroutine OpenMM_System_destroy(system)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_System) system
end
subroutine OpenMM_System_addForce(system, force)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_System) system
type (OpenMM_Force) force
end
subroutine OpenMM_System_addParticle(system, mass)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_System) system
real*8 mass
end
! -------------------------
! OpenMM::NonbondedForce
! -------------------------
subroutine OpenMM_NonbondedForce_create(nonbond)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_NonbondedForce) nonbond
end
subroutine OpenMM_NonbondedForce_destroy(nonbond)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_NonbondedForce) nonbond
end
subroutine OpenMM_NonbondedForce_asForce(nonbond, force)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_NonbondedForce) nonbond
type (OpenMM_Force) force
end
subroutine OpenMM_NonbondedForce_setNonbondedMethod(nonbond, method)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_NonbondedForce) nonbond
integer*4 method
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)
use OpenMM_Types
use OpenMM_Types; implicit none
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
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_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)
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
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
! -------------------------
subroutine OpenMM_GBSAOBCForce_create(gbsa)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_GBSAOBCForce) gbsa
end
subroutine OpenMM_GBSAOBCForce_destroy(gbsa)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_GBSAOBCForce) gbsa
end
subroutine OpenMM_GBSAOBCForce_asForce(gbsa, force)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_GBSAOBCForce) gbsa
type (OpenMM_Force) force
end
subroutine OpenMM_GBSAOBCForce_setSolventDielectric(gbsa, d)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_GBSAOBCForce) gbsa
real*8 d
end
subroutine OpenMM_GBSAOBCForce_setSoluteDielectric(gbsa, d)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_GBSAOBCForce) gbsa
real*8 d
end
subroutine OpenMM_GBSAOBCForce_addParticle &
(gbsa, charge, radiusInNm, scalingFactor)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_GBSAOBCForce) gbsa
real*8 charge, radiusInNm, scalingFactor
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
! -------------------------
subroutine OpenMM_Integrator_step(integrator, numSteps)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Integrator) integrator
integer*4 numSteps
end
subroutine OpenMM_Integrator_destroy(integrator)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Integrator) integrator
end
! -------------------------
! OpenMM::VerletIntegrator
! -------------------------
subroutine OpenMM_VerletIntegrator_create(verlet, stepSzInPs)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_VerletIntegrator) verlet
real*8 stepSzInPs
end
subroutine OpenMM_VerletIntegrator_destroy(verlet)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_VerletIntegrator) verlet
end
subroutine OpenMM_VerletIntegrator_asIntegrator(verlet, integ)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_VerletIntegrator) verlet
type (OpenMM_Integrator) integ
end
subroutine OpenMM_VerletIntegrator_step(verlet, numSteps)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_VerletIntegrator) verlet
integer*4 numSteps
end
! -------------------------
! OpenMM::LangevinIntegrator
! -------------------------
subroutine OpenMM_LangevinIntegrator_create &
(langevin, temperature, frictionInPerPs, stepSzInPs)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_LangevinIntegrator) langevin
real*8 temperature, frictionInPerPs, stepSzInPs
end
subroutine OpenMM_LangevinIntegrator_destroy(langevin)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_LangevinIntegrator) langevin
end
subroutine OpenMM_LangevinIntegrator_asIntegrator(langevin, integ)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_LangevinIntegrator) langevin
type (OpenMM_Integrator) integ
end
subroutine OpenMM_LangevinIntegrator_step(langevin, numSteps)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_LangevinIntegrator) langevin
integer*4 numSteps
end
! -------------------------
! OpenMM::Context
! -------------------------
subroutine OpenMM_Context_create(context, system, integrator)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Context) context
type (OpenMM_System) system
type (OpenMM_Integrator) integrator
end
subroutine OpenMM_Context_destroy(context)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Context) context
end
subroutine OpenMM_Context_setPositions(context, positions)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Context) context
type (OpenMM_Vec3Array) positions
end
subroutine OpenMM_Context_setVelocities(context, velocities)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Context) context
type (OpenMM_Vec3Array) velocities
end
subroutine OpenMM_Context_createState(context, types, state)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Context) context
integer*4 types
type (OpenMM_State) state
end
subroutine OpenMM_Context_getPlatformName(context, platformName)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_Context) context
character(*) platformName
end
! -------------------------
! OpenMM::State
! -------------------------
subroutine OpenMM_State_destroy(state)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_State) state
end
function OpenMM_State_getTime(state)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_State) state
real*8 OpenMM_State_getTime
end
function OpenMM_State_getPotentialEnergy(state)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_State) state
real*8 OpenMM_State_getPotentialEnergy
end
function OpenMM_State_getKineticEnergy(state)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_State) state
real*8 OpenMM_State_getKineticEnergy
end
subroutine OpenMM_State_getPositions(state, positions)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_State) state
type (OpenMM_Vec3Array) positions
end
subroutine OpenMM_State_getVelocities(state, velocities)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_State) state
type (OpenMM_Vec3Array) velocities
end
subroutine OpenMM_RuntimeObjects_create(omm)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
end
subroutine OpenMM_RuntimeObjects_clear(omm)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
end
subroutine OpenMM_RuntimeObjects_destroy(omm)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
end
subroutine OpenMM_RuntimeObjects_setSystem(omm,sys)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
type (OpenMM_System) sys
end
subroutine OpenMM_RuntimeObjects_setIntegrator(omm,integ)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
type (OpenMM_Integrator) integ
end
subroutine OpenMM_RuntimeObjects_setContext(omm,context)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
type (OpenMM_Context) context
end
subroutine OpenMM_RuntimeObjects_getSystem(omm,sys)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
type (OpenMM_System) sys
end
subroutine OpenMM_RuntimeObjects_getIntegrator(omm,integ)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
type (OpenMM_Integrator) integ
end
subroutine OpenMM_RuntimeObjects_getContext(omm,context)
use OpenMM_Types
use OpenMM_Types; implicit none
type (OpenMM_RuntimeObjects) omm
type (OpenMM_Context) context
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