1!--------------------------------------------------------------------------------------------------!
2!   CP2K: A general program to perform molecular dynamics simulations                              !
3!   Copyright (C) 2000 - 2019  CP2K developers group                                               !
4!--------------------------------------------------------------------------------------------------!
5
6! **************************************************************************************************
7!> \brief collects all constants needed in input so that they can be used without
8!>      circular dependencies
9!> \par History
10!>      02.2005 created [fawzi&Joost]
11!>      10.2008 Teodoro Laino [tlaino] - University of Zurich
12!>              Cleaned this file of all arrays of strings. Here must be kept
13!>              only integer/real global constants
14! **************************************************************************************************
15MODULE input_constants
16
17   USE kinds,                           ONLY: dp
18
19   IMPLICIT NONE
20   PRIVATE
21
22   ! Tags for development/release versions
23   INTEGER, PARAMETER, PUBLIC               :: id_development_version = 0, &
24                                               id_release_version = 1
25
26   ! Program Names
27   INTEGER, PARAMETER, PUBLIC               :: do_atom = 1, &
28                                               do_farming = 2, &
29                                               do_test = 3, &
30                                               do_cp2k = 4, &
31                                               do_optimize_input = 5, &
32                                               do_opt_basis = 6, &
33                                               do_tree_mc = 7, &
34                                               do_tree_mc_ana = 8, &
35                                               do_swarm = 9
36
37   INTEGER, PARAMETER, PUBLIC               :: opt_force_matching = 1
38
39   INTEGER, PARAMETER, PUBLIC               :: do_full_density = 0, &
40                                               do_spin_density = 1
41
42   INTEGER, PARAMETER, PUBLIC               :: do_no_et = 0, &
43                                               do_et_ddapc = 1
44   ! Method Names
45   INTEGER, PARAMETER, PUBLIC               :: do_qs = 1, &
46                                               do_fist = 2, &
47                                               do_qmmm = 3, &
48                                               do_qmmmx = 4, &
49                                               do_eip = 5, &
50                                               do_mixed = 6, &
51                                               do_embed = 7, &
52                                               do_sirius = 8
53
54   ! QMMM
55   REAL(KIND=dp), PARAMETER, PUBLIC         :: RADIUS_QMMM_DEFAULT = 0.80_dp, & ! Angstrom
56                                               ALPHA_IMOMM_DEFAULT = 1.38_dp, &
57                                               CHARGE_SCALE_FACTOR = 1.00_dp
58   ! BAND
59   INTEGER, PARAMETER, PUBLIC               :: band_md_opt = 0, &
60                                               band_diis_opt = 1
61
62   INTEGER, PARAMETER, PUBLIC               :: do_band_cartesian = 0, &
63                                               do_band_collective = 1
64   ! Weight_types
65   INTEGER, PARAMETER, PUBLIC               :: weight_type_unit = 0, &
66                                               weight_type_mass = 1
67
68   ! diag methods
69   INTEGER, PARAMETER, PUBLIC               :: do_diag_syevd = 1, &
70                                               do_diag_syevx = 2
71   ! initial matrix methods methods
72   INTEGER, PARAMETER, PUBLIC               :: do_mat_random = 1, &
73                                               do_mat_read = 2
74
75   INTEGER, PARAMETER, PUBLIC               :: do_constr_none = 1, &
76                                               do_constr_atomic = 2, &
77                                               do_constr_molec = 3
78
79   INTEGER, PARAMETER, PUBLIC               :: do_cell_cp2k = 1, &
80                                               do_cell_cif = 2, &
81                                               do_cell_xsc = 3
82
83   INTEGER, PARAMETER, PUBLIC               :: rmsd_all = 0, &
84                                               rmsd_list = 1, &
85                                               rmsd_weightlist = 2
86
87   INTEGER, PARAMETER, PUBLIC               :: do_rep_interleaved = 0, &
88                                               do_rep_blocked = 1
89
90   ! MD Ensemble
91   INTEGER, PARAMETER, PUBLIC               :: nve_ensemble = 1, &
92                                               nvt_ensemble = 2, &
93                                               npt_i_ensemble = 3, &
94                                               npt_f_ensemble = 4, &
95                                               nph_uniaxial_ensemble = 5, &
96                                               nph_uniaxial_damped_ensemble = 6, &
97                                               nph_ensemble = 7, &
98                                               isokin_ensemble = 8, &
99                                               reftraj_ensemble = 9, &
100                                               langevin_ensemble = 10, &
101                                               npe_f_ensemble = 11, &
102                                               npe_i_ensemble = 12, &
103                                               nvt_adiabatic_ensemble = 13
104
105   INTEGER, PARAMETER, PUBLIC               :: do_thermo_same_as_part = 100, &
106                                               do_thermo_nose = 101, &
107                                               do_thermo_csvr = 102, &
108                                               do_thermo_gle = 103, &
109                                               do_thermo_al = 104
110
111   ! MD initialisation method
112   INTEGER, PARAMETER, PUBLIC               :: md_init_default = 1, &
113                                               md_init_vib = 2
114
115   ! Run Types
116   INTEGER, PARAMETER, PUBLIC               :: none_run = 1, &
117                                               energy_run = 2, &
118                                               energy_force_run = 3, &
119                                               mol_dyn_run = 4, &
120                                               geo_opt_run = 5, &
121                                               mon_car_run = 6, &
122                                               electronic_spectra_run = 7, &
123                                               debug_run = 8, &
124                                               bsse_run = 9, &
125                                               linear_response_run = 10, &
126                                               pint_run = 11, &
127                                               vib_anal = 12, &
128                                               do_band = 13, &
129                                               cell_opt_run = 14, &
130                                               real_time_propagation = 15, &
131                                               ehrenfest = 16, &
132                                               do_tamc = 17, &
133                                               tree_mc_run = 18, &
134                                               driver_run = 19, &
135                                               negf_run = 20
136
137   ! Run Types of Atom Code
138   INTEGER, PARAMETER, PUBLIC               :: atom_no_run = 1, &
139                                               atom_energy_run = 2, &
140                                               atom_basis_run = 3, &
141                                               atom_pseudo_run = 4
142
143   ! Integral types in Atom Code
144   INTEGER, PARAMETER, PUBLIC               :: do_analytic = 1, &
145                                               do_semi_analytic = 2, &
146                                               do_numeric = 3
147   ! Basis set type for Atom Code
148   INTEGER, PARAMETER, PUBLIC               :: gaussian = 1, &
149                                               geometrical_gto = 2, &
150                                               contracted_gto = 3, &
151                                               slater = 4, &
152                                               numerical = 5
153   ! Method type for Atom Code
154   INTEGER, PARAMETER, PUBLIC               :: do_rks_atom = 1, &
155                                               do_uks_atom = 2, &
156                                               do_rhf_atom = 3, &
157                                               do_uhf_atom = 4, &
158                                               do_rohf_atom = 5
159   ! Relativistic correction for Atom Code
160   INTEGER, PARAMETER, PUBLIC               :: do_nonrel_atom = 100, &
161                                               do_zoramp_atom = 101, &
162                                               do_sczoramp_atom = 102, &
163                                               do_dkh0_atom = 110, &
164                                               do_dkh1_atom = 111, &
165                                               do_dkh2_atom = 112, &
166                                               do_dkh3_atom = 113
167
168   ! Pseudopotential type for Atom Code
169   INTEGER, PARAMETER, PUBLIC               :: no_pseudo = 0, &
170                                               gth_pseudo = 1, &
171                                               upf_pseudo = 2, &
172                                               ecp_pseudo = 3, &
173                                               sgp_pseudo = 4
174   ! Confinement type for Atom Code
175   INTEGER, PARAMETER, PUBLIC               :: no_conf = 0, &
176                                               poly_conf = 1, &
177                                               barrier_conf = 2
178   ! BAND
179   INTEGER, PARAMETER, PUBLIC               :: do_b_neb = 0, &
180                                               do_it_neb = 1, &
181                                               do_ci_neb = 2, &
182                                               do_d_neb = 3, &
183                                               do_sm = 4, &
184                                               do_eb = 5
185
186   INTEGER, PARAMETER, PUBLIC               :: pot_neb_full = 0, &
187                                               pot_neb_fe = 1, &
188                                               pot_neb_me = 2
189
190   INTEGER, PARAMETER, PUBLIC               :: cholesky_off = 0, &
191                                               cholesky_reduce = 1, &
192                                               cholesky_restore = 2, &
193                                               cholesky_inverse = 3, &
194                                               cholesky_dbcsr = 4
195
196   INTEGER, PARAMETER, PUBLIC               :: atomic_guess = 1, &
197                                               restart_guess = 2, &
198                                               random_guess = 3, &
199                                               core_guess = 4, &
200                                               history_guess = 5, &
201                                               no_guess = 6, &
202                                               mopac_guess = 7, &
203                                               sparse_guess = 8, &
204                                               almo_scf_guess = 9, &
205                                               molecular_guess = 10
206
207   ! Projection formulas for the maximum overlap method
208   INTEGER, PARAMETER, PUBLIC               :: momproj_norm = 0, &
209                                               momproj_sum = 1
210
211   ! Type of the MOM method
212   INTEGER, PARAMETER, PUBLIC               :: momtype_mom = 0, &
213                                               momtype_imom = 1
214
215   INTEGER, PARAMETER, PUBLIC               :: almo_frz_none = 0, &
216                                               almo_frz_isolated = 1, &
217                                               almo_frz_crystal = 2, &
218                                               almo_frz_both = 3
219
220   INTEGER, PARAMETER, PUBLIC               :: do_gapw_gcs = 1, &
221                                               do_gapw_gct = 2, &
222                                               do_gapw_log = 3
223
224   INTEGER, PARAMETER, PUBLIC               :: do_pwgrid_spherical = 1, &
225                                               do_pwgrid_ns_fullspace = 2, &
226                                               do_pwgrid_ns_halfspace = 3
227
228   INTEGER, PARAMETER, PUBLIC               :: wfi_use_guess_method_nr = 0, &
229                                               wfi_use_prev_p_method_nr = 1, &
230                                               wfi_use_prev_rho_r_method_nr = 2, &
231                                               wfi_linear_wf_method_nr = 3, &
232                                               wfi_linear_p_method_nr = 4, &
233                                               wfi_linear_ps_method_nr = 5, &
234                                               wfi_use_prev_wf_method_nr = 6, &
235                                               wfi_ps_method_nr = 7, &
236                                               wfi_frozen_method_nr = 8, &
237                                               wfi_aspc_nr = 9
238
239   INTEGER, PARAMETER, PUBLIC               :: do_method_undef = 0, &
240                                               do_method_gapw = 1, &
241                                               do_method_gapw_xc = 2, &
242                                               do_method_gpw = 3, &
243                                               do_method_lrigpw = 4, &
244                                               do_method_rigpw = 5, &
245                                               do_method_mndo = 7, &
246                                               do_method_am1 = 8, &
247                                               do_method_pm3 = 9, &
248                                               do_method_pm6 = 10, &
249                                               do_method_mndod = 11, &
250                                               do_method_pdg = 12, &
251                                               do_method_rm1 = 13, &
252                                               do_method_dftb = 14, &
253                                               do_method_pchg = 15, &
254                                               do_method_pnnl = 16, &
255                                               do_method_ofgpw = 17, &
256                                               do_method_pm6fm = 18, &
257                                               do_method_pw = 19, &
258                                               do_method_xtb = 20
259
260   INTEGER, PARAMETER, PUBLIC               :: do_multipole_section_on = 0, &
261                                               do_multipole_section_off = 1
262
263   INTEGER, PARAMETER, PUBLIC               :: do_ppl_analytic = 0, &
264                                               do_ppl_grid = 1
265
266   INTEGER, PARAMETER, PUBLIC               :: do_se_IS_kdso = 0, &
267                                               do_se_IS_kdso_d = 1, &
268                                               do_se_IS_slater = 2
269
270   INTEGER, PARAMETER, PUBLIC               :: do_se_lr_none = 0, &
271                                               do_se_lr_ewald = 1, &
272                                               do_se_lr_ewald_r3 = 2, &
273                                               do_se_lr_ewald_gks = 3
274
275   INTEGER, PARAMETER, PUBLIC               :: do_par_atom = 0, &
276                                               do_par_grid = 1
277
278   INTEGER, PARAMETER, PUBLIC               :: do_qmmm_center_every_step = 0, &
279                                               do_qmmm_center_setup_only = 1, &
280                                               do_qmmm_center_never = 2
281
282   INTEGER, PARAMETER, PUBLIC                    :: do_qmmm_center_max_minus_min = 0, &
283                                                    do_qmmm_center_pbc_aware = 1
284   ! Thermostats
285   INTEGER, PARAMETER, PUBLIC               :: do_thermo_no_communication = 0, &
286                                               do_thermo_communication = 1, &
287                                               do_thermo_only_master = 2
288
289   ! pint coordinate transformations
290   INTEGER, PARAMETER, PUBLIC               :: transformation_normal = 1, &
291                                               transformation_stage = 2
292
293   ! pint propagator mode
294   INTEGER, PARAMETER, PUBLIC               :: propagator_pimd = 1, &
295                                               propagator_rpmd = 2
296   ! pint propagator mode
297   INTEGER, PARAMETER, PUBLIC               :: integrate_numeric = 1, &
298                                               integrate_exact = 2
299
300   ! piglet S-matrix initialisations
301   INTEGER, PARAMETER, PUBLIC               :: matrix_init_cholesky = 1, &
302                                               matrix_init_diagonal = 2
303
304   ! helium pbc unit cell shapes
305   INTEGER, PARAMETER, PUBLIC               :: helium_cell_shape_none = 0, &
306                                               helium_cell_shape_cube = 1, &
307                                               helium_cell_shape_octahedron = 2
308
309   ! helium-solute interaction potentials
310   INTEGER, PARAMETER, PUBLIC               :: helium_solute_intpot_none = 0, &
311                                               helium_solute_intpot_mwater = 1
312
313   ! helium force selection
314   INTEGER, PARAMETER, PUBLIC               :: helium_forces_average = 0, &
315                                               helium_forces_last = 1
316   ! superfluid density, estimators
317   INTEGER, PARAMETER, PUBLIC               :: estimator_none = 1, &
318                                               estimator_parea = 2, &
319                                               estimator_wnumber = 3, &
320                                               estimator_pcycle = 4, &
321                                               estimator_weighted = 5, &
322                                               estimator_normalization = 6
323
324   ! superfluid density, denominator selector
325   INTEGER, PARAMETER, PUBLIC               :: denominator_unity = 1, &
326                                               denominator_natoms = 2, &
327                                               denominator_inertia = 3, &
328                                               denominator_rperp2 = 4
329
330   ! helium-sampling algorithms
331   INTEGER, PARAMETER, PUBLIC               :: helium_sampling_ceperley = 0, &
332                                               helium_sampling_worm = 1
333
334   ! distribution types for sampling path lengths
335   INTEGER, PARAMETER, PUBLIC               :: helium_mdist_singlev = 1, &
336                                               helium_mdist_uniform = 2, &
337                                               helium_mdist_linear = 3, &
338                                               helium_mdist_quadratic = 4, &
339                                               helium_mdist_exponential = 5, &
340                                               helium_mdist_gaussian = 6
341
342   INTEGER, PARAMETER, PUBLIC               :: perm_plain = 1, &
343                                               perm_cycle = 2
344
345   ! Free Energy methods
346   INTEGER, PARAMETER, PUBLIC               :: do_fe_meta = 0, &
347                                               do_fe_ui = 1, &
348                                               do_fe_ac = 2
349
350   INTEGER, PARAMETER, PUBLIC               :: do_wall_none = 0, &
351                                               do_wall_reflective = 1, &
352                                               do_wall_quadratic = 2, &
353                                               do_wall_quartic = 3, &
354                                               do_wall_gaussian = 4
355
356   INTEGER, PARAMETER, PUBLIC               :: do_wall_p = 0, &
357                                               do_wall_m = 1
358   ! Output formats
359   INTEGER, PARAMETER, PUBLIC               :: dump_atomic = 1, &
360                                               dump_xmol = 2, &
361                                               dump_dcd = 3, &
362                                               dump_pdb = 4, &
363                                               dump_dcd_aligned_cell = 5
364
365   INTEGER, PARAMETER, PUBLIC               :: fmt_id_xyz = 1, &
366                                               fmt_id_pdb = 2
367
368   INTEGER, PARAMETER, PUBLIC               :: do_qmmm_none = 0, &
369                                               do_qmmm_coulomb = 1, &
370                                               do_qmmm_gauss = 2, &
371                                               do_qmmm_swave = 3, &
372                                               do_qmmm_pcharge = 4, &
373                                               do_qmmm_link_imomm = 1, &
374                                               do_qmmm_link_gho = 2, &
375                                               do_qmmm_link_pseudo = 3, &
376                                               do_qmmm_center_none = 0, &
377                                               do_qmmm_center_grid = 1, &
378                                               do_qmmm_wall_none = 0, &
379                                               do_qmmm_wall_reflective = 1, &
380                                               do_qmmm_wall_quadratic = 2, &
381                                               do_qmmm_image_calcmatrix = 0, &
382                                               do_qmmm_image_iter = 1
383
384   INTEGER, PARAMETER, PUBLIC               :: calc_always = 0, &
385                                               calc_once = 1, &
386                                               calc_once_done = 2
387
388   INTEGER, PARAMETER, PUBLIC               :: do_fm_mom_conserv_none = 0, &
389                                               do_fm_mom_conserv_equal_f = 1, &
390                                               do_fm_mom_conserv_equal_a = 2
391
392   INTEGER, PARAMETER, PUBLIC               :: do_fm_mom_conserv_core = 0, &
393                                               do_fm_mom_conserv_qm = 1, &
394                                               do_fm_mom_conserv_buffer = 2
395
396   INTEGER, PARAMETER, PUBLIC               :: do_region_global = 0, &
397                                               do_region_molecule = 1, &
398                                               do_region_massive = 2, &
399                                               do_region_none = 3, &
400                                               do_region_defined = 4, &
401                                               do_bondparm_covalent = 0, &
402                                               do_bondparm_vdw = 1, &
403                                               do_skip_11 = 0, &
404                                               do_skip_12 = 1, &
405                                               do_skip_13 = 2, &
406                                               do_skip_14 = 3, &
407                                               do_conn_psf = 1, &
408                                               do_conn_psf_u = 2, &
409                                               do_conn_generate = 3, &
410                                               do_conn_off = 4, &
411                                               do_conn_mol_set = 5, &
412                                               do_conn_g87 = 6, &
413                                               do_conn_g96 = 7, &
414                                               do_conn_amb7 = 8, &
415                                               do_conn_user = 9, &
416                                               do_coord_off = 0, &
417                                               do_coord_pdb = 1, &
418                                               do_coord_xyz = 2, &
419                                               do_coord_g96 = 3, &
420                                               do_coord_crd = 4, &
421                                               do_coord_cif = 5, &
422                                               do_coord_xtl = 6, &
423                                               do_coord_cp2k = 7
424
425   INTEGER, PARAMETER, PUBLIC               :: do_stress_none = 0, &
426                                               do_stress_analytical = 1, &
427                                               do_stress_numerical = 2, &
428                                               do_stress_diagonal_anal = 3, &
429                                               do_stress_diagonal_numer = 4
430
431   INTEGER, PARAMETER, PUBLIC               :: do_mc_traditional = 0, &
432                                               do_mc_gemc_nvt = 1, &
433                                               do_mc_gemc_npt = 2, &
434                                               do_mc_virial = 3
435
436   INTEGER, PARAMETER, PUBLIC               :: do_loc_none = 0, &
437                                               do_loc_jacobi = 1, &
438                                               do_loc_crazy = 2, &
439                                               do_loc_direct = 3, &
440                                               do_loc_l1_norm_sd = 4, &
441                                               do_loc_scdm = 5
442
443   INTEGER, PARAMETER, PUBLIC               :: do_loc_min = 0, &
444                                               do_loc_max = 1, &
445                                               op_loc_berry = 0, &
446                                               op_loc_boys = 1, &
447                                               op_loc_pipek = 2, &
448                                               op_loc_l1_norm = 3, &
449                                               state_loc_all = 0, &
450                                               state_loc_range = 1, &
451                                               state_loc_list = 2, &
452                                               energy_loc_range = 3, &
453                                               state_loc_none = 4
454
455   INTEGER, PARAMETER, PUBLIC               :: do_loc_homo = 0, &
456                                               do_loc_lumo = 1, &
457                                               do_loc_both = 2
458
459   INTEGER, PARAMETER, PUBLIC               :: orb_s = 0, &
460                                               orb_px = 1, &
461                                               orb_py = 2, &
462                                               orb_pz = 3, &
463                                               orb_dxy = 4, &
464                                               orb_dyz = 5, &
465                                               orb_dzx = 6, &
466                                               orb_dx2 = 7, &
467                                               orb_dy2 = 8, &
468                                               orb_dz2 = 9
469
470   INTEGER, PARAMETER, PUBLIC               :: use_mom_ref_com = 0, &
471                                               use_mom_ref_coac = 1, &
472                                               use_mom_ref_user = 2, &
473                                               use_mom_ref_zero = 3
474
475   INTEGER, PARAMETER, PUBLIC               :: current_gauge_r = 1, &
476                                               current_gauge_r_and_step_func = 2, &
477                                               current_gauge_atom = 3, &
478                                               current_orb_center_wannier = 1, &
479                                               current_orb_center_common = 2, &
480                                               current_orb_center_atom = 3, &
481                                               current_orb_center_box = 4
482
483   INTEGER, PARAMETER, PUBLIC               :: ot_mini_sd = 1, ot_mini_cg = 2, ot_mini_diis = 3, ot_mini_broyden = 4
484   INTEGER, PARAMETER, PUBLIC               :: ot_algo_taylor_or_diag = 1, ot_algo_irac = 2
485   INTEGER, PARAMETER, PUBLIC               :: ot_chol_irac = 1, ot_poly_irac = 2, ot_lwdn_irac = 3
486   INTEGER, PARAMETER, PUBLIC               :: ls_none = 1, ls_2pnt = 2, ls_3pnt = 3, ls_gold = 4, ls_fit = 5
487   INTEGER, PARAMETER, PUBLIC               :: ot_precond_none = 0, &
488                                               ot_precond_full_single = 1, &
489                                               ot_precond_full_kinetic = 2, &
490                                               ot_precond_s_inverse = 3, &
491                                               ot_precond_full_all = 5, &
492                                               ot_precond_full_single_inverse = 6
493   INTEGER, PARAMETER, PUBLIC               :: ot_precond_solver_default = 1, &
494                                               ot_precond_solver_inv_chol = 2, &
495                                               ot_precond_solver_direct = 3, &
496                                               ot_precond_solver_update = 4
497
498   INTEGER, PARAMETER, PUBLIC               :: diag_standard = 1, &
499                                               diag_ot = 2, &
500                                               diag_block_krylov = 3, &
501                                               diag_block_davidson = 4, &
502                                               diag_filter_matrix = 5
503
504   INTEGER, PUBLIC, PARAMETER               :: default_lbfgs_method_id = 1, &
505                                               default_bfgs_method_id = 2, &
506                                               default_cg_method_id = 3
507
508   INTEGER, PUBLIC, PARAMETER               :: default_minimization_method_id = 1, &
509                                               default_ts_method_id = 2, &
510                                               default_cell_method_id = 3, &
511                                               default_shellcore_method_id = 4
512
513   INTEGER, PUBLIC, PARAMETER               :: none_ts_method_id = 0, &
514                                               default_dimer_method_id = 1
515
516   INTEGER, PUBLIC, PARAMETER               :: do_first_rotation_step = 0, &
517                                               do_second_rotation_step = 1, &
518                                               do_third_rotation_step = 2
519
520   INTEGER, PUBLIC, PARAMETER               :: default_cell_geo_opt_id = 0, &
521                                               default_cell_md_id = 1, &
522                                               default_cell_direct_id = 2
523
524   INTEGER, PARAMETER, PUBLIC               :: xc_funct_no_shortcut = 0, &
525                                               xc_funct_blyp = 1, &
526                                               xc_funct_pade = 2, &
527                                               xc_funct_pbe = 3, &
528                                               xc_funct_tpss = 4, &
529                                               xc_funct_hcth120 = 5, &
530                                               xc_funct_olyp = 6, &
531                                               xc_funct_bp = 7, &
532                                               xc_none = 8, &
533                                               xc_funct_xwpbe = 9, &
534                                               xc_funct_b3lyp = 10, &
535                                               xc_funct_pbe0 = 11, &
536                                               xc_funct_beefvdw = 12
537   INTEGER, PARAMETER, PUBLIC               :: sic_none = 0, &
538                                               sic_mauri_us = 1, &
539                                               sic_mauri_spz = 2, &
540                                               sic_ad = 3, &
541                                               sic_eo = 4
542   INTEGER, PARAMETER, PUBLIC               :: sic_list_all = 1, &
543                                               sic_list_unpaired = 2
544   INTEGER, PARAMETER, PUBLIC               :: tddfpt_singlet = 0, &
545                                               tddfpt_triplet = 1, &
546                                               tddfpt_spin_cons = 2, &
547                                               tddfpt_spin_flip = 3
548   INTEGER, PARAMETER, PUBLIC               :: tddfpt_lanczos = 0, &
549                                               tddfpt_davidson = 1
550   INTEGER, PARAMETER, PUBLIC               :: oe_none = 0, &
551                                               oe_lb = 1, &
552                                               oe_gllb = 2, &
553                                               oe_saop = 3, &
554                                               oe_sic = 4
555   INTEGER, PARAMETER, PUBLIC               :: no_excitations = 0, &
556                                               tddfpt_excitations = 1
557   INTEGER, PARAMETER, PUBLIC               :: xc_vdw_fun_none = 100, &
558                                               xc_vdw_fun_pairpot = 101, &
559                                               xc_vdw_fun_nonloc = 102
560   INTEGER, PARAMETER, PUBLIC               :: vdw_pairpot_dftd2 = 1, &
561                                               vdw_pairpot_dftd3 = 2, &
562                                               vdw_pairpot_dftd3bj = 3
563   INTEGER, PARAMETER, PUBLIC               :: vdw_nl_DRSLL = 1, &
564                                               vdw_nl_LMKLL = 2, &
565                                               vdw_nl_RVV10 = 3
566
567   ! Input constants for relativistic calculations
568   INTEGER, PARAMETER, PUBLIC               :: rel_none = 0, &
569                                               rel_dkh = 1, &
570                                               rel_zora = 2
571   INTEGER, PARAMETER, PUBLIC               :: rel_zora_full = 100, &
572                                               rel_zora_mp = 101, &
573                                               rel_sczora_mp = 102
574   INTEGER, PARAMETER, PUBLIC               :: rel_trans_full = 0, &
575                                               rel_trans_molecule = 1, &
576                                               rel_trans_atom = 2
577   INTEGER, PARAMETER, PUBLIC               :: rel_pot_full = 0, &
578                                               rel_pot_erfc = 1
579
580   INTEGER, PARAMETER, PUBLIC               :: do_add = 1, &
581                                               do_remove = 2
582
583   INTEGER, PARAMETER, PUBLIC               :: xc_pot_energy_none = 0, &
584                                               xc_pot_energy_xc_functional = 1, &
585                                               xc_pot_energy_sum_eigenvalues = 2
586
587   INTEGER, PARAMETER, PUBLIC               :: xc_pot_none = 1000, &
588                                               xc_pot_saop = 1001
589
590   ! Hirshfeld partitioning
591   INTEGER, PARAMETER, PUBLIC               :: shape_function_gaussian = 1, &
592                                               shape_function_density = 2
593   INTEGER, PARAMETER, PUBLIC               :: ref_charge_atomic = 100, &
594                                               ref_charge_mulliken = 200
595   INTEGER, PARAMETER, PUBLIC               :: radius_covalent = 10, &
596                                               radius_user = 11, &
597                                               radius_single = 12, &
598                                               radius_vdw = 13, &
599                                               radius_default = 14
600
601   ! MAO
602   INTEGER, PARAMETER, PUBLIC               :: mao_basis_orb = 2000, &
603                                               mao_basis_prim = 2001, &
604                                               mao_basis_ext = 2002
605
606   ! X-Ray spectra Calculation
607   INTEGER, PARAMETER, PUBLIC               :: xas_none = 0, &
608                                               xas_tp_hh = 1, &
609                                               xas_tp_fh = 2, &
610                                               xes_tp_val = 3, &
611                                               xas_tp_xhh = 4, &
612                                               xas_tp_xfh = 5, &
613                                               xas_dscf = 6, &
614                                               xas_tp_flex = 7
615   INTEGER, PARAMETER, PUBLIC               :: xas_not_excited = 0, &
616                                               xas_1s_type = 1, &
617                                               xas_2s_type = 2, &
618                                               xas_2p_type = 3, &
619                                               xas_3s_type = 4, &
620                                               xas_3p_type = 5, &
621                                               xas_3d_type = 6, &
622                                               xas_4s_type = 7, &
623                                               xas_4p_type = 8, &
624                                               xas_4d_type = 9, &
625                                               xas_4f_type = 10
626   INTEGER, PARAMETER, PUBLIC               :: xas_dip_len = 1, &
627                                               xas_dip_vel = 2
628   INTEGER, PARAMETER, PUBLIC               :: xas_scf_default = 0, &
629                                               xas_scf_general = 1
630
631   ! Time-dependent XAS
632   INTEGER, PARAMETER, PUBLIC               :: xas_tdp_by_index = 1, &
633                                               xas_tdp_by_kind = 2, &
634                                               xas_tdp_roks = 1, &
635                                               xas_tdp_uks = 2
636
637   ! Form of dipole operator for TDDFPT oscillator strength calculation
638   INTEGER, PARAMETER, PUBLIC               :: tddfpt_dipole_berry = 1, &
639                                               tddfpt_dipole_length = 2, &
640                                               tddfpt_dipole_velocity = 3
641
642   ! Linear Response for properties
643   INTEGER, PARAMETER, PUBLIC               :: lr_none = 0, &
644                                               lr_chemshift = 1, &
645                                               lr_gtensor = 2, &
646                                               lr_current = 3
647
648   ! EIP models
649   INTEGER, PARAMETER, PUBLIC               :: use_bazant_eip = 1, &
650                                               use_lenosky_eip = 2
651
652   ! ddapc restraint forms
653   INTEGER, PARAMETER, PUBLIC               :: do_ddapc_restraint = 773, &
654                                               do_ddapc_constraint = 774
655
656   ! outer scf types
657   INTEGER, PARAMETER, PUBLIC               :: outer_scf_ddapc_constraint = 123, &
658                                               outer_scf_s2_constraint = 124, &
659                                               outer_scf_becke_constraint = 125, &
660                                               outer_scf_none = 126, &
661                                               outer_scf_basis_center_opt = 127, &
662                                               outer_scf_cdft_constraint = 128, &
663                                               outer_scf_hirshfeld_constraint = 129
664
665   ! outer scf optimizers
666   INTEGER, PARAMETER, PUBLIC               :: outer_scf_optimizer_sd = 1001, &
667                                               outer_scf_optimizer_diis = 1002, &
668                                               outer_scf_optimizer_none = 1003, &
669                                               outer_scf_optimizer_bisect = 1004, &
670                                               outer_scf_optimizer_broyden = 1005, &
671                                               outer_scf_optimizer_newton = 1006, &
672                                               outer_scf_optimizer_secant = 1007, &
673                                               outer_scf_optimizer_newton_ls = 1008
674
675   ! outer scf broyden optimizer types
676   INTEGER, PARAMETER, PUBLIC               :: broyden_type_1 = 1101, &
677                                               broyden_type_1_explicit = 1102, &
678                                               broyden_type_2 = 1103, &
679                                               broyden_type_2_explicit = 1104, &
680                                               broyden_type_1_ls = 1105, &
681                                               broyden_type_1_explicit_ls = 1106, &
682                                               broyden_type_2_ls = 1107, &
683                                               broyden_type_2_explicit_ls = 1108
684
685   ! finite difference types for calculation of inverse jacobian
686   INTEGER, PARAMETER, PUBLIC               :: jacobian_fd1 = 1, &
687                                               jacobian_fd1_backward = 2, &
688                                               jacobian_fd2 = 3, &
689                                               jacobian_fd2_backward = 4, &
690                                               jacobian_fd1_central = 5
691
692   ! s2 restraint forms
693   INTEGER, PARAMETER, PUBLIC               :: do_s2_restraint = 872, &
694                                               do_s2_constraint = 873
695
696   ! Becke cutoff schemes
697   INTEGER, PARAMETER, PUBLIC               :: becke_cutoff_global = 790, &
698                                               becke_cutoff_element = 791
699
700   ! CDFT constraint and control types
701   INTEGER, PARAMETER, PUBLIC               :: ot2cdft = 101, &
702                                               cdft2ot = 102
703
704   ! CDFT constraint type definitions
705   INTEGER, PARAMETER, PUBLIC               :: cdft_charge_constraint = 820, &
706                                               cdft_magnetization_constraint = 821, &
707                                               cdft_alpha_constraint = 822, &
708                                               cdft_beta_constraint = 823
709
710   ! Mixed CDFT calculation run types
711   INTEGER, PARAMETER, PUBLIC               :: mixed_cdft_serial = 90, &
712                                               mixed_cdft_parallel_nobuild = 91, &
713                                               mixed_cdft_parallel = 92
714
715   ! ROKS schemes
716   INTEGER, PARAMETER, PUBLIC               :: general_roks = 1, &
717                                               high_spin_roks = 2
718
719   ! mixing of force envs
720   INTEGER, PARAMETER, PUBLIC               :: mix_linear_combination = 701, &
721                                               mix_minimum = 702, &
722                                               mix_coupled = 703, &
723                                               mix_restrained = 704, &
724                                               mix_generic = 705, &
725                                               mix_mymix = 706, &
726                                               mix_cdft = 707
727
728   ! cost models for distribution 2d
729   INTEGER, PARAMETER, PUBLIC               :: model_block_count = 453, &
730                                               model_block_surface = 454, &
731                                               model_block_lmax = 455
732
733   ! clustering methods
734   INTEGER, PARAMETER, PUBLIC               :: clustering_none = 0, &
735                                               clustering_box = 1, &
736                                               clustering_h_on_heavier = 2, &
737                                               clustering_small_on_larger = 3
738
739   ! HFX potential type (ri_default for RI but used with potentials)
740   INTEGER, PARAMETER, PUBLIC               :: do_potential_coulomb = 1, &
741                                               do_potential_short = 2, &
742                                               do_potential_long = 3, &
743                                               do_potential_mix_cl = 4, &
744                                               do_potential_gaussian = 5, &
745                                               do_potential_mix_lg = 6, &
746                                               do_potential_id = 7, &
747                                               do_potential_truncated = 8, &
748                                               do_potential_mix_cl_trunc = 9, &
749                                               do_potential_TShPSC = 1009, &
750                                               ri_default = 10001
751
752   ! HFX periodic number of shells
753   INTEGER, PARAMETER, PUBLIC               :: do_hfx_auto_shells = -1
754
755   ! adiabatic hybrid type
756   INTEGER, PARAMETER, PUBLIC               :: do_adiabatic_hybrid_mcy3 = 1
757
758   ! adiabatic model type
759   INTEGER, PARAMETER, PUBLIC               :: do_adiabatic_model_pade = 1
760
761   ! HFX evaluation type
762   INTEGER, PARAMETER, PUBLIC               :: hfx_do_eval_energy = 1, &
763                                               hfx_do_eval_forces = 2
764
765   ! mode selctive vibrational analysis
766   INTEGER, PARAMETER, PUBLIC               :: ms_guess_bfgs = 1, &
767                                               ms_guess_atomic = 2, &
768                                               ms_guess_restart = 3, &
769                                               ms_guess_restart_vec = 4, &
770                                               ms_guess_molden = 5
771
772   ! BASIS SET PARAMETER
773   ! This parameter identifies basis sets
774   INTEGER, PARAMETER, PUBLIC               :: use_orb_basis_set = 1, &
775                                               use_aux_fit_basis_set = 2, &
776                                               use_aux_basis_set = 3, &
777                                               use_ri_aux_basis_set = 4, &
778                                               use_lri_basis_set = 5
779   ! ADMM PARAMETER
780   ! This parameter defines the method to use for the purification
781   INTEGER, PARAMETER, PUBLIC               :: do_admm_purify_none = 1, &
782                                               do_admm_purify_cauchy = 2, &
783                                               do_admm_purify_cauchy_subspace = 3, &
784                                               do_admm_purify_mo_diag = 4, &
785                                               do_admm_purify_mo_no_diag = 5, &
786                                               do_admm_purify_mcweeny = 6, &
787                                               do_admm_purify_none_dm = 7
788
789   ! This parameter defines when to use blocking
790   INTEGER, PARAMETER, PUBLIC               :: do_admm_basis_projection = 0, &
791                                               do_admm_blocking_purify_full = 1, &
792                                               do_admm_blocked_projection = 2, &
793                                               do_admm_charge_constrained_projection = 3
794
795   ! This parameter defines when to use blocking
796   INTEGER, PARAMETER, PUBLIC               :: do_admm_aux_exch_func_default = 0, &
797                                               do_admm_aux_exch_func_pbex = 1, &
798                                               do_admm_aux_exch_func_none = 2, &
799                                               do_admm_aux_exch_func_opt = 3, &
800                                               do_admm_aux_exch_func_bee = 4
801
802   ! Define scaling of the exchange correction
803   INTEGER, PARAMETER, PUBLIC               :: do_admm_exch_scaling_none = 0, &
804                                               do_admm_exch_scaling_merlot = 1
805
806   ! Define DFT+U method identifier codes
807   INTEGER, PARAMETER, PUBLIC               :: plus_u_lowdin = 1, &
808                                               plus_u_mulliken = 2, &
809                                               plus_u_mulliken_charges = 3
810
811   ! Define identifier codes for smearing method
812   INTEGER, PARAMETER, PUBLIC               :: smear_energy_window = 1, &
813                                               smear_fermi_dirac = 2, &
814                                               smear_list = 3
815
816   ! Define identifier codes for mixing method
817
818   INTEGER, PARAMETER, PUBLIC               :: no_mix = 0, &
819                                               direct_p_mix = 1, &
820                                               kerker_mix = 2, &
821                                               pulay_mix = 3, &
822                                               broy_mix = 4, &
823                                               broy_mix_new = 5, &
824                                               multisec_mix = 6
825
826   ! DIAGONALIZATION library
827   INTEGER, PARAMETER, PUBLIC               :: do_diag_sl = 1, &
828                                               do_diag_elpa = 2
829   ! FFT library
830   ! these might need sync with fft_lib.F
831   INTEGER, PARAMETER, PUBLIC               :: do_fft_sg = 1, &
832                                               do_fft_fftw3 = 3
833   INTEGER, PARAMETER, PUBLIC               :: fftw_plan_estimate = 1, &
834                                               fftw_plan_measure = 2, &
835                                               fftw_plan_patient = 3, &
836                                               fftw_plan_exhaustive = 4
837
838   !real time propagation
839   INTEGER, PARAMETER, PUBLIC               :: do_taylor = 1, &
840                                               do_pade = 2, &
841                                               do_arnoldi = 3, &
842                                               do_bch = 4
843
844   INTEGER, PARAMETER, PUBLIC               :: do_etrs = 1, &
845                                               do_cn = 2, &
846                                               do_em = 3
847
848   INTEGER, PARAMETER, PUBLIC               :: use_scf_wfn = 1, &
849                                               use_restart_wfn = 2, &
850                                               use_rt_restart = 3
851
852   INTEGER, PARAMETER, PUBLIC               :: constant_env = 1, &
853                                               gaussian_env = 2, &
854                                               ramp_env = 3, &
855                                               custom_env = 4
856
857   ! how to solve polarizable force fields
858   INTEGER, PARAMETER, PUBLIC               :: do_fist_pol_none = 1, &
859                                               do_fist_pol_sc = 2, &
860                                               do_fist_pol_cg = 3
861
862   ! some dm_ls_scf parameters
863   INTEGER, PARAMETER, PUBLIC               :: ls_s_preconditioner_none = 7, &
864                                               ls_s_preconditioner_atomic = 13, &
865                                               ls_s_preconditioner_molecular = 17
866
867   INTEGER, PARAMETER, PUBLIC               :: ls_cluster_atomic = 111, &
868                                               ls_cluster_molecular = 112
869
870   INTEGER, PARAMETER, PUBLIC               :: ls_s_inversion_hotelling = 3, &
871                                               ls_s_inversion_sign_sqrt = 5, &
872                                               ls_s_inversion_none = 6
873
874   INTEGER, PARAMETER, PUBLIC               :: ls_s_sqrt_ns = 1, &
875                                               ls_s_sqrt_proot = 2
876
877   INTEGER, PARAMETER, PUBLIC               :: ls_scf_sign = 17, ls_scf_trs4 = 18, &
878                                               ls_scf_tc2 = 19, ls_scf_pexsi = 20
879
880   INTEGER, PARAMETER, PUBLIC               :: ls_scf_sign_ns = 1, ls_scf_sign_proot = 2
881
882   INTEGER, PARAMETER, PUBLIC               :: ls_scf_line_search_3point = 3, &
883                                               ls_scf_line_search_3point_2d = 6
884   ! some ZMP paramenters
885   INTEGER, PARAMETER, PUBLIC               :: use_coulomb = 1, &
886                                               use_diff = 2, &
887                                               use_no = 3
888
889   ! parameters for ALMO methods
890   INTEGER, PARAMETER, PUBLIC   :: almo_domain_layout_orbital = 1, &
891                                   almo_domain_layout_atomic = 10, &
892                                   almo_domain_layout_molecular = 100
893
894   INTEGER, PARAMETER, PUBLIC   :: almo_mat_distr_atomic = 1, &
895                                   almo_mat_distr_molecular = 2
896
897   INTEGER, PARAMETER, PUBLIC   :: almo_constraint_block_diagonal = 0, &
898                                   almo_constraint_distance = 1, &
899                                   almo_constraint_ao_overlap = 2
900
901   ! methods to treat electron delocalization
902   INTEGER, PARAMETER, PUBLIC   :: almo_deloc_none = 0, &
903                                   almo_deloc_x = 10, &
904                                   almo_deloc_xalmo_x = 11, &
905                                   almo_deloc_xk = 12, &
906                                   almo_deloc_xalmo_scf = 13, &
907                                   almo_deloc_xalmo_1diag = 14, &
908                                   almo_deloc_scf = 100, &
909                                   almo_deloc_x_then_scf = 110
910
911   INTEGER, PARAMETER, PUBLIC   :: almo_scf_dm_sign = 1, &
912                                   almo_scf_diag = 2, &
913                                   almo_scf_pcg = 3, &
914                                   almo_scf_skip = 4
915
916   INTEGER, PARAMETER, PUBLIC   :: almo_occ_vol_penalty_none = 0, &
917                                   almo_occ_vol_penalty_lndet = 1
918
919   ! optimizer parameters
920   INTEGER, PARAMETER, PUBLIC   :: cg_zero = 0, &
921                                   cg_polak_ribiere = 1, &
922                                   cg_fletcher_reeves = 2, &
923                                   cg_hestenes_stiefel = 3, &
924                                   cg_fletcher = 4, &
925                                   cg_liu_storey = 5, &
926                                   cg_dai_yuan = 6, &
927                                   cg_hager_zhang = 7
928   INTEGER, PARAMETER, PUBLIC   :: optimizer_diis = 1, &
929                                   optimizer_pcg = 2, &
930                                   optimizer_lin_eq_pcg = 3
931   INTEGER, PARAMETER, PUBLIC   :: xalmo_prec_zero = 0, &
932                                   xalmo_prec_domain = 1, &
933                                   xalmo_prec_full = 2
934   INTEGER, PARAMETER, PUBLIC   :: xalmo_case_block_diag = 0, &
935                                   xalmo_case_fully_deloc = 1, &
936                                   xalmo_case_normal = -1
937   INTEGER, PARAMETER, PUBLIC   :: xalmo_trial_simplex = 0, &
938                                   xalmo_trial_r0_out = 1
939
940   ! parameters for CT methods
941   INTEGER, PARAMETER, PUBLIC   :: tensor_orthogonal = 1, &
942                                   tensor_up_down = 2
943   INTEGER, PARAMETER, PUBLIC   :: virt_full = 1, &
944                                   virt_minimal = 2, &
945                                   virt_occ_size = 3, &
946                                   virt_number = 4
947
948   ! spd matrix inversion algorithm
949   INTEGER, PARAMETER, PUBLIC   :: spd_inversion_ls_hotelling = 0, &
950                                   spd_inversion_dense_cholesky = 1, &
951                                   spd_inversion_ls_taylor = 2
952
953   ! some MP2 parameters
954   INTEGER, PARAMETER, PUBLIC               :: mp2_method_none = 0, &
955                                               mp2_method_direct = 4, &
956                                               mp2_method_gpw = 6, &
957                                               ri_mp2_method_gpw = 7, &
958                                               ri_rpa_method_gpw = 8, &
959                                               ri_mp2_laplace = 9, &
960                                               mp2_ri_optimize_basis = 10, &
961                                               wfc_mm_style_gemm = 11, &
962                                               wfc_mm_style_syrk = 12
963
964   ! G0W0 parameter
965   INTEGER, PARAMETER, PUBLIC               :: ri_rpa_g0w0_crossing_none = 0, &
966                                               ri_rpa_g0w0_crossing_z_shot = 1, &
967                                               ri_rpa_g0w0_crossing_newton = 2, &
968                                               ri_rpa_g0w0_crossing_bisection = 3, &
969                                               gw_no_print_exx = 5, &
970                                               gw_print_exx = 6, &
971                                               gw_read_exx = 7, &
972                                               gw_skip_for_regtest = 8
973
974   INTEGER, PARAMETER, PUBLIC               :: gw_pade_approx = 0, &
975                                               gw_two_pole_model = 1
976
977   ! periodic RESP parameters
978   INTEGER, PARAMETER, PUBLIC               :: do_resp_x_dir = 0, &
979                                               do_resp_y_dir = 1, &
980                                               do_resp_z_dir = 2, &
981                                               do_resp_minus_x_dir = 3, &
982                                               do_resp_minus_y_dir = 4, &
983                                               do_resp_minus_z_dir = 5, &
984                                               use_cambridge_vdw_radii = 0, &
985                                               use_uff_vdw_radii = 1
986
987   ! basis optimization parameters
988   INTEGER, PARAMETER, PUBLIC               :: do_opt_all = 0, &
989                                               do_opt_none = 1, &
990                                               do_opt_coeff = 2, &
991                                               do_opt_exps = 3
992
993   ! LRI paramters for inverse of overlap
994   INTEGER, PARAMETER, PUBLIC               :: do_lri_inv = 0, &
995                                               do_lri_pseudoinv_svd = 1, &
996                                               do_lri_pseudoinv_diag = 2, &
997                                               do_lri_inv_auto = 3
998
999   ! LRI basis optimization parameters
1000   INTEGER, PARAMETER, PUBLIC               :: do_lri_opt_all = 0, &
1001                                               do_lri_opt_coeff = 1, &
1002                                               do_lri_opt_exps = 2
1003
1004   ! Active smape model parameters
1005   INTEGER, PARAMETER, PUBLIC               :: hf_model = 100, &
1006                                               rsdft_model = 101, &
1007                                               dmft_model = 102
1008
1009   ! callgraph parameters
1010   INTEGER, PARAMETER, PUBLIC               :: callgraph_none = 0, &
1011                                               callgraph_master = 1, &
1012                                               callgraph_all = 2
1013
1014   ! kg coloring parameters
1015   INTEGER, PARAMETER, PUBLIC               :: kg_color_dsatur = 0, &
1016                                               kg_color_greedy = 1
1017   ! kg kinetic energy embedding potential
1018   INTEGER, PARAMETER, PUBLIC               :: kg_tnadd_embed = 100, &
1019                                               kg_tnadd_embed_ri = 101, &
1020                                               kg_tnadd_atomic = 200, &
1021                                               kg_tnadd_none = 300
1022
1023   ! kg energy corrections
1024   INTEGER, PARAMETER, PUBLIC               :: kg_ec_diagonalization = 1001
1025
1026   INTEGER, PARAMETER, PUBLIC               :: kg_ec_functional_harris = 2001
1027
1028   INTEGER, PARAMETER, PUBLIC               :: kg_cholesky = 3001
1029
1030   ! swarm parameters
1031   INTEGER, PARAMETER, PUBLIC               :: swarm_do_glbopt = 1
1032
1033   ! global opt parameters
1034   INTEGER, PARAMETER, PUBLIC               :: glbopt_do_minhop = 1, &
1035                                               glbopt_do_mincrawl = 2
1036
1037   ! Self-consistent continuum solvation (SCCS) models
1038   INTEGER, PARAMETER, PUBLIC               :: sccs_andreussi = 0, &
1039                                               sccs_fattebert_gygi = 1
1040
1041   ! Derivative method used by the SCCS
1042   INTEGER, PARAMETER, PUBLIC               :: sccs_derivative_fft = 0, &
1043                                               sccs_derivative_cd3 = 1, &
1044                                               sccs_derivative_cd5 = 2, &
1045                                               sccs_derivative_cd7 = 3
1046
1047   ! fm matrix multiplication
1048   INTEGER, PARAMETER, PUBLIC               :: do_pdgemm = 1, &
1049                                               do_dbcsr = 2
1050
1051   ! Dispersion DFTB
1052   INTEGER, PARAMETER, PUBLIC               :: dispersion_uff = 100, &
1053                                               dispersion_d3 = 200
1054
1055   ! Transport section
1056   INTEGER, PARAMETER, PUBLIC               :: transport_localscf = 1, &
1057                                               transport_transmission = 2, &
1058                                               transport_negf = 3, &
1059                                               linsolver_splitsolve = 11, &
1060                                               linsolver_superlu = 12, &
1061                                               linsolver_mumps = 13, &
1062                                               linsolver_full = 14, &
1063                                               linsolver_banded = 15, &
1064                                               linsolver_pardiso = 16, &
1065                                               linsolver_umfpack = 17, &
1066                                               matrixinv_full = 101, &
1067                                               matrixinv_pexsi = 102, &
1068                                               matrixinv_pardiso = 103, &
1069                                               matrixinv_rgf = 104, &
1070                                               injmethod_evp = 21, &
1071                                               injmethod_beyn = 22, &
1072                                               injsign_positive = 1, &
1073                                               injsign_negative = -1, &
1074                                               rlaxisint_GaussChebyshev = 31, &
1075                                               rlaxisint_trapezoidal = 32, &
1076                                               rlaxisint_readfromfile = 33, &
1077                                               rho_negf = 41, &
1078                                               rho_qtbm = 42, &
1079                                               neutlead_bs = 51, &
1080                                               neutlead_dos = 52
1081
1082   ! Active Space Section: orbital selection methods
1083   INTEGER, PARAMETER, PUBLIC               :: casci_canonical = 100, &
1084                                               wannier_projection = 101, &
1085                                               mao_projection = 102
1086   INTEGER, PARAMETER, PUBLIC               :: eri_method_full_gpw = 1, &
1087                                               eri_method_gpw_ht = 2
1088   INTEGER, PARAMETER, PUBLIC               :: eri_operator_coulomb = 1, &
1089                                               eri_operator_yukawa = 2, &
1090                                               eri_operator_erf = 3, &
1091                                               eri_operator_erfc = 4, &
1092                                               eri_operator_gaussian = 5
1093
1094   INTEGER, PARAMETER, PUBLIC               :: do_eri_gpw = 0, &
1095                                               do_eri_mme = 1, &
1096                                               do_eri_os = 2
1097
1098   ! Cell optimisation constraints
1099   INTEGER, PARAMETER, PUBLIC               :: fix_none = 0, &
1100                                               fix_x = 1, &
1101                                               fix_y = 2, &
1102                                               fix_z = 3, &
1103                                               fix_xy = 4, &
1104                                               fix_xz = 5, &
1105                                               fix_yz = 6
1106
1107   ! Non-equilibrium Green's function method
1108   INTEGER, PARAMETER, PUBLIC               :: negfint_method_cc = 0, &
1109                                               negfint_method_simpson = 1
1110   INTEGER, PARAMETER, PUBLIC               :: negfrun_main = 0, &
1111                                               negfrun_fermilevel = 1
1112   ! Type of embedding
1113   INTEGER, PARAMETER, PUBLIC               :: dfet = 0, &
1114                                               dmfet = 1
1115
1116   ! DFT embedding: optimization of potential
1117   INTEGER, PARAMETER, PUBLIC               :: embed_steep_desc = 0, &
1118                                               embed_quasi_newton = 1, &
1119                                               embed_level_shift = 2
1120   INTEGER, PARAMETER, PUBLIC               :: embed_grid_bohr = 0, &
1121                                               embed_grid_angstrom = 1
1122   INTEGER, PARAMETER, PUBLIC               :: embed_none = 0, &
1123                                               embed_diff = 1, &
1124                                               embed_fa = 2, &
1125                                               embed_resp = 3
1126
1127   ! MOLDEN format
1128   INTEGER, PARAMETER, PUBLIC               :: gto_cartesian = 1, &
1129                                               gto_spherical = 2
1130
1131END MODULE input_constants
1132