dftd3_citation Module

Module for handling citation data


Variables

Type Visibility Attributes Name Initial
character(len=*), public, parameter :: doi_b973c = "10.1063/1.5012601"
character(len=*), public, parameter :: doi_b97m_d3 = "10.1021/acs.jctc.8b00842"
character(len=*), public, parameter :: doi_d3pbc = "10.1002/cphc.201100521"
character(len=*), public, parameter :: doi_dftd3_0 = "10.1063/1.3382344"
character(len=*), public, parameter :: doi_dftd3_bj = "10.1002/jcc.21759"
character(len=*), public, parameter :: doi_dftd3_m = "10.1021/acs.jpclett.6b00780"
character(len=*), public, parameter :: doi_dftd3_op = "10.1021/acs.jctc.7b00176"
character(len=*), public, parameter :: doi_drpa = "10.1021/acs.jpca.1c01295"
character(len=*), public, parameter :: doi_dsd = "10.1002/jcc.23391"
character(len=*), public, parameter :: doi_dsdpbep86 = "10.1039/c1cp22592h"
character(len=*), public, parameter :: doi_gcp = "10.1063/1.3700154"
character(len=*), public, parameter :: doi_gmtkn30_0 = "10.1021/ct100466k"
character(len=*), public, parameter :: doi_gmtkn30_bj = "10.1039/c0cp02984j"
character(len=*), public, parameter :: doi_gmtkn55 = "10.1039/c7cp04913g"
character(len=*), public, parameter :: doi_hf3c = "10.1002/jcc.23317"
character(len=*), public, parameter :: doi_hse06_d3 = "10.1021/jp501237c"
character(len=*), public, parameter :: doi_hse3c = "10.1039/c6cp01697a"
character(len=*), public, parameter :: doi_joss = "10.21105/joss.07169"
character(len=*), public, parameter :: doi_minnesota_d3 = "10.1021/acs.jpclett.5b01591"
character(len=*), public, parameter :: doi_pbeh3c = "10.1063/1.4927476"
character(len=*), public, parameter :: doi_pw91_d3 = "10.1073/pnas.1516984112"
character(len=*), public, parameter :: doi_r2scan_d4 = "10.1063/5.0041008"
character(len=*), public, parameter :: doi_r2scan_dhdf = "10.1063/5.0174988"
character(len=*), public, parameter :: doi_r2scan_hyb = "10.1063/5.0086040"
character(len=*), public, parameter :: doi_revdsd = "10.1021/acs.jpca.9b03157"
character(len=*), public, parameter :: doi_scan_d3 = "10.1103/physrevb.94.115144"
character(len=*), public, parameter :: doi_wb97x_d3 = "10.1021/ct300715s"

Derived Types

type, public ::  citation_type

Represents a citation

Components

Type Visibility Attributes Name Initial
type(author_type), public, allocatable :: author(:)

Authors of the publication

character(len=:), public, allocatable :: doi

Digital Object Identifier (DOI) of the publication

character(len=:), public, allocatable :: issue

Issue of the publication

character(len=:), public, allocatable :: journal

Journal of the publication

character(len=:), public, allocatable :: pages

Page numbers of the publication

character(len=:), public, allocatable :: title

Title of the publication

character(len=:), public, allocatable :: volume

Volume of the publication

character(len=:), public, allocatable :: year

Year of the publication


Functions

public pure function author_name(name) result(author)

Create an author

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: name

Name of the author

Return Value type(author_type)

The new author

public pure function get_citation(doi) result(citation)

Get citation data for a given DOI

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: doi

Digital Object Identifier (DOI) of the publication

Return Value type(citation_type)

The citation data

public pure function is_citation_present(citation) result(is_present)

Check if citation data is present

Arguments

Type IntentOptional Attributes Name
type(citation_type), intent(in) :: citation

The citation to check

Return Value logical

Whether the citation data is present

public pure function new_citation(title, author, journal, issue, volume, year, pages, doi) result(citation)

Create a new citation

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: title

Title of the publication

type(author_type), intent(in) :: author(:)

Authors of the publication

character(len=*), intent(in) :: journal

Journal of the publication

character(len=*), intent(in), optional :: issue

Issue of the publication

character(len=*), intent(in) :: volume

Volume of the publication

character(len=*), intent(in) :: year

Year of the publication

character(len=*), intent(in) :: pages

Page numbers of the publication

character(len=*), intent(in) :: doi

Digital Object Identifier (DOI) of the publication

Return Value type(citation_type)

The new citation

public pure function same_citation(lhs, rhs) result(same)

Check if two citations are the same

Arguments

Type IntentOptional Attributes Name
type(citation_type), intent(in) :: lhs

The first citation

type(citation_type), intent(in) :: rhs

The second citation

Return Value logical

Whether the citations are the same


Subroutines

public subroutine format_bibtex(string, citation)

Format a citation as a BibTeX entry

Arguments

Type IntentOptional Attributes Name
character(len=:), intent(out), allocatable :: string

The formatted BibTeX entry

class(citation_type), intent(in) :: citation

The citation to format