Documentation for module force_fields_all

...

source: force_fields_all.F
Loading...

public Subroutines/Functions:

Pack in bends information needed for the force_field
Pack in bonds information needed for the force_field
Set up atomic_kind_set()%fist_potentail%[qeff] and shell potential parameters
Set up array of full charges
Set up damping parameters
Compute the electrostatic interaction cutoffs
Pack in impropers information needed for the force_field
Assign input and potential info to potparm_nonbond
Assign input and potential info to potparm_nonbond14
Pack in opbend information needed for the force_field. No loop over params for charmm, amber and gromos since these force fields have no opbends
Set up the polarizable FF parameters
Set up the radius of the electrostatic multipole in Fist
Set up shell potential parameters
create the pair potential spline environment
Pack in torsion information needed for the force_field
Pack in Urey-Bradley information needed for the force_field
Determine the number of unique bend kind and allocate bend_kind_set
Determine the number of unique bond kind and allocate bond_kind_set
Determine the number of unique impr kind and allocate impr_kind_set
Determine the number of unique opbend kind and allocate opbend_kind_set based on the present impropers. With each improper, there also corresponds a opbend
Determine the number of unique torsion kind and allocate torsion_kind_set
Determine the number of unique Urey-Bradley kind and allocate ub_kind_set

SUBROUTINEforce_field_pack_bend(particle_set, molecule_kind_set, molecule_set, fatal, ainfo, chm_info, inp_info, gro_info, amb_info)

Pack in bends information needed for the force_field

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
LOGICAL
:: fatal ...
POINTER
:: ainfo(:) ...
POINTER
:: chm_info ...
POINTER
:: inp_info ...
POINTER
:: gro_info ...
POINTER
:: amb_info ...

SUBROUTINEforce_field_pack_bond(particle_set, molecule_kind_set, molecule_set, fatal, ainfo, chm_info, inp_info, gro_info, amb_info)

Pack in bonds information needed for the force_field

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
LOGICAL
:: fatal ...
POINTER
:: ainfo(:) ...
POINTER
:: chm_info ...
POINTER
:: inp_info ...
POINTER
:: gro_info ...
POINTER
:: amb_info ...

SUBROUTINEforce_field_pack_charge(atomic_kind_set, qmmm_env, fatal, iw, iw4, ainfo, my_qmmm, inp_info)

Set up atomic_kind_set()%fist_potentail%[qeff] and shell potential parameters

Arguments:
POINTER
:: atomic_kind_set(:) ...
POINTER
:: qmmm_env ...
LOGICAL
:: fatal ...
INTEGER
:: iw ...
INTEGER
:: iw4 ...
POINTER
:: ainfo(:) ...
LOGICAL
:: my_qmmm ...
POINTER
:: inp_info ...

SUBROUTINEforce_field_pack_charges(charges, charges_section, particle_set, my_qmmm, qmmm_env, inp_info, iw4)

Set up array of full charges

Arguments:
REAL(dp),
POINTER
:: charges(:) ...
POINTER
:: charges_section ...
POINTER
:: particle_set(:) ...
LOGICAL
:: my_qmmm ...
POINTER
:: qmmm_env ...
POINTER
:: inp_info ...
INTEGER
:: iw4 ...

SUBROUTINEforce_field_pack_damp(atomic_kind_set, iw, inp_info)

Set up damping parameters

Arguments:
POINTER
:: atomic_kind_set(:) ...
INTEGER
:: iw ...
POINTER
:: inp_info ...

SUBROUTINEforce_field_pack_eicut(atomic_kind_set, ff_type, potparm_nonbond, ewald_env)

Compute the electrostatic interaction cutoffs

Arguments:
POINTER
:: atomic_kind_set(:) ...
INTENT(in)
:: ff_type ...
POINTER
:: potparm_nonbond ...
POINTER
:: ewald_env ...

SUBROUTINEforce_field_pack_impr(particle_set, molecule_kind_set, molecule_set, ainfo, chm_info, inp_info, gro_info)

Pack in impropers information needed for the force_field

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
POINTER
:: ainfo(:) ...
POINTER
:: chm_info ...
POINTER
:: inp_info ...
POINTER
:: gro_info ...

SUBROUTINEforce_field_pack_nonbond(atomic_kind_set, ff_type, qmmm_env, fatal, iw, ainfo, chm_info, inp_info, gro_info, amb_info, potparm_nonbond, ewald_env)

Assign input and potential info to potparm_nonbond

Arguments:
POINTER
:: atomic_kind_set(:) ...
INTENT(inout)
:: ff_type ...
POINTER
:: qmmm_env ...
LOGICAL
:: fatal ...
INTEGER
:: iw ...
POINTER
:: ainfo(:) ...
POINTER
:: chm_info ...
POINTER
:: inp_info ...
POINTER
:: gro_info ...
POINTER
:: amb_info ...
POINTER
:: potparm_nonbond ...
POINTER
:: ewald_env ...

SUBROUTINEforce_field_pack_nonbond14(atomic_kind_set, ff_type, qmmm_env, iw, ainfo, chm_info, inp_info, gro_info, amb_info, potparm_nonbond14, ewald_env)

Assign input and potential info to potparm_nonbond14

Arguments:
POINTER
:: atomic_kind_set(:) ...
INTENT(inout)
:: ff_type ...
POINTER
:: qmmm_env ...
INTEGER
:: iw ...
POINTER
:: ainfo(:) ...
POINTER
:: chm_info ...
POINTER
:: inp_info ...
POINTER
:: gro_info ...
POINTER
:: amb_info ...
POINTER
:: potparm_nonbond14 ...
POINTER
:: ewald_env ...

SUBROUTINEforce_field_pack_opbend(particle_set, molecule_kind_set, molecule_set, ainfo, inp_info)

Pack in opbend information needed for the force_field. No loop over params for charmm, amber and gromos since these force fields have no opbends

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
POINTER
:: ainfo(:) ...
POINTER
:: inp_info ...

SUBROUTINEforce_field_pack_pol(atomic_kind_set, iw, inp_info)

Set up the polarizable FF parameters

Arguments:
POINTER
:: atomic_kind_set(:) ...
INTEGER,
INTENT(in)
:: iw ...
POINTER
:: inp_info ...

SUBROUTINEforce_field_pack_radius(atomic_kind_set, iw, subsys_section)

Set up the radius of the electrostatic multipole in Fist

Arguments:
POINTER
:: atomic_kind_set(:) ...
INTEGER,
INTENT(in)
:: iw ...
POINTER
:: subsys_section ...

SUBROUTINEforce_field_pack_shell(particle_set, atomic_kind_set, molecule_kind_set, molecule_set, root_section, subsys_section, shell_particle_set, core_particle_set, cell, iw, inp_info)

Set up shell potential parameters

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: atomic_kind_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
POINTER
:: root_section ...
POINTER
:: subsys_section ...
POINTER
:: shell_particle_set(:) ...
POINTER
:: core_particle_set(:) ...
TYPE(cell_type),
POINTER
:: cell ...
INTEGER
:: iw ...
POINTER
:: inp_info ...

SUBROUTINEforce_field_pack_splines(atomic_kind_set, ff_type, iw2, iw3, iw4, potparm, do_zbl, nonbonded_type)

create the pair potential spline environment

Arguments:
POINTER
:: atomic_kind_set(:) ...
INTENT(inout)
:: ff_type ...
INTEGER
:: iw2 ...
INTEGER
:: iw3 ...
INTEGER
:: iw4 ...
POINTER
:: potparm ...
LOGICAL,
INTENT(in)
:: do_zbl ...
CHARACTER(*),
INTENT(in)
:: nonbonded_type ...

SUBROUTINEforce_field_pack_tors(particle_set, molecule_kind_set, molecule_set, ainfo, chm_info, inp_info, gro_info, amb_info, iw)

Pack in torsion information needed for the force_field

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
POINTER
:: ainfo(:) ...
POINTER
:: chm_info ...
POINTER
:: inp_info ...
POINTER
:: gro_info ...
POINTER
:: amb_info ...
INTEGER,
INTENT(in)
:: iw ...

SUBROUTINEforce_field_pack_ub(particle_set, molecule_kind_set, molecule_set, ainfo, chm_info, inp_info, iw)

Pack in Urey-Bradley information needed for the force_field

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
POINTER
:: ainfo(:) ...
POINTER
:: chm_info ...
POINTER
:: inp_info ...
INTEGER
:: iw ...

SUBROUTINEforce_field_unique_bend(particle_set, molecule_kind_set, molecule_set, ff_type)

Determine the number of unique bend kind and allocate bend_kind_set

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
INTENT(inout)
:: ff_type ...

SUBROUTINEforce_field_unique_bond(particle_set, molecule_kind_set, molecule_set, ff_type)

Determine the number of unique bond kind and allocate bond_kind_set

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
INTENT(inout)
:: ff_type ...

SUBROUTINEforce_field_unique_impr(particle_set, molecule_kind_set, molecule_set, ff_type)

Determine the number of unique impr kind and allocate impr_kind_set

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
INTENT(inout)
:: ff_type ...

SUBROUTINEforce_field_unique_opbend(particle_set, molecule_kind_set, molecule_set, ff_type)

Determine the number of unique opbend kind and allocate opbend_kind_set based on the present impropers. With each improper, there also corresponds a opbend

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
INTENT(inout)
:: ff_type ...

SUBROUTINEforce_field_unique_tors(particle_set, molecule_kind_set, molecule_set, ff_type)

Determine the number of unique torsion kind and allocate torsion_kind_set

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...
INTENT(inout)
:: ff_type ...

SUBROUTINEforce_field_unique_ub(particle_set, molecule_kind_set, molecule_set)

Determine the number of unique Urey-Bradley kind and allocate ub_kind_set

Arguments:
POINTER
:: particle_set(:) ...
POINTER
:: molecule_kind_set(:) ...
POINTER
:: molecule_set(:) ...