XMOLECULE_interface: an integrated toolkit for X-ray and molecular physics subroutines providing an interface to other programs
sets up the xmol object reads in the input parameters and prepares for the calculation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
character(len=c_char), | intent(inout) | :: | filename(lenfilename) |
input filename |
||
integer(kind=c_int), | intent(in) | :: | lenfilename |
length of input filename |
clears all the allocated data purges Xdata structure
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr |
initializes calculations performs the first electronic structure calculation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr |
returns energy
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | energy |
returns atomic masses
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | mass(1:l_mass) | |||
integer(kind=c_int), | intent(inout) | :: | l_mass |
returns atom labels
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
character(len=c_char), | intent(inout) | :: | labels(6*l_labels) | |||
integer(kind=c_int), | intent(inout) | :: | l_labels |
returns orbital energies
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | ce(l_ce) | |||
integer(kind=c_int), | intent(inout) | :: | l_ce |
returns for hole configurations energies and occupation patterns in the presence of electric field based on Koopmann's theorem
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(in) | :: | pos(3) | |||
integer(kind=c_int), | intent(inout) | :: | occs(l_occ,l_e) | |||
real(kind=c_double), | intent(inout) | :: | energies(l_e) | |||
real(kind=c_double), | intent(inout) | :: | efields(3,l_e) | |||
real(kind=c_double), | intent(inout) | :: | upots(l_e) | |||
integer(kind=c_int), | intent(inout) | :: | l_e |
length of energies |
||
integer(kind=c_int), | intent(inout) | :: | l_occ |
length of occ |
returns for hole configurations energies, occupation patterns, gradients and nacs in the presence of electric field based on Koopmann's theorem
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(inout) | :: | occs(l_occ,l_e) | |||
real(kind=c_double), | intent(inout) | :: | energies(l_e) | |||
real(kind=c_double), | intent(inout) | :: | gradients(3*l_gradient,l_e) | |||
real(kind=c_double), | intent(inout) | :: | nacs(3*l_gradient,l_e,l_e) | |||
integer(kind=c_int), | intent(inout) | :: | l_e | |||
integer(kind=c_int), | intent(inout) | :: | l_gradient | |||
integer(kind=c_int), | intent(inout) | :: | l_occ |
returns for particle configurations energies, occupation patterns, gradients and nacs in the presence of electric field based on Koopmann's theorem
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(inout) | :: | occs(l_occ,l_e) | |||
real(kind=c_double), | intent(inout) | :: | energies(l_e) | |||
real(kind=c_double), | intent(inout) | :: | gradients(3*l_gradient,l_e) | |||
real(kind=c_double), | intent(inout) | :: | nacs(3*l_gradient,l_e,l_e) | |||
integer(kind=c_int), | intent(inout) | :: | l_e | |||
integer(kind=c_int), | intent(inout) | :: | l_gradient | |||
integer(kind=c_int), | intent(inout) | :: | l_occ |
returns excitation energies based on MO energies
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(inout) | :: | occs(l_occ,l_e) | |||
real(kind=c_double), | intent(inout) | :: | energies(l_e) | |||
integer(kind=c_int), | intent(inout) | :: | l_e | |||
integer(kind=c_int), | intent(inout) | :: | l_occ |
returns CIS excitation energies
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | energies(l_e) | |||
integer(kind=c_int), | intent(inout) | :: | l_e |
set CI state index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | state |
calculated CI state overlaps
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | olap(l_e,l_e) | |||
integer(kind=c_int), | intent(inout) | :: | l_e |
get CI state energies
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | energies(l_e) | |||
integer(kind=c_int), | intent(inout) | :: | l_e |
compute the CIS gradient
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | state | |||
real(kind=c_double), | intent(inout) | :: | grad(3*l_grad) | |||
integer(kind=c_int), | intent(inout) | :: | l_grad |
compute CIS gradients and nacs
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | state | |||
real(kind=c_double), | intent(inout) | :: | grad(3*l_grad) | |||
integer(kind=c_int), | intent(inout) | :: | l_grad | |||
real(kind=c_double), | intent(inout) | :: | nacs(3*l_grad,l_nacs,l_nacs) | |||
integer(kind=c_int), | intent(inout) | :: | l_nacs |
compute the cis state transition density
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | tdens(l_ao,l_ao) | |||
integer(kind=c_int), | intent(in) | :: | state | |||
integer(kind=c_int), | intent(in) | :: | l_ao |
compute the HFS, HF, or ROHF gradient
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | grad(3,l_grad) | |||
integer(kind=c_int), | intent(inout) | :: | l_grad |
return auger decay rates based on configuration interation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(inout) | :: | f_irrep(n_process) | |||
integer(kind=c_int), | intent(inout) | :: | f_multp(n_process) | |||
integer(kind=c_int), | intent(inout) | :: | f_index(n_process) | |||
real(kind=c_double), | intent(inout) | :: | rate(n_process) | |||
real(kind=c_double), | intent(inout) | :: | energy(n_process) | |||
integer(kind=c_int), | intent(inout) | :: | n_process |
compute process data
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(inout) | :: | final_occs(l_occ,n_process) | |||
integer(kind=c_int), | intent(inout) | :: | e_ev(n_process) | |||
real(kind=c_double), | intent(inout) | :: | val(n_process) | |||
character(len=c_char), | intent(inout) | :: | tag(n_process) | |||
integer(kind=c_int), | intent(inout) | :: | n_process | |||
integer(kind=c_int), | intent(inout) | :: | l_occ |
compute orbital population analysis
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | pop(l_mo,l_atom) | |||
integer(kind=c_int), | intent(in) | :: | l_mo | |||
integer(kind=c_int), | intent(in) | :: | l_atom |
return atomic orbital labels
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
character(len=c_char), | intent(inout) | :: | ao_labels(l_ao*10) | |||
integer(kind=c_int), | intent(inout) | :: | l_ao |
return overlap matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | s_ao(l_ao,l_ao) | |||
integer(kind=c_int), | intent(inout) | :: | l_ao |
return LCAO coefficients
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | mo_coef(l_ao,l_mo) | |||
integer(kind=c_int), | intent(inout) | :: | l_mo | |||
integer(kind=c_int), | intent(inout) | :: | l_ao |
set LCAO coefficients
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(in) | :: | mo_coef(l_ao,l_mo) | |||
integer(kind=c_int), | intent(in) | :: | l_ao | |||
integer(kind=c_int), | intent(in) | :: | l_mo |
returns numerical atomic orbital configuration string
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
character(len=c_char), | intent(inout) | :: | nao_conf_string(l_atom*512) | |||
integer(kind=c_int), | intent(in) | :: | l_atom |
returns mulliken charges
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | charge(l_charge) | |||
integer(kind=c_int), | intent(inout) | :: | l_charge |
returns loewdin charges
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | charge(l_charge) | |||
integer(kind=c_int), | intent(inout) | :: | l_charge |
returns mulliken population for CIS
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | charge(l_charge) | |||
integer(kind=c_int), | intent(inout) | :: | l_charge | |||
integer(kind=c_int), | intent(inout) | :: | state | |||
character(len=c_char), | intent(in) | :: | type |
returns Loewdin population for CIS
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | charge(l_charge) | |||
integer(kind=c_int), | intent(inout) | :: | l_charge | |||
integer(kind=c_int), | intent(inout) | :: | state | |||
character(len=c_char), | intent(in) | :: | type |
returns bond order analysis
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | bo(n_atom,n_atom) | |||
integer(kind=c_int), | intent(inout) | :: | n_atom |
returns cis oscillator strengths
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | state | |||
real(kind=c_double), | intent(inout) | :: | os(nstates) | |||
real(kind=c_double), | intent(inout) | :: | tdip(nstates,3) | |||
integer(kind=c_int), | intent(inout) | :: | nstates |
returns oscillator strength
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | os(nmo,nmo) | |||
real(kind=c_double), | intent(inout) | :: | tdip(nmo,nmo,3) | |||
integer(kind=c_int), | intent(inout) | :: | nmo |
returns fluorescence rates
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | fluorates(nmo,nmo) | |||
integer(kind=c_int), | intent(inout) | :: | nmo |
writes molden file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr |
writes density cube file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr |
writes mo cub file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | mo |
returns geometry
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(inout) | :: | geom(3,l_geom) | |||
integer(kind=c_int), | intent(inout) | :: | l_geom |
triggers calculation of CI overlap
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | yes |
sets geometry
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
real(kind=c_double), | intent(in) | :: | geom(3,l_geom) | |||
integer(kind=c_int), | intent(inout) | :: | l_geom |
writes chkpt file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr |
reads chkpt file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr |
returns occupation numbers
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(inout) | :: | occ(l_occ) | |||
integer(kind=c_int), | intent(inout) | :: | l_occ |
set spin multiplicity
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | multp_in |
set irreducible representation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | irrep_in |
returns the dominant configuration of the CI state with state index state
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | state | |||
integer(kind=c_int), | intent(inout) | :: | occ(l_occ) | |||
integer(kind=c_int), | intent(inout) | :: | l_occ |
randomly selects a CI states according to overlap with given occupation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | occ_in(l_occ_in) | |||
integer(kind=c_int), | intent(in) | :: | l_occ_in | |||
integer(kind=c_int), | intent(out) | :: | state |
sets occupation numbers
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(inout) | :: | xdata_cptr | |||
integer(kind=c_int), | intent(in) | :: | occ_in(l_occ_in) | |||
integer(kind=c_int), | intent(in) | :: | l_occ_in |