Documentation for module mc_types

holds all the structure types needed for Monte Carlo, except the mc_environment_type

source: mc_types.F
Loading...

public Types:

mc_molecule_info_type
...
mc_simulation_parameters_p_type
...
mc_moves_p_type
...
mc_averages_type
...
accattempt
...
mc_ekin_type
...
mc_moves_type
...
mc_averages_p_type
...
mc_simpar_type
...
mc_input_file_type
...

public Subroutines/Functions:

finds the largest interaction cutoff value in a classical simulation so we know the smallest size we can make the box in a volume move
accesses the private elements of the mc_input_file_type
...
...
figures out the number of total molecules, the number of atoms in each molecule, an array with the molecule types, etc...a lot of information that we need. I did this because I use multiple force_env (simulation boxes) for MC, and they don't know about each other.
creates (allocates) the mc_input_file_type
destroys (deallocates) things in the mc_input_file_type
...
deallocates all the arrays in the mc_molecule_info_type
creates (allocates) the mc_simulation_parameters type
destroys (deallocates) the mc_simulation_parameters type
reads in the Monte Carlo simulation parameters from an input file
...

public Types:

TYPE :: accattempt

...


INTEGER
:: successes ...
INTEGER
:: qsuccesses ...
INTEGER
:: attempts ...

TYPE :: mc_averages_p_type

...


POINTER :: averages ...

TYPE :: mc_averages_type

...


REAL(dp)
:: ave_energy ...
REAL(dp)
:: ave_energy_squared ...
REAL(dp)
:: ave_volume ...
REAL(dp)
:: molecules ...

TYPE :: mc_ekin_type

...


REAL(dp)
:: initial_ekin ...
REAL(dp)
:: final_ekin ...

TYPE :: mc_input_file_type

...


INTEGER
:: run_type_row ...
INTEGER
:: run_type_column ...
INTEGER
:: coord_row_start ...
INTEGER
:: coord_row_end ...
INTEGER
:: cell_row ...
INTEGER
:: cell_column ...
INTEGER
:: global_row_end ...
INTEGER
:: in_use ...
INTEGER
:: nunits_empty ...
INTEGER
:: motion_row_end ...
INTEGER
:: motion_row_start ...
INTEGER,
DIMENSION(:), POINTER :: mol_set_nmol_row ...
INTEGER,
DIMENSION(:), POINTER :: mol_set_nmol_column ...
DIMENSION(:), POINTER :: text ...
DIMENSION(:), POINTER :: atom_names_empty ...
REAL(dp),
DIMENSION(:,:), POINTER :: coordinates_empty ...

TYPE :: mc_molecule_info_type

...


INTEGER
:: nboxes ...
DIMENSION(:), POINTER :: names ...
DIMENSION(:,:), POINTER :: atom_names ...
REAL(dp),
DIMENSION(:,:), POINTER :: conf_prob ...
REAL(dp),
DIMENSION(:,:), POINTER :: mass ...
INTEGER,
DIMENSION(:,:), POINTER :: nchains ...
INTEGER
:: nmol_types ...
INTEGER
:: nchain_total ...
INTEGER,
DIMENSION(:), POINTER :: nunits ...
INTEGER,
DIMENSION(:), POINTER :: mol_type ...
INTEGER,
DIMENSION(:), POINTER :: nunits_tot ...
INTEGER,
DIMENSION(:), POINTER :: in_box ...

TYPE :: mc_moves_p_type

...


POINTER :: moves ...

TYPE :: mc_moves_type

...


TYPE(accattempt),
POINTER :: bias_bond ...
TYPE(accattempt),
POINTER :: bias_angle ...
TYPE(accattempt),
POINTER :: bias_dihedral ...
TYPE(accattempt),
POINTER :: bias_trans ...
TYPE(accattempt),
POINTER :: bias_cltrans ...
TYPE(accattempt),
POINTER :: bias_rot ...
TYPE(accattempt),
POINTER :: bond ...
TYPE(accattempt),
POINTER :: angle ...
TYPE(accattempt),
POINTER :: dihedral ...
TYPE(accattempt),
POINTER :: trans ...
TYPE(accattempt),
POINTER :: cltrans ...
TYPE(accattempt),
POINTER :: rot ...
TYPE(accattempt),
POINTER :: swap ...
TYPE(accattempt),
POINTER :: volume ...
TYPE(accattempt),
POINTER :: hmc ...
TYPE(accattempt),
POINTER :: avbmc_inin ...
TYPE(accattempt),
POINTER :: avbmc_outin ...
TYPE(accattempt),
POINTER :: avbmc_inout ...
TYPE(accattempt),
POINTER :: avbmc_outout ...
TYPE(accattempt),
POINTER :: quickstep ...
REAL(dp)
:: trans_dis ...
REAL(dp)
:: qtrans_dis ...
REAL(dp)
:: cltrans_dis ...
REAL(dp)
:: qcltrans_dis ...
INTEGER
:: empty ...
INTEGER
:: grown ...
INTEGER
:: empty_conf ...
INTEGER
:: empty_avbmc ...

TYPE :: mc_simpar_type

...


INTEGER,
DIMENSION(:), POINTER :: avbmc_atom ...
INTEGER
:: nstep ...
INTEGER
:: iupvolume ...
INTEGER
:: iuptrans ...
INTEGER
:: iupcltrans ...
INTEGER
:: nvirial ...
INTEGER
:: nbox ...
INTEGER
:: nmoves ...
INTEGER
:: nswapmoves ...
INTEGER
:: rm ...
INTEGER
:: cl ...
INTEGER
:: diff ...
INTEGER
:: nstart ...
INTEGER
:: source ...
INTEGER
:: group ...
INTEGER
:: iprint ...
LOGICAL
:: ldiscrete ...
LOGICAL
:: lbias ...
LOGICAL
:: ionode ...
LOGICAL
:: lrestart ...
LOGICAL
:: lstop ...
LOGICAL
:: lhmc ...
CHARACTER(20)
:: ensemble ...
:: restart_file_name ...
:: molecules_file ...
:: moves_file ...
:: coords_file ...
:: energy_file ...
:: displacement_file ...
:: cell_file ...
:: dat_file ...
:: data_file ...
:: box2_file ...
CHARACTER(200)
:: fft_lib ...
CHARACTER(50)
:: program ...
REAL(dp),
DIMENSION(:), POINTER :: pmtraion_mol ...
REAL(dp),
DIMENSION(:), POINTER :: pmtrans_mol ...
REAL(dp),
DIMENSION(:), POINTER :: pmrot_mol ...
REAL(dp),
DIMENSION(:), POINTER :: pmswap_mol ...
REAL(dp),
DIMENSION(:), POINTER :: pbias ...
REAL(dp),
DIMENSION(:), POINTER :: pmavbmc_mol ...
REAL(dp)
:: discrete_step ...
REAL(dp)
:: rmvolume ...
REAL(dp)
:: rmcltrans ...
REAL(dp),
DIMENSION(:), POINTER :: rmbond ...
REAL(dp),
DIMENSION(:), POINTER :: rmangle ...
REAL(dp),
DIMENSION(:), POINTER :: rmdihedral ...
REAL(dp),
DIMENSION(:), POINTER :: rmrot ...
REAL(dp),
DIMENSION(:), POINTER :: rmtrans ...
REAL(dp),
DIMENSION(:), POINTER :: eta ...
REAL(dp)
:: temperature ...
REAL(dp)
:: pressure ...
REAL(dp)
:: rclus ...
REAL(dp)
:: pmavbmc ...
REAL(dp)
:: pmswap ...
REAL(dp)
:: pmvolume ...
REAL(dp)
:: pmvol_box ...
REAL(dp)
:: pmclus_box ...
REAL(dp)
:: pmhmc ...
REAL(dp)
:: pmhmc_box ...
REAL(dp)
:: pmtraion ...
REAL(dp)
:: pmtrans ...
REAL(dp)
:: pmcltrans ...
REAL(dp)
:: beta ...
REAL(dp)
:: rcut ...
REAL(dp),
DIMENSION(:), POINTER :: avbmc_rmin ...
REAL(dp),
DIMENSION(:), POINTER :: avbmc_rmax ...
REAL(dp),
DIMENSION(:), POINTER :: virial_temps ...
POINTER :: mc_input_file ...
POINTER :: mc_bias_file ...
POINTER :: input_file ...
POINTER :: mc_molecule_info ...
REAL(dp)
:: exp_min_val ...
REAL(dp)
:: exp_max_val ...
REAL(dp)
:: min_val ...
REAL(dp)
:: max_val ...
INTEGER
:: rand2skip ...

TYPE :: mc_simulation_parameters_p_type

...


POINTER :: mc_par ...

SUBROUTINEfind_mc_rcut(mc_par, force_env, lterminate)

finds the largest interaction cutoff value in a classical simulation so we know the smallest size we can make the box in a volume move

Arguments:
INTENT(inout)
:: mc_par the structure that will store the parameters
POINTER
:: force_env the force environment that we'll grab the rcut parameter out of
LOGICAL,
INTENT(out)
:: lterminate set to .TRUE. if one of the sides of the box is less than twice the cutoff

SUBROUTINEget_mc_input_file(mc_input_file, run_type_row, run_type_column, coord_row_start, coord_row_end, cell_row, cell_column, global_row_end, mol_set_nmol_row, mol_set_nmol_column, in_use, text, atom_names_empty, nunits_empty, coordinates_empty, motion_row_end, motion_row_start)

accesses the private elements of the mc_input_file_type

Arguments:
POINTER
:: mc_input_file the input file you want data for
INTEGER,
INTENT(out),
OPTIONAL
:: run_type_row ...
INTEGER,
INTENT(out),
OPTIONAL
:: run_type_column ...
INTEGER,
INTENT(out),
OPTIONAL
:: coord_row_start ...
INTEGER,
INTENT(out),
OPTIONAL
:: coord_row_end ...
INTEGER,
INTENT(out),
OPTIONAL
:: cell_row ...
INTEGER,
INTENT(out),
OPTIONAL
:: cell_column ...
INTEGER,
INTENT(out),
OPTIONAL
:: global_row_end ...
INTEGER,
OPTIONAL, POINTER
:: mol_set_nmol_row(:) ...
INTEGER,
OPTIONAL, POINTER
:: mol_set_nmol_column(:) ...
INTEGER,
INTENT(out),
OPTIONAL
:: in_use ...
OPTIONAL, POINTER
:: text(:) ...
OPTIONAL, POINTER
:: atom_names_empty(:) ...
INTEGER,
INTENT(out),
OPTIONAL
:: nunits_empty ...
REAL(dp),
OPTIONAL, POINTER
:: coordinates_empty(:,:) ...
INTEGER,
INTENT(out),
OPTIONAL
:: motion_row_end ...
INTEGER,
INTENT(out),
OPTIONAL
:: motion_row_start ...

SUBROUTINEget_mc_molecule_info(mc_molecule_info, nmol_types, nchain_total, nboxes, names, conf_prob, nchains, nunits, mol_type, nunits_tot, in_box, atom_names, mass)

...

Arguments:
POINTER
:: mc_molecule_info ...
INTEGER,
INTENT(out),
OPTIONAL
:: nmol_types ...
INTEGER,
INTENT(out),
OPTIONAL
:: nchain_total ...
INTEGER,
INTENT(out),
OPTIONAL
:: nboxes ...
OPTIONAL, POINTER
:: names(:) ...
REAL(dp),
OPTIONAL, POINTER
:: conf_prob(:,:) ...
INTEGER,
OPTIONAL, POINTER
:: nchains(:,:) ...
INTEGER,
OPTIONAL, POINTER
:: nunits(:) ...
INTEGER,
OPTIONAL, POINTER
:: mol_type(:) ...
INTEGER,
OPTIONAL, POINTER
:: nunits_tot(:) ...
INTEGER,
OPTIONAL, POINTER
:: in_box(:) ...
OPTIONAL, POINTER
:: atom_names(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: mass(:,:) ...

SUBROUTINEget_mc_par(mc_par, nstep, nvirial, iuptrans, iupcltrans, iupvolume, nmoves, nswapmoves, rm, cl, diff, nstart, source, group, lbias, ionode, lrestart, lstop, rmvolume, rmcltrans, rmbond, rmangle, rmrot, rmtrans, temperature, pressure, rclus, beta, pmswap, pmvolume, pmtraion, pmtrans, pmcltrans, ensemble, program, restart_file_name, molecules_file, moves_file, coords_file, energy_file, displacement_file, cell_file, dat_file, data_file, box2_file, fft_lib, iprint, rcut, ldiscrete, discrete_step, pmavbmc, pbias, avbmc_atom, avbmc_rmin, avbmc_rmax, rmdihedral, input_file, mc_molecule_info, pmswap_mol, pmavbmc_mol, pmtrans_mol, pmrot_mol, pmtraion_mol, mc_input_file, mc_bias_file, pmvol_box, pmclus_box, virial_temps, exp_min_val, exp_max_val, min_val, max_val, eta, pmhmc, pmhmc_box, lhmc, rand2skip)

...

Arguments:
POINTER
:: mc_par ...
INTEGER,
INTENT(out),
OPTIONAL
:: nstep ...
INTEGER,
INTENT(out),
OPTIONAL
:: nvirial ...
INTEGER,
INTENT(out),
OPTIONAL
:: iuptrans ...
INTEGER,
INTENT(out),
OPTIONAL
:: iupcltrans ...
INTEGER,
INTENT(out),
OPTIONAL
:: iupvolume ...
INTEGER,
INTENT(out),
OPTIONAL
:: nmoves ...
INTEGER,
INTENT(out),
OPTIONAL
:: nswapmoves ...
INTEGER,
INTENT(out),
OPTIONAL
:: rm ...
INTEGER,
INTENT(out),
OPTIONAL
:: cl ...
INTEGER,
INTENT(out),
OPTIONAL
:: diff ...
INTEGER,
INTENT(out),
OPTIONAL
:: nstart ...
INTEGER,
INTENT(out),
OPTIONAL
:: source ...
INTEGER,
INTENT(out),
OPTIONAL
:: group ...
LOGICAL,
INTENT(out),
OPTIONAL
:: lbias ...
LOGICAL,
INTENT(out),
OPTIONAL
:: ionode ...
LOGICAL,
INTENT(out),
OPTIONAL
:: lrestart ...
LOGICAL,
INTENT(out),
OPTIONAL
:: lstop ...
REAL(dp),
INTENT(out),
OPTIONAL
:: rmvolume ...
REAL(dp),
INTENT(out),
OPTIONAL
:: rmcltrans ...
REAL(dp),
OPTIONAL, POINTER
:: rmbond(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmangle(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmrot(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmtrans(:) ...
REAL(dp),
INTENT(out),
OPTIONAL
:: temperature ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pressure ...
REAL(dp),
INTENT(out),
OPTIONAL
:: rclus ...
REAL(dp),
INTENT(out),
OPTIONAL
:: beta ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmswap ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmvolume ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmtraion ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmtrans ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmcltrans ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: ensemble ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: program ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: restart_file_name ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: molecules_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: moves_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: coords_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: energy_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: displacement_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: cell_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: dat_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: data_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: box2_file ...
CHARACTER(*),
INTENT(out),
OPTIONAL
:: fft_lib ...
INTEGER,
INTENT(out),
OPTIONAL
:: iprint ...
REAL(dp),
INTENT(out),
OPTIONAL
:: rcut ...
LOGICAL,
INTENT(out),
OPTIONAL
:: ldiscrete ...
REAL(dp),
INTENT(out),
OPTIONAL
:: discrete_step ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmavbmc ...
REAL(dp),
OPTIONAL, POINTER
:: pbias(:) ...
INTEGER,
OPTIONAL, POINTER
:: avbmc_atom(:) ...
REAL(dp),
OPTIONAL, POINTER
:: avbmc_rmin(:) ...
REAL(dp),
OPTIONAL, POINTER
:: avbmc_rmax(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmdihedral(:) ...
OPTIONAL, POINTER
:: input_file ...
OPTIONAL, POINTER
:: mc_molecule_info ...
REAL(dp),
OPTIONAL, POINTER
:: pmswap_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmavbmc_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmtrans_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmrot_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmtraion_mol(:) ...
OPTIONAL, POINTER
:: mc_input_file ...
OPTIONAL, POINTER
:: mc_bias_file ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmvol_box ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmclus_box ...
REAL(dp),
OPTIONAL, POINTER
:: virial_temps(:) ...
REAL(dp),
INTENT(out),
OPTIONAL
:: exp_min_val ...
REAL(dp),
INTENT(out),
OPTIONAL
:: exp_max_val ...
REAL(dp),
INTENT(out),
OPTIONAL
:: min_val ...
REAL(dp),
INTENT(out),
OPTIONAL
:: max_val ...
REAL(dp),
OPTIONAL, POINTER
:: eta(:) ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmhmc ...
REAL(dp),
INTENT(out),
OPTIONAL
:: pmhmc_box ...
LOGICAL,
INTENT(out),
OPTIONAL
:: lhmc ...
INTEGER,
INTENT(out),
OPTIONAL
:: rand2skip ...

SUBROUTINEmc_determine_molecule_info(force_env, mc_molecule_info, box_number, coordinates_empty)

figures out the number of total molecules, the number of atoms in each molecule, an array with the molecule types, etc...a lot of information that we need. I did this because I use multiple force_env (simulation boxes) for MC, and they don't know about each other.

Arguments:
POINTER
:: force_env(:) the pointer containing all the force environments in the simulation
POINTER
:: mc_molecule_info the structure that will hold all the information for the molecule types
INTEGER,
INTENT(in),
OPTIONAL
:: box_number ...
REAL(dp),
OPTIONAL, POINTER
:: coordinates_empty(:,:) ...

SUBROUTINEmc_input_file_create(mc_input_file, input_file_name, mc_molecule_info, empty_coords, lhmc)

creates (allocates) the mc_input_file_type

Arguments:
POINTER
:: mc_input_file the structure that will be created (allocated)
CHARACTER(*),
INTENT(in)
:: input_file_name the name of the file to read
POINTER
:: mc_molecule_info ...
REAL(dp)
:: empty_coords(:,:) ...
LOGICAL,
INTENT(in)
:: lhmc ...

SUBROUTINEmc_input_file_destroy(mc_input_file)

destroys (deallocates) things in the mc_input_file_type

Arguments:
POINTER
:: mc_input_file the structure that will be released (deallocated)

SUBROUTINEmc_input_parameters_check(mc_par)

...

Arguments:
POINTER
:: mc_par ...

SUBROUTINEmc_molecule_info_destroy(mc_molecule_info)

deallocates all the arrays in the mc_molecule_info_type

Arguments:
POINTER
:: mc_molecule_info the structure we wish to deallocate

SUBROUTINEmc_sim_par_create(mc_par, nmol_types)

creates (allocates) the mc_simulation_parameters type

Arguments:
POINTER
:: mc_par the structure that will be created (allocated)
INTEGER,
INTENT(in)
:: nmol_types the number of molecule types in the system

SUBROUTINEmc_sim_par_destroy(mc_par)

destroys (deallocates) the mc_simulation_parameters type

Arguments:
POINTER
:: mc_par the structure that will be destroyed

SUBROUTINEread_mc_section(mc_par, para_env, globenv, input_file_name, input_file, force_env_section)

reads in the Monte Carlo simulation parameters from an input file

Arguments:
POINTER
:: mc_par the structure that will store the parameters
POINTER
:: para_env ...
POINTER
:: globenv the global environment for the simulation
CHARACTER(*),
INTENT(in)
:: input_file_name the name of the input_file
POINTER
:: input_file the structure that contains all the keywords in the input file
POINTER
:: force_env_section used to grab the type of force_env

SUBROUTINEset_mc_par(mc_par, rm, cl, diff, nstart, rmvolume, rmcltrans, rmbond, rmangle, rmdihedral, rmrot, rmtrans, program, nmoves, nswapmoves, lstop, temperature, pressure, rclus, iuptrans, iupcltrans, iupvolume, pmswap, pmvolume, pmtraion, pmtrans, pmcltrans, beta, rcut, iprint, lbias, nstep, lrestart, ldiscrete, discrete_step, pmavbmc, mc_molecule_info, pmavbmc_mol, pmtrans_mol, pmrot_mol, pmtraion_mol, pmswap_mol, avbmc_rmin, avbmc_rmax, avbmc_atom, pbias, ensemble, pmvol_box, pmclus_box, eta, mc_input_file, mc_bias_file, exp_max_val, exp_min_val, min_val, max_val, pmhmc, pmhmc_box, lhmc, ionode, source, group, rand2skip)

...

Arguments:
POINTER
:: mc_par ...
INTEGER,
INTENT(in),
OPTIONAL
:: rm ...
INTEGER,
INTENT(in),
OPTIONAL
:: cl ...
INTEGER,
INTENT(in),
OPTIONAL
:: diff ...
INTEGER,
INTENT(in),
OPTIONAL
:: nstart ...
REAL(dp),
INTENT(in),
OPTIONAL
:: rmvolume ...
REAL(dp),
INTENT(in),
OPTIONAL
:: rmcltrans ...
REAL(dp),
OPTIONAL, POINTER
:: rmbond(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmangle(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmdihedral(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmrot(:) ...
REAL(dp),
OPTIONAL, POINTER
:: rmtrans(:) ...
CHARACTER(*),
INTENT(in),
OPTIONAL
:: program ...
INTEGER,
INTENT(in),
OPTIONAL
:: nmoves ...
INTEGER,
INTENT(in),
OPTIONAL
:: nswapmoves ...
LOGICAL,
INTENT(in),
OPTIONAL
:: lstop ...
REAL(dp),
INTENT(in),
OPTIONAL
:: temperature ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pressure ...
REAL(dp),
INTENT(in),
OPTIONAL
:: rclus ...
INTEGER,
INTENT(in),
OPTIONAL
:: iuptrans ...
INTEGER,
INTENT(in),
OPTIONAL
:: iupcltrans ...
INTEGER,
INTENT(in),
OPTIONAL
:: iupvolume ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmswap ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmvolume ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmtraion ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmtrans ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmcltrans ...
REAL(dp),
INTENT(in),
OPTIONAL
:: beta ...
REAL(dp),
INTENT(in),
OPTIONAL
:: rcut ...
INTEGER,
INTENT(in),
OPTIONAL
:: iprint ...
LOGICAL,
INTENT(in),
OPTIONAL
:: lbias ...
INTEGER,
INTENT(in),
OPTIONAL
:: nstep ...
LOGICAL,
INTENT(in),
OPTIONAL
:: lrestart ...
LOGICAL,
INTENT(in),
OPTIONAL
:: ldiscrete ...
REAL(dp),
INTENT(in),
OPTIONAL
:: discrete_step ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmavbmc ...
OPTIONAL, POINTER
:: mc_molecule_info ...
REAL(dp),
OPTIONAL, POINTER
:: pmavbmc_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmtrans_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmrot_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmtraion_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pmswap_mol(:) ...
REAL(dp),
OPTIONAL, POINTER
:: avbmc_rmin(:) ...
REAL(dp),
OPTIONAL, POINTER
:: avbmc_rmax(:) ...
INTEGER,
OPTIONAL, POINTER
:: avbmc_atom(:) ...
REAL(dp),
OPTIONAL, POINTER
:: pbias(:) ...
CHARACTER(*),
INTENT(in),
OPTIONAL
:: ensemble ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmvol_box ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmclus_box ...
REAL(dp),
OPTIONAL, POINTER
:: eta(:) ...
OPTIONAL, POINTER
:: mc_input_file ...
OPTIONAL, POINTER
:: mc_bias_file ...
REAL(dp),
INTENT(in),
OPTIONAL
:: exp_max_val ...
REAL(dp),
INTENT(in),
OPTIONAL
:: exp_min_val ...
REAL(dp),
INTENT(in),
OPTIONAL
:: min_val ...
REAL(dp),
INTENT(in),
OPTIONAL
:: max_val ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmhmc ...
REAL(dp),
INTENT(in),
OPTIONAL
:: pmhmc_box ...
LOGICAL,
INTENT(in),
OPTIONAL
:: lhmc ...
LOGICAL,
INTENT(in),
OPTIONAL
:: ionode ...
INTEGER,
INTENT(in),
OPTIONAL
:: source ...
INTEGER,
INTENT(in),
OPTIONAL
:: group ...
INTEGER,
INTENT(in),
OPTIONAL
:: rand2skip ...