Procedures

ProcedureLocationProcedure TypeDescription
active_space_occs operations Subroutine

returns a list of occupations, constructed from N_occ by redistributing electrons wihtin the orbitals given in active_space_MO

adapt_wf_nr_basis wavefunction Subroutine

in case the number of basis functions has changed dynamically due to out-projection of high overlap matrix eigenvalues we here adapt the wavefunction object, so that we can smoothly continue the calculation

add_electrostatic_interaction gaussian Subroutine

this is for the direct SCF GTO calculation adds all electrostatic interaction matrix elements to the one-electron Hamiltonian H

add_process process Subroutine

add one process to S - S%value(k): rate or cross section - S%E_eV(k): transition energy in eV, rounded to nearest integer - S%N_process is increased by one. - S%tag is given by P, V, A, F, 2 (two-photon abs.), 3 (three-photon), ...

Read more…
angdelta anglib Function

calculate the function delta as defined in varshalovich et al. for use in 6-j symbol:

associated_legendre_p legendre Function

Function to compute the associated Legendre function of x with order l & m ref) Numerical Recipes in Fortran, pp 246-248

Read more…
associated_legendre_p_array legendre Subroutine

this function calculates all associated Legendre polynomials for every l,m < lmax and return them in an array adapted from the numerical recipes implementation

atomic_density_population_analysis population Subroutine

population analysis based on the grid points

auto_active_space operations Subroutine

from an occupation occ and a new, LC1, and old, LC2, orbital set plus given basis set overlap matrix S12 return the orbital indices that are involved in the changes/rotations of orbitals Ncore is the number of core orbitals

averaged_occs averaging Subroutine

subroutine averaged_occs: returns an array of occupations that describe the occupation patterns which are averaged, using the averaging scheme given in F%av_occ(:) and the occupation N_occ(:)

bfgs_hessian secondorder_scf Subroutine

Broyden-Fletcher-Goldfarb-Shanno (BFGS) method to approximate the inverse hessian by previous step and this step gradient and previous step gradient, and previous estimated hessian

binom anglib Function

calculates binomial

bond_distance molecular_grid Function

calculated distances between atoms (employing periodic boundary conditions)

bondorder_analysis population Subroutine

Calculates bond-order btw atoms. -diagonal elements- should be ignored (in practice they are juat the Mulliken charges) revised 13.09.2016 by Ludger: Bond order is See e.g. INTERNATIONAL JOURNAL OF QUANTUM CHEMISTRY, VOL. XXVI, I S 1-154 ( 1984)

Read more…
braket basis_func Function

braket(): where i, j indicate i-th and j-th basis function braket_Laplacian():

Read more…
c_f_string stdio Subroutine

converts a c_char pointer array cStrPtr to a fortran string fStr

calc_cimatrix mcscf Subroutine

calculates the configuration interaction matrix

calc_cimatrix_diagonal mcscf Subroutine

calculates the configuration interaction matrix (only diagonal elements)

calc_cimatrix_matrix_multp mcscf Subroutine

calculates the matrix-matrix product of the CI matrix with coefficients

calc_cimatrix_vector_multp mcscf Subroutine

calculates the product of the CI matrix with a coefficient vector

calc_elastic_scattering scattering Subroutine

calculates the absolute square Fourier transform of the electron density on a cartesian reciprocal grid

calc_fluorescence_rates fluorescence Subroutine

calculated fluorescence rates between MOs based on independent el. approximation (i.e. based on orbital energies)

calc_fluorescence_rates_ci fluorescence Subroutine

calculated fluorescence rates based on configuration interaction calculation print the configurations in the initial state basis (without projection)

calc_fluorescence_rates_spin fluorescence Subroutine

calculated fluorescence rates between MOs based on independent el. approximation (i.e. based on orbital energies) but resolves individual spin configurations

calc_fluorescence_rates_spin_avg fluorescence Subroutine

calculated fluorescence rates between MOs based on independent el. approximation (i.e. based on orbital energies) but resolves individual spin configurations and considers averaging over configurations

calc_os absorption Subroutine

calculates the oscillator strength based on orbital energies

calc_oscillator_strength_ci absorption Subroutine

calculates the oscillator strenght employing a CI calculation make natural orbitals

calc_oscillator_strength_cis absorption Subroutine

calculates the oscillator strenght based on CIS energies

calc_trans_dipole_moment_bf basis_func Subroutine

calculates the transition dipole matrix elements between basisfunctions and stores them in tdipole_bf( mu, nu, p)

calc_waller_hartree_scattering scattering Subroutine

calculates inelastic scattering in the Waller_Hartree approximation

calcaugerrates augerrates Subroutine

calculates Auger-Meitner decay transitions based on orbital energy differences

calcaugerrates_ci augerrates Subroutine

calculates Auger-Meitner decay transitions based on configuration interaction calculation

calcaugerrates_spin augerrates Subroutine

calculates Auger-Meitner decay transitions based on orbital energy differences resolving individual spin configurations

calcaugerrates_spin_avg augerrates Subroutine

calculates Auger-Meitner decay transitions based on orbital energy differences resolving individual spin configurations and considering averaging over configuration

calculate_1contracted_teints_direct gaussian Subroutine

returns two-electron integrals, where the first index has been contracted with LCAO orbital coefficients LC

Read more…
calculate_cis_gradient_gto gradient Subroutine

this subroutine calculates CIS gradient

calculate_dedr nuclear_derivatives Subroutine

calculate_dEdR : MAIN routine Jnuc_want(Nwant) : iNuc indices of your need ret(3,Nwant) : contains dE/dR vectors

Read more…
calculate_dipole_gaussian_basis_set gaussian Subroutine

calculates dipole matrix elements

calculate_energy_gradient gradient Subroutine

a wrapper for calculate_dEdR defined in nuclear_derivatives.f90

calculate_energy_gradient_gto gradient Subroutine

calculates the RHF/ ROHF / HFS gradient when GTO are used

calculate_entropy finitetemp Function

function returns the electronic entropy -

calculate_f_inactive mcscf Subroutine

return the inactive Fock matrix i.e. from the inactive orbital's density matrix

calculate_f_inactive_direct mcscf Subroutine

return the inactive Fock matrix i.e. from the inactive orbital's density matrix in a direct-SCF context (without pre-calculated teints)

calculate_hkin_gaussian_basis_set gaussian Subroutine

calculates the kinetic energy matrix

calculate_hole_energies_efield gradient Subroutine

calculates Koopmann's hole energies in the presence of an electric field

calculate_hole_energies_gradients_nacs gradient Subroutine

calculates the Koopmann's Theorem gradient assuming that an excited state energy gradient is

calculate_koopmann_energy_gradient gradient Subroutine

this subroutine calculated the Koopmann's Theorem gradient assuming that an ionized state energy gradient is or and anionic state energy is it even calculates gradient for excited states assuming that which ignores mutual interaction between orbital a and i

calculate_legendre legendre Subroutine

Calculate the value of the Legendre polynomial and its derivative input : n = the order of poly., x = the point to be calculated results : p = P_n(x), dp = P'_n(x)

Read more…
calculate_orbital_gradient_gto gradient Subroutine

calculates the gradients of orbital energies

calculate_overlap_gaussian_basis_set gaussian Subroutine

computes the overlap matrix

calculate_photoionization_cs photoionization Subroutine

calculates photoionization cross sections based on orbital energies

calculate_photoionization_cs_ci photoionization Subroutine

computes photoionizatio cross sections employing configuration interaction calculations

calculate_photoionization_cs_spin photoionization Subroutine

calculates photoionization cross sections based on orbital energies resolving individual spin configurations

calculate_photoionization_cs_spin_avg photoionization Subroutine

calculates photoionization cross sections based on orbital energies resolving individual spin configurations and averaging over configurations

calculate_teints_gaussian_basis_set gaussian Subroutine

computes all two-electron integrals

calculate_vcoul_gaussian_basis_set gaussian Subroutine

calculates the external potential energy matrix

calculate_vext_gaussian_basis_set gaussian Subroutine

computes the interaction matrix elements of the electrons with nuclei potential

calculate_weight_grid3d molecular_grid Subroutine

calculate all integration weights on Grid3D and

check_mem_current stdio Interface
check_mem_peak stdio Interface
check_normalized eigen_lapack Interface

Check if w.f. is normalized = 1 if k = k' = 0 if k /= k' with the matrix form wf' wf = I for a real matrix wf^T wf = I for a complex matrix

Read more…
check_time stdio Subroutine

Use this procedure when you want a check point. But, for initilization, you must put this without counter at the very begining of your program. ex) check_time() ... check_time( c, t ) print *, job_time( c )

Read more…
checkpoint stdio Subroutine

checkpoint(): more convenient procedure than check_time() An array time(0:) is a table containing all checkpoint times - time(0) : reference time stamp - time(1) : elapsed time for the first checkpoint - time(2) : elapsed time for the second checkpoint - ... ex) call init_checkpoint( time ) : initialize a time array ... (do some calculations) ... call checkpoint( time ) : make a checkpoint with the time array

Read more…
ci_procedure mcscf Subroutine

performs CI calculations

cis_densitymatrix cis Function

calculates different types of cis density matrix for stateindex state state: state index 1...n typ (optional argument): 'F' for full density matrix 'P' for particle density matrix 'H' for hole density matrix 'T' for transition-density matrix

cis_procedure cis Subroutine

calculates cis states

cistate2occ xmolecule_interface Subroutine

returns the dominant configuration of the CI state with state index state

cleb anglib Function

calculate a clebsch-gordan coefficient arguments are integer and twice the true value.

compare_det spin_coupling Subroutine

compares two determinants specified by determinant path left_det(1:Nopen) right_det(1:Nopen) and occupation left_occ(:) and right_occ(:), respectively. only_left(1:M) and only_right(1:M) returns the orbital indices of electrons that are only present in left and right determinant only_left_spin(1:M) and only_right_spin(1:M) the respective spin of the electrons coef_sign returns the sign produced by flips to bring the determinants into best congruence. The array length M can be arbitrarily. When the number of electrons only present in one determinant exceeds M comparison is quit and coef_sign=0 is returned

compute_impact_ionization_ddcs impact_ionization Subroutine

Computes impact ionization doubly differential cross section (DDCS) and cross section integrated over outgoing energy (DCS) Output total and angle-resolved DCS Write a file "DDCS_DATA.dat" containing the DDCS data for post processing The DDCS_DATA.dat file is organised in data blocks separated by a blank line: First block (First line) : N_theta, N_phi Second block (N_theta lines) : List of theta values (rad) Third block (N_phi lines) : List of phi values (rad) Last block (Last line) : N_trans Block 4 to 3+N_trans (1 + N_phi x N_theta lines )contains the DDCS data for all possible transitions. First line contains : indexes of initial and final MO, transition energy (Ha), coresponding outgoing energy (Ha) The next N_phi x N_theta lines contain (loop over phi then theta) : DDCS(theta,phi), DDCS(theta,phi)*dOmega

compute_impact_ionization_wh impact_ionization Subroutine

Computes impact ionization cross sections (DCS) based on the Waller Hartree approximation. Output total and angle-resolved DCS.

construct_angular_grid angular Subroutine

angular grid

construct_atom_set atom_in_mol Subroutine

constructs atom set

construct_basis basis_func Subroutine

construct (or reconstruct) B from A and G all necessary informations are obtained from - A : atomic orbitals of individual atoms - G : molecular grids

Read more…
construct_csf_array mcscf Subroutine

construcst an array of CSF types for a given set of occupation configurations, spin multiplicity, and irreducible represention

construct_fock_matrix hartreefock Subroutine

This function constructs the RHF Fock Matrix assumes that density matrix is symmetric

construct_fock_matrix2 hartreefock Subroutine

returns RHF Fock matrix

construct_fock_matrix_direct gaussian Subroutine

This procedure constructs the RHF Fock Matrix assumes that density matrix is symmetric

construct_gaussian_basis_set gaussian Subroutine

constructs Gaussian basis set

construct_grid gps Subroutine

general function to generate grids grid_type= LGL, LG, or FGH mapping_type= linear or algebraic(reciprocal) This function does 1) set parameters of N and grid_type 2) allocate memory for r, rp, D1, D2, and so on 2) make computational grids 3) make real grids by means of a mapping function 4) construct D1 and D2

construct_grid3d molecular_grid Subroutine

creates the molecular Grid G

construct_h0_matrix scf Subroutine

calculates the H0 matrix for given basis B: hkin+v_ext contribution

construct_j_matrix hartreefock Subroutine

This function constructs the J Matrix

construct_k_matrix hartreefock Subroutine

construct the K matrix

construct_m_matrix hartreefock Subroutine

this subroutine returns the matrix it expects to find the MO-space twoelectron integrals in F%teint

construct_moo_matrix hartreefock Subroutine

this subroutine returns the matrix it expects to find the MO-space twoelectron integrals in F%teint

construct_moo_matrix2 hartreefock Subroutine

this subroutine returns the matrix it doesn't need transformed integrals

construct_mov_matrix hartreefock Subroutine

this subroutine returns the matrix it expects to find the MO-space twoelectron integrals in F%teint

construct_mov_matrix2 hartreefock Subroutine

this subroutine returns the matrix idea: employ a density difference and screen low contributions

construct_overlap2minimalbasis wavefunction Subroutine

prepares the overlap matrix of the current molecular orbitals to a minimal orbital set based on numerical atomic orbitals

construct_rohf_fock_matrix hartreefock Subroutine

returns ROHF Fock matrix for high spin half filled open shell variant=1 (default) Roothan variant=2 Davidson variant=3 Guest & Saunders

construct_rohf_fock_matrix2 hartreefock Subroutine

returns ROHF Fock matrix for high spin half filled open shell alternative ROHF Fock matrix routine

construct_uhf_fock_matrix hartreefock Subroutine

constructs UHF Fock Matrix

construct_uhf_fock_matrix_direct gaussian Subroutine

construct the UHF Fock Matrix assumes that density matrix is symmetric

construct_wf_data wavefunction Subroutine

create WF_data from P, A, G, and B

constructumatrixtable spin_coupling Subroutine

make a table of coupling matrices for a set of transpositions of a set of maximal NopenMax un-paired electrons

contraction_icab2cdab hartreefock Subroutine

contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC

contraction_ijab2icab hartreefock Subroutine

contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC

contraction_ijka2ijba hartreefock Subroutine

contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC

contraction_ijkl2ijka hartreefock Subroutine

contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC

convert_to_lowercase stdio Subroutine

convert string into lowercase

convert_to_uppercase stdio Subroutine

convert string into uppercase

create_process process Function

creates process structure

csfdet spin_coupling Function

returns the coefficient for determinant specified by determinant path P in csf specified by path T

csfstring spin_coupling Function

returns printable string for a given spin configuration

density operations Function

computes electronic density on the grid density: where is a basis function

density_matrix operations Subroutine

computes the density matrix

density_matrix_alpha hartreefock Subroutine

spin-alpha density matrix where alpha is the majority spin population

density_matrix_beta hartreefock Subroutine

spin-beta density matrix where alpha is the majority spin population

density_matrix_closed hartreefock Subroutine

closed shell part density matrix

density_matrix_open hartreefock Subroutine

open shell part of the density matrix

detstring spin_coupling Function

returns a readable string for printing out determinant specified by occupation and determinant path det

diis neweffpot Subroutine

Direct inversion of iterative subspace [DIIS] procedure Implement Eqs. (1)-(4) Pulay J. Comp. Chem. 3. 556 (1982) Feb.25.2015 : K.H : (1) Half of operation (w.r. i and j ) can be skipped using symmetry. (2) You do not need full matrix multiplication (dimension=B%N_basis) since we just need the trace this amounts to ~10 sec gain per iteration for 180 atom (660basis) calculations

Read more…
diis_unrestricted neweffpot Subroutine

Feb.25.2015 : K.H : (1) Half of operation (w.r. i and j ) can be skipped using symmetry. (2) You do not need full matrix multiplication (dimension=B%N_basis) since we just need the trace this amounts to ~10 sec gain per iteration for 180 atom (660basis) calculations

dominant_subshell_mo population Subroutine

for a given MO return the dominant atomic subshell

dump_atom_set atom_in_mol Subroutine

prints atom set information

dump_parameters read_param Subroutine

print all parameters

dump_twoel hartreefock Subroutine

print all two-electron integrals

error_message stdio Subroutine

show error message and stop the program

exchange_gradient gradient Subroutine

computes the gradient of the exchange potential part for HFS

factorial anglib Function

calculated factorial

factorial2 sph_harmonics Function

factorial(n,m) = m! / n! for n < m = 1 otherwise thus, factorial(1,2) = 2; factorial(2,1) = 1

Read more…
fermi_occupation finitetemp Subroutine

this subroutine return calculates the chemical potential such that we have sum(F%N_occ) electrons at temperature P%T_eV with orbital energies F%CE fractional occupations are saved in F%f_occ. by Ludger Inhester 26/11/2014 Kota Hanasaki : revision 1406 to adapt to low temperature 01/12/2014 Kota Hanasaki : revision 1413 fix initial guess Mar 2017 Ludger Inhester : cleaned up code, restricted it to obitals F%Ncore+1, choose better variable names if improvement is smaller than this, increase trial step v = TWO* sum( fermi( F%CE(:),T_AU, mu ) ) - Ne Convergence Check...

fidelity operations Function

computes the overlaps to reference orbitals squared

filter_ras_occs operations Subroutine

filters set of occupation numbers to meet ras restrictions

filter_sym_occs operations Subroutine

filters set of occupation numbers to meet symmetry restrictions

find_neighboring_atoms molecular_grid Subroutine

count how many neighboring atoms for each atom and find the bond distances

find_optimal_deltad operations Subroutine

This subroutines returns a set of coefficients for 'optimal' representing the current Density matrix F%D as a linear combination of the saved density matrices in the F%Dsave array F%D(:,:) = sum_i coef(i) * F%Dsave(:,:,i) + deltaD(:,:) 'optimal' means that the rest is small in that sense that it has minimal number of nonzero elements. To achieve this, we use unconstrained Newton minimizer to minimize the function

Read more…
fix_orbitals_on_nuclei localization Subroutine

find the best permutation of orbitals specified in MO_index such that sum(gross_pop(MO_index(:),nuc_index(:))) is maximized

footnote stdio Subroutine

prints footnote

fragment_analysis population Subroutine

analysis possible fragments based on bond order values

functional_c functional_xc Function

correlation functional

functional_c functional_xc Interface

correlation functional

functional_x functional_xc Function

exchange functional

gaussian_cphf_iteration gaussian_cphf Subroutine

this subroutine performs a coupled perturbed hartree fock calculation see details in Gerrat & Mills, JCP 49 1719

gen_oh ../../lebedev-laikov.f Subroutine
general_active_space_occs operations Subroutine

returns a list of occupations in occs that distributes Nelectot electrons in Norbtot orbitals where the occupations comply with the general active space definitions provides by the list of gass: gass(i)%orbitals(:) is a list defining an orbital subset gass(i)%nmin the minimum number of electrons in this orbital subset gass(i)%nmax the maximum number of electrons in this orbital subset

get_atomic_number atom Function

returns atomic number of a given element

get_atomic_species atom Subroutine

returns charge and mass of a given element

get_combinations operations Subroutine

returns the list of combinations k out of 1..n in lexicographical order

get_complement_combinations operations Subroutine

given a list of combinations k out of n this subroutine returns the complement combinations

get_eigenvalues eigen_lapack Interface

returns eigenvalues of square matrices

get_eigenvalues_symmetry eigen_lapack Subroutine

computes eigenvalues of square matrices under consideration that there a extra symmetries

get_input stdio Subroutine

if filename2 is specified, override reading of command line options. instead only read from filename2

Read more…
get_some_eigenvalues_davpack eigen_lapack Subroutine

get some eigenvalues and eigenvectors using davpack

get_some_ev_of_real_sym eigen_lapack Subroutine

Solve the eigenvalue problem of H(N,N) real symmetric matrix using dsyevx - matrix: real, H(N,N) - eigenvalues: real, E(num) - eigenvectors: real, Z(N,num) - num: number of eigenvectors and eigenvalues with lowest eigenvalues - epsilon: (optional) absolute tolerance Eigenvalues are stored in E(N)

Read more…
getucyclematrixfromtable spin_coupling Subroutine

returns the coupling matrix for translocation mu-<nu using the previously prepared table UT

getumatrixfromtable spin_coupling Subroutine

returns the coupling matrix for translocation mu-<nu using the previously prepared table UT

grad_sph_harmonic_y_real sph_harmonics Function

gradient of real sph harmonic

grad_sum gradient Function

sum the gradients along coordinates x,y,z

gross_population_analysis population Subroutine

gross orbital population analysis

groundstate_occ operations Function

returns ground state occupation numbers

h0_gradient gaussian Subroutine

computes gradient of h0 $omp parallel shared(atm, bas, env, first_bf_of_shell) private(sh1,sh2,atom,atom1,atom2,shls,ret1,n1,n2,data1,m1,m2,i,j,factor,my_env,mu) default(none) reduction(+:v,t) $omp do $omp end do $omp end parallel

has_hole averaging Function

function has_hole: P: Parameter structure N_occ: occ array oi: orbital index returns TRUE if there might be a statistical chance for a hole in orbital oi otherwise FALSE

index_packed packed_index Interface

index for the upper triangular matrix in a packed storage scheme SEE: http://www.netlib.org/lapack/lug/node123.html optimization: use precalculated array sq_half(i)=

index_to_occ elec_config Subroutine

maps occupation pattern to index

init_checkpoint stdio Subroutine
init_index_packed packed_index Subroutine

initialize index_packed: precompute index values

init_time stdio Subroutine

print out CPU_time, current time, and hostname With PGI compiler, CPU_time gives real time instead of CPU time. What can I do for it? Huh? USAGE) call init_time() ... call footnote()

Read more…
initial_density operations Function

prepares an initial electron density F%rho based on atomic electron densities

initial_density_matrix operations Function

this is the equivalent to initial_density but returns a density matrix instead of a grid density

integral molecular_grid Function

integral on the grid

integral_a operations Function

integral on atomic grid

integral_double_center molecular_grid Function

double center grid integral

integral_single_center molecular_grid Function

single center grid integral

is_equivalent averaging Function

function is_equivalent: N_occ: occ array part: orbital index hole: orbital index returns TRUE if orbital part and orbital hole are equivalent otherwise FALSE

is_equivalent_occ averaging Function

returns true if occ1 and occ2 are equivalent through averaging

is_occupied averaging Function

function is_occupied: P: Parameter structure N_occ: occ array oi: orbital index returns TRUE if there might be a statistical chance for occupancy in orbital oi otherwise FALSE

is_pair_occupied averaging Function

function is_pair_occupied: P: Parameter structure N_occ: occ array oi: orbital index oj: orbital index returns TRUE if there is a statistical chance that orbital oi and oj are both occupied otherwise FALSE

jk_gradient gaussian Subroutine

computes derivatives of J and K

Read more…
job_time stdio Interface

returns job time

ld0006 ../../lebedev-laikov.f Subroutine
ld0014 ../../lebedev-laikov.f Subroutine
ld0026 ../../lebedev-laikov.f Subroutine
ld0038 ../../lebedev-laikov.f Subroutine
ld0050 ../../lebedev-laikov.f Subroutine
ld0074 ../../lebedev-laikov.f Subroutine
ld0086 ../../lebedev-laikov.f Subroutine
ld0110 ../../lebedev-laikov.f Subroutine
ld0146 ../../lebedev-laikov.f Subroutine
ld0170 ../../lebedev-laikov.f Subroutine
ld0194 ../../lebedev-laikov.f Subroutine
ld0230 ../../lebedev-laikov.f Subroutine
ld0266 ../../lebedev-laikov.f Subroutine
ld0302 ../../lebedev-laikov.f Subroutine
ld0350 ../../lebedev-laikov.f Subroutine
ld0434 ../../lebedev-laikov.f Subroutine
ld0590 ../../lebedev-laikov.f Subroutine
ld0770 ../../lebedev-laikov.f Subroutine
ld0974 ../../lebedev-laikov.f Subroutine
ld1202 ../../lebedev-laikov.f Subroutine
ld1454 ../../lebedev-laikov.f Subroutine
ld1730 ../../lebedev-laikov.f Subroutine
ld2030 ../../lebedev-laikov.f Subroutine
ld2354 ../../lebedev-laikov.f Subroutine
ld2702 ../../lebedev-laikov.f Subroutine
ld3074 ../../lebedev-laikov.f Subroutine
ld3470 ../../lebedev-laikov.f Subroutine
ld3890 ../../lebedev-laikov.f Subroutine
ld4334 ../../lebedev-laikov.f Subroutine
ld4802 ../../lebedev-laikov.f Subroutine
ld5294 ../../lebedev-laikov.f Subroutine
ld5810 ../../lebedev-laikov.f Subroutine
legendre_dp legendre Function

Function to calculate 1st derivative of the Legendre f. of x with order n

legendre_p legendre Function

Function to calculate the Legendre function of x with order n

linear_create interpolate Function

creates linear interpolation structure

linear_interpolate interpolate Function

linearly interpolate

localize_orbitals localization Subroutine

localizes orbitals in MO_index array

loewdin_population population Subroutine

loewdin population analysis

loewdin_population_analysis population Subroutine

loewdin population analysis

long_range_energies operations Function

returns long range interaction energies

lu_decompose matrix Function

Carry out LU-decomposition for A and put the decomposed matrix into M implementation of Crout's method with partial pivoting.

lu_determinant matrix Function

returns the determinant value of LU-decomposed matrix M

lu_inverse matrix Function

Return the inverse matrix of LU-decomposed matrix M using F solve(M, b)

lu_matrix_purge matrix Subroutine

purges LU_matrix structure

lu_solve matrix Function

Solve a linear equation for b with LU-decomposed matrix M Return the solution for b as a new vector x b : row vector, not column vector, that is, just 1D array of n

make_soscf_step secondorder_scf Subroutine
makecycleuij spin_coupling Subroutine

computes coupling matrix for transposition uj->ui oj is moved down to position oi

matrix_determinant matrix Function

returns the determinant of square matrix A slightly redundant to LU_determiant but allows also to return zero as a determinant

mattrace matrix Function

returns the trace of matrix A

mattraceproduct matrix Function

computes the trace of the matrix A * B first dimension of A has to match second dimension of B second dimension of A has to match first dimension of B

mcscf_procedure mcscf Subroutine

MCSCF procedure

merge_argsort mergesort Interface

returns the indices that sorts the array

merge_argsort_double mergesort Subroutine

arg sorts integer array A

merge_argsort_int mergesort Subroutine

arg sorts integer array A

merge_sort mergesort Interface

sorts array argument

merge_sort_int mergesort Subroutine

sorts integer array A

mulliken_population population Subroutine

mulliken population analysis

mulliken_population_analysis population Subroutine

Mulliken atomic population analysis Ref) Mulliken, JCP 23, 1833 (1955)

Read more…
ninej anglib Function Read more…
nopen2csfs spin_coupling Subroutine

routine calculates the genealogical pathes for all configuration state functions for given multiplicity multp with Nopen open shells. pathes are returned in arrays csfs(1:Nopen, :) example pathes for multp=2 and Nopen=3 there are two spin configurations: 1,2,1 means spin configuration '//\' 1,0,1 means spin configuration '/\/'

nopen2dets spin_coupling Subroutine

routine calculates the genealogical pathes for all high spin determinants for given multiplicity multp with Nopen open shells. pathes are returned in arrays dets(1:Nopen,:) example pathes for multp=2 and Nopen=3 1,2,1 means spin up up down 1,0,1 means spin up down up -1,0,1 means spin down up up

nuclear_repulsion_energy operations Function

nuclear repulsion energy

nuclear_repulsion_energy_crystal operations Function

nuclear_repulsion_energy_crystal() for the crystalline case

nuclear_repulsion_gradient operations Function

nuclear repulsion gradient

num_csf spin_coupling Function

returns the number of possible spin configurations

obtain_grid_position molecular_grid Function
obtain_nuclear_position molecular_grid Function
occ2cistate xmolecule_interface Subroutine

randomly selects a CI states according to overlap with given occupation

occ_broadening finitetemp Subroutine

washes out fractional occupation number for orbitals with simialr energy

occ_overlap2 mcscf Subroutine

calculates squared overlaps of a configuration occ with orbital coefficients LC1 (averaged over spin) to a set of configurations occs with orbital coefficients LC2

occ_overlap2_highspin_core operations Subroutine

returns overlap square between configurations in occ to configurations in occs with different molecular orbitals and basis sets considering only high-spin configurations

occ_process process Function

returns the final occupation numbers for a specific

occ_space operations Function

returns 0 for unoccupied MO 1 for singly occupied MO 2 for doubly occupied MO 2+i for orbital in average_occ_MO subspace i=1,...n if the orbitals are partially occupied

occ_to_index elec_config Subroutine

maps index to occupation pattern

one_electron_gradient gaussian Subroutine

returns the gradient resulting from one-electron contributions (h0)

one_particle_dm spin_coupling Subroutine

returns the one-particle density matrix

one_particle_dm_ci2 mcscf Subroutine

computes the one-particle density matrix

operator(.m.) matrix Interface

Operators for efficient matrix multiplication with LAPACK, but better readibility. (It is assumed that the dimensionality fits.)

Read more…
operator(.mt.) matrix Interface

multiply two real square matrices, the second is transposed A(B*T)= A .mt. B

operator(.sub.) matrix Interface

substract two real square matrices element wise A-B = A .sub. B This functionality is provided by f90. Element wise, arrays (of same dimensionality) can be added, substracted, multiplied and divided. sub_real_matrix_matrix is not a LAPACK feature. (Michael)

operator(.tm.) matrix Interface

multiply two real square matrices, the first is transposed (A*T)B= A .tm. B

orthonormalizeorbitals basis_func Subroutine

Do a Gram-Schmidt orthogonalization for the coefficients given by C according to the metric given by the overlap matrix B%S, i.e. such that < C(:,i) S(:,:) C(:,j) > = delta_i,j B are the basis set parameters

overlap_csfs mcscf Subroutine

calculated overlaps of configuration state functions for different orbital sets

overlap_energy_gradient gaussian Subroutine

computes derivative of overlap matrix with respect to geometry

overlap_energy_gradient_rohf gaussian Subroutine

computes the gradient due to basis overlap

overlap_energy_gradient_uhf gaussian Subroutine

computes the gradient due to basis overlap

overlap_gradient gaussian Subroutine

compute gradient of overlap matrix

overlap_operator_csfs mcscf Subroutine

calculated overlaps of configuration state functions for different orbital sets

parse_int_array stdio Function

parses an integer array

parse_option stdio Interface
parse_real_array stdio Function

parses a float array

parse_string_array stdio Function

parses a string array

place_ag_on_grid3d molecular_grid Subroutine Read more…
potential_c functional_xc Interface

correlation potential

potential_ext operations Function

Nuc-elec potential

potential_j operations Function

calculating the direct Coulomb potential a.k.a. Hartree potential or classical electron-electron repulsion potential

Read more…
potential_j_a operations Function

Calculating Coulomb potential on the atomic grid

potential_j_mc operations Function

Yajiang's original implementation for the direct Coulomb potential - potential_J_MC() - potential_J_A_R() - integral_A() - potential_J_A()

Read more…
potential_x functional_xc Function

exchange potential

potential_xc functional_xc Function

General XC functionals potential_x or functional_x( P, G, rho ) potential_c or functional_c( P, G, rho_a, rho_b )

Read more…
precalculate_twoel hartreefock Subroutine

precalculate all 2el matrix elements

precalculate_twoel_gto basis_func Subroutine

subroutine to precalculate all 2el matrix elements

prepare_independent_pairs secondorder_scf Subroutine

fills the structure indep_mo_pairs containing pairs of mos forming independent SCF optimization parameters

prepare_initial_guess scf Subroutine

prepares the initial guess

print_atomic_quantity operations Subroutine

print spherically averaged quantity (potential or density) for each atom with and without multicenter decomposition

Read more…
print_calc_info basis_func Subroutine

print grid parameters and basis function (numerical atomic orbital) info it is supposed to be in read_param.f90, but it requires A(:) and G wait a minute... even it doesn't contain F!!! why should it be here? it has beend moved to basis_func

Read more…
print_density_of_states wavefunction Subroutine

print out density of states (DOS)

print_gto_info gaussian Subroutine

prints info on Gaussian basis set

print_matrix matrix Subroutine

Print arbitrary N*M matrix

print_orbitals scf Subroutine
print_parameters read_param Subroutine

print all parameters

print_process process Subroutine
print_projection_info wavefunction Subroutine

print projection information

prodoverlap operations Function

Calculate the product of all occupied orbital projections

prodoverlapunrestricted operations Function

Calculate the product of all occupied orbital projections

purge_angular_grid angular Subroutine

purges angular grid

purge_arg stdio Subroutine
purge_atom_set atom_in_mol Subroutine

deallocates array of atom_sets

purge_basis basis_func Subroutine

deallocate basis structure

purge_csf_array mcscf Subroutine

deallocates and purges array of csf structures

purge_grid gps Subroutine
purge_grid3d molecular_grid Subroutine
purge_linear interpolate Subroutine

removes linear interpolation structure

purge_parameters read_param Subroutine

purge parameters

purge_process process Subroutine

purges process data

purge_spline interpolate Subroutine

removes spline interpolation structure

purge_umatrixtable spin_coupling Subroutine

deallocates Umatrixtable structure

purge_wf_data wavefunction Subroutine

purges Wave function data

put_basis_function read_param Subroutine

counts the number of shells for the basis functions

put_minimal_basis_set read_param Subroutine

places minimal nao functions and counts the shells

random_gaussian wavefunction Function
read_basis rwfile Subroutine

reads molecular grid data from file

read_parameters read_param Subroutine

read all parameters added 31.Mar.2015: minimize print-outs for dynamical calc

read_wf rwfile Subroutine

reads LCAO coefficients from file

realangularintegral angularintegration Function

This function computes the double angular integral (real spherical harmonics)

Read more…
realgauntcoef angularintegration Function

real Gaunt coefficient

reconstruct_grid3d molecular_grid Subroutine Read more…
reorder_rstrct mcscf Subroutine

it just reorders the eigenvectors such that C is most similar to a diagonal matrix

rinv_gradient gaussian Subroutine

calculates where R is given by pos(1:3) and has atom index 'at'

rinv_gradient_int gaussian Subroutine

calculates where R_ is given by pos(1:3)

rotate_av_orbitals operations Subroutine

rotates the orbitals F%LC inside the av_occ(:)%MO subspace such that they best overlap with the orbitals in the av_occ(:)%MO subspace in Cref

rotate_orbitals secondorder_scf Subroutine

rotates orbital pairs by given angle theta

s_two_particle_dm spin_coupling Subroutine

symmetrized two particle density matrix

save_basis rwfile Subroutine

writes molecular grid data to file

save_wf rwfile Subroutine

write LCAO coefficients to file

scf_procedure scf Subroutine

main SCF prodedure if( .NOT. (P%yes_soscf .and. iter>3 .and. ( iSOSCF>0 .or. F%d_rho < P%SOSCF_start(2) )) ) then << this is wrong : we have to check if SOSCF is actually started (see return value of soscf_driver) if( allocated(F%apply_looser_threshold) )then; if( F%apply_looser_threshold(j,i) .and. iter>=acceptable_convergenceAt_old(j,i)-1 .and. iter<acceptable_convergenceAt_old(j,i)+6 )then; write(*,'(a,i4,2f12.6,a,2es12.4,a,2i2)')"#SCF:apply_lower check convergence around expected point:",iter, dE, F%d_rho,"/",eTHR,dTHR,":",j,i endif; endif --- minimal print option for MC ---

shakeup_analysis photoionization Subroutine

performs an analysis of shakeup transitions based on mutual overlap of molecular orbitals

show_input stdio Subroutine Read more…
single_excitation_occs operations Subroutine

returns a list of occupations, constructed from N_occ by exciting one electron

single_excitation_occs2 operations Subroutine

returns a list of occupations, constructed from N_occ by exciting one electron

sixj anglib Function Read more…
solve_axb matrix Subroutine

solves AxB=D for D

sph_harmonics_complex sph_harmonics Interface

complex spherical harmonics

sph_harmonics_real sph_harmonics Function

calculate real spherical harmonics: this is closely connected to sph_harmonics_prefactor() in molecular_grid.f90 sph_harmonics_real( l, m, theta, phi ) := G%Y_lm_prefactor(lm) * (2l+1) / 4pi * associated_Legendre_P( l, |m|, cos(theta) ) * [ ... ] [ ... ] = 1 for m = 0 = cos( |m| * phi ) for m > 0 = sin( |m| * phi ) for m < 0

Read more…
spin_center_analysis population Subroutine

performs analysis of the spin center

spin_string spin_coupling Subroutine

returns a determinant given in genealogical path as alpha and beta strings plus sign

spline_create interpolate Subroutine

creates spline interpolation structure

spline_interpolate interpolate Interface

spline interpolation

spline_reuse interpolate Subroutine

reuse spline structure and fill it with new values

stability_analysis scf Subroutine

performs stability analysis by inspecting numerical derivatives of the Fock matrix

stat_factor_not_occupied averaging Function

return the statistical factor that orbital oi is not occupied basically 1 - f_occ/2

stat_factor_occupied averaging Function

return the statistical factor that orbital oi is occupied basically f_occ/2

stat_factor_pair_occupied averaging Function

function stat_factor_pair_occupied P: Parameter structure N_occ: occ array oi: orbital index oj: orbital index returns the statistical factor that a spin-orbital pair oi, oj is occupied

stat_factor_part_hole_pair averaging Function

function stat_factor_part_hole_pair P: Parameter structure N_occ: occ array oi: orbital index for particle oj: orbital index for hole returns the statistical factor that a spin-orbital pair oi, oj has an electron in oi and a hole in oj Notes that : stat_factor_part_hole_pair(oi,oj) = stat_factor_occupied(oi) - stat_factor_pair_occupied(oi,oj)

subshell_name atom_in_mol Function

subshell_name: return 1s, 2s, 2p, ... according to (n,l)

sum_equivalent_configuration process Subroutine

sum up process data over equivalent configurations

testlibcint gaussian Subroutine

make some simple tests for the library it checks that the correct order of p basis functions is used

timestamp stdio Function
trans_dens_csf mcscf Subroutine

calculates the transition density between two csfs

transform_twoel hartreefock Subroutine

transform all 2el matrix elements into MO space

transform_twoel_allactive hartreefock Subroutine

transform all active 2el matrix elements into MO space

transform_twoel_three_core_one_virtual hartreefock Subroutine

transform all 2el matrix elements into MO space only those where two electrons are member of the array core and two electrons are in the array virtual (as required for CIS)

transform_twoel_two_active hartreefock Subroutine

transform 2el matrix elements into MO space only those where two electrons are member of the array active

transform_twoel_two_core hartreefock Subroutine

transform 2el matrix elements into MO space only those of type (cc|ij) and (ci|cj) where two electrons are member of the array core

transform_twoel_two_core_two_virtual hartreefock Subroutine

subroutine to transform all 2el matrix elements into MO space where two electrons are member of the array core and two electrons are in the array virtual (as required for CIS)

translation_in_crystal molecular_grid Subroutine
translation_in_crystal_fuzzy molecular_grid Function
two_electron_gradient gaussian Subroutine

returns the gradient resulting from two-electron contributions

two_electron_gradient_rohf gaussian Subroutine

returns the gradient resulting from two-electron contributions for ROHF

twoel_allactive_from_two_active hartreefock Subroutine

obtain all-active twoelectrons from transformed two-active two-electron integrals

update_atom_set_with_displacement atom_in_mol Subroutine

update Atom_set with displacement

update_atom_set_with_nao atom_in_mol Subroutine

update Atom_set with new NAOs it rereads the NAO files assigned in A(:).

update_grid3d_with_displacement molecular_grid Subroutine

update Grid3D with displacement use this subroutine if only molecular geometry in A has been changed. note that A should be already updated with update_Atom_set_with_displacement() in atom_in_mol.f90.

Read more…
write_cube_file cubefile Subroutine

write_density_cube_file(P,A,B,G,F, filename)

Read more…
write_molden_file molden Subroutine

!! This routine writes a molden file containing the basis set definition and the linear combination of orbitals !!

write_t xmolecule Subroutine
xmolecule_ci_energies xmolecule_interface Subroutine

get CI state energies

xmolecule_ci_overlaps xmolecule_interface Subroutine

calculated CI state overlaps

xmolecule_cis_energies xmolecule_interface Subroutine

returns CIS excitation energies

xmolecule_excitation_energies xmolecule_interface Subroutine

returns excitation energies based on MO energies

xmolecule_get_ao_labels xmolecule_interface Subroutine

return atomic orbital labels

xmolecule_get_atomlabels xmolecule_interface Subroutine

returns atom labels

xmolecule_get_auger_ci xmolecule_interface Subroutine

return auger decay rates based on configuration interation

xmolecule_get_bondorder xmolecule_interface Subroutine

returns bond order analysis

xmolecule_get_cis_gradient xmolecule_interface Subroutine

compute the CIS gradient

xmolecule_get_cis_gradient_nacs xmolecule_interface Subroutine

compute CIS gradients and nacs

xmolecule_get_cis_loewdinpop xmolecule_interface Subroutine

returns Loewdin population for CIS

xmolecule_get_cis_mullikenpop xmolecule_interface Subroutine

returns mulliken population for CIS

xmolecule_get_cis_oscillator_strength xmolecule_interface Subroutine

returns cis oscillator strengths

xmolecule_get_cis_transdens xmolecule_interface Subroutine

compute the cis state transition density

xmolecule_get_energy xmolecule_interface Subroutine

returns energy

xmolecule_get_fluorescencerates xmolecule_interface Subroutine

returns fluorescence rates

xmolecule_get_geom xmolecule_interface Subroutine

returns geometry

xmolecule_get_gradient xmolecule_interface Subroutine

compute the HFS, HF, or ROHF gradient

xmolecule_get_loewdincharge xmolecule_interface Subroutine

returns loewdin charges

xmolecule_get_mass xmolecule_interface Subroutine

returns atomic masses

xmolecule_get_mo_coef xmolecule_interface Subroutine

return LCAO coefficients

xmolecule_get_mullikencharge xmolecule_interface Subroutine

returns mulliken charges

xmolecule_get_nao_conf xmolecule_interface Subroutine

returns numerical atomic orbital configuration string

xmolecule_get_occ xmolecule_interface Subroutine

returns occupation numbers

xmolecule_get_oscillator_strength xmolecule_interface Subroutine

returns oscillator strength

xmolecule_get_overlapmatrix xmolecule_interface Subroutine

return overlap matrix

xmolecule_get_population xmolecule_interface Subroutine

compute orbital population analysis

xmolecule_get_process xmolecule_interface Subroutine

compute process data

xmolecule_hole_occs_energies_efield xmolecule_interface Subroutine

returns for hole configurations energies and occupation patterns in the presence of electric field based on Koopmann's theorem

xmolecule_hole_occs_energies_gradients_nacs xmolecule_interface Subroutine

returns for hole configurations energies, occupation patterns, gradients and nacs in the presence of electric field based on Koopmann's theorem

xmolecule_init xmolecule_interface Subroutine

initializes calculations performs the first electronic structure calculation

xmolecule_orbital_energies xmolecule_interface Subroutine

returns orbital energies

xmolecule_part_occs_energies_gradients_nacs xmolecule_interface Subroutine

returns for particle configurations energies, occupation patterns, gradients and nacs in the presence of electric field based on Koopmann's theorem

xmolecule_purge xmolecule_interface Subroutine

clears all the allocated data purges Xdata structure

xmolecule_read_chkpt xmolecule_interface Subroutine

reads chkpt file

xmolecule_set_calculate_ci_overlap xmolecule_interface Subroutine

triggers calculation of CI overlap

xmolecule_set_ci_state xmolecule_interface Subroutine

set CI state index

xmolecule_set_geom xmolecule_interface Subroutine

sets geometry

xmolecule_set_irrep xmolecule_interface Subroutine

set irreducible representation

xmolecule_set_mo_coef xmolecule_interface Subroutine

set LCAO coefficients

xmolecule_set_multp xmolecule_interface Subroutine

set spin multiplicity

xmolecule_set_occ xmolecule_interface Subroutine

sets occupation numbers

xmolecule_setup xmolecule_interface Subroutine

sets up the xmol object reads in the input parameters and prepares for the calculation

xmolecule_write_chkpt xmolecule_interface Subroutine

writes chkpt file

xmolecule_write_density_cube xmolecule_interface Subroutine

writes density cube file

xmolecule_write_mo_cube xmolecule_interface Subroutine

writes mo cub file

xmolecule_write_molden xmolecule_interface Subroutine

writes molden file

xyz_to_sph sph_harmonics Subroutine

translates x,y,z into r, theta, phi