From d0fbca0c4bacb47de6c42205d510d204a46f5bda Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 21 Apr 2024 07:42:13 +0200 Subject: [PATCH 001/144] Add codata constants. --- src/CMakeLists.txt | 1 + src/stdlib_codata.f90 | 1786 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1787 insertions(+) create mode 100644 src/stdlib_codata.f90 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 165259db3..750f8028f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -94,6 +94,7 @@ set(SRC stdlib_ansi_operator.f90 stdlib_ansi_to_string.f90 stdlib_array.f90 + stdlib_codata.f90 stdlib_error.f90 stdlib_hashmap_wrappers.f90 stdlib_hashmaps.f90 diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 new file mode 100644 index 000000000..fd15a6fae --- /dev/null +++ b/src/stdlib_codata.f90 @@ -0,0 +1,1786 @@ +module stdlib_codata + !! Codata Constants + use stdlib_kinds, only: dp, int32 + private + +type, public :: codata_constant +!! Derived type for representing a Codata constant. + character(len=64) :: name + real(dp) :: value + real(dp) :: uncertainty + character(len=32) :: unit +end type + +integer(int32), parameter, public :: YEAR = 2018 !! Year of release. + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & +codata_constant("alpha particle-electron mass ratio", & +real(7294.29954142d0,dp), real(0.00000024d0,dp), & +"") !! alpha particle-electron mass ratio + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS = & +codata_constant("alpha particle mass", & +real(6.6446573357d-27,dp), real(0.0000000020d-27,dp), & +"kg") !! alpha particle mass + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & +codata_constant("alpha particle mass energy equivalent", & +real(5.9719201914d-10,dp), real(0.0000000018d-10,dp), & +"J") !! alpha particle mass energy equivalent + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("alpha particle mass energy equivalent in MeV", & +real(3727.3794066d0,dp), real(0.0000011d0,dp), & +"MeV") !! alpha particle mass energy equivalent in MeV + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & +codata_constant("alpha particle mass in u", & +real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +"u") !! alpha particle mass in u + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & +codata_constant("alpha particle molar mass", & +real(4.0015061777d-3,dp), real(0.0000000012d-3,dp), & +"kg mol^-1") !! alpha particle molar mass + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & +codata_constant("alpha particle-proton mass ratio", & +real(3.97259969009d0,dp), real(0.00000000022d0,dp), & +"") !! alpha particle-proton mass ratio + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & +codata_constant("alpha particle relative atomic mass", & +real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +"") !! alpha particle relative atomic mass + +type(codata_constant), parameter, public :: ANGSTROM_STAR = & +codata_constant("Angstrom star", & +real(1.00001495d-10,dp), real(0.00000090d-10,dp), & +"m") !! Angstrom star + +type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT = & +codata_constant("atomic mass constant", & +real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +"kg") !! atomic mass constant + +type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & +codata_constant("atomic mass constant energy equivalent", & +real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +"J") !! atomic mass constant energy equivalent + +type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("atomic mass constant energy equivalent in MeV", & +real(931.49410242d0,dp), real(0.00000028d0,dp), & +"MeV") !! atomic mass constant energy equivalent in MeV + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("atomic mass unit-electron volt relationship", & +real(9.3149410242d8,dp), real(0.0000000028d8,dp), & +"eV") !! atomic mass unit-electron volt relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & +codata_constant("atomic mass unit-hartree relationship", & +real(3.4231776874d7,dp), real(0.0000000010d7,dp), & +"E_h") !! atomic mass unit-hartree relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & +codata_constant("atomic mass unit-hertz relationship", & +real(2.25234271871d23,dp), real(0.00000000068d23,dp), & +"Hz") !! atomic mass unit-hertz relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & +codata_constant("atomic mass unit-inverse meter relationship", & +real(7.5130066104d14,dp), real(0.0000000023d14,dp), & +"m^-1") !! atomic mass unit-inverse meter relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & +codata_constant("atomic mass unit-joule relationship", & +real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +"J") !! atomic mass unit-joule relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & +codata_constant("atomic mass unit-kelvin relationship", & +real(1.08095401916d13,dp), real(0.00000000033d13,dp), & +"K") !! atomic mass unit-kelvin relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & +codata_constant("atomic mass unit-kilogram relationship", & +real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +"kg") !! atomic mass unit-kilogram relationship + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & +codata_constant("atomic unit of 1st hyperpolarizability", & +real(3.2063613061d-53,dp), real(0.0000000015d-53,dp), & +"C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & +codata_constant("atomic unit of 2nd hyperpolarizability", & +real(6.2353799905d-65,dp), real(0.0000000038d-65,dp), & +"C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ACTION = & +codata_constant("atomic unit of action", & +real(1.054571817d-34,dp), real(0.0d0,dp), & +"J s") !! atomic unit of action + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & +codata_constant("atomic unit of charge", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"C") !! atomic unit of charge + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & +codata_constant("atomic unit of charge density", & +real(1.08120238457d12,dp), real(0.00000000049d12,dp), & +"C m^-3") !! atomic unit of charge density + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & +codata_constant("atomic unit of current", & +real(6.623618237510d-3,dp), real(0.000000000013d-3,dp), & +"A") !! atomic unit of current + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & +codata_constant("atomic unit of electric dipole mom.", & +real(8.4783536255d-30,dp), real(0.0000000013d-30,dp), & +"C m") !! atomic unit of electric dipole mom. + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & +codata_constant("atomic unit of electric field", & +real(5.14220674763d11,dp), real(0.00000000078d11,dp), & +"V m^-1") !! atomic unit of electric field + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & +codata_constant("atomic unit of electric field gradient", & +real(9.7173624292d21,dp), real(0.0000000029d21,dp), & +"V m^-2") !! atomic unit of electric field gradient + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & +codata_constant("atomic unit of electric polarizability", & +real(1.64877727436d-41,dp), real(0.00000000050d-41,dp), & +"C^2 m^2 J^-1") !! atomic unit of electric polarizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & +codata_constant("atomic unit of electric potential", & +real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +"V") !! atomic unit of electric potential + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & +codata_constant("atomic unit of electric quadrupole mom.", & +real(4.4865515246d-40,dp), real(0.0000000014d-40,dp), & +"C m^2") !! atomic unit of electric quadrupole mom. + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & +codata_constant("atomic unit of energy", & +real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +"J") !! atomic unit of energy + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_FORCE = & +codata_constant("atomic unit of force", & +real(8.2387234983d-8,dp), real(0.0000000012d-8,dp), & +"N") !! atomic unit of force + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & +codata_constant("atomic unit of length", & +real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +"m") !! atomic unit of length + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & +codata_constant("atomic unit of mag. dipole mom.", & +real(1.85480201566d-23,dp), real(0.00000000056d-23,dp), & +"J T^-1") !! atomic unit of mag. dipole mom. + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & +codata_constant("atomic unit of mag. flux density", & +real(2.35051756758d5,dp), real(0.00000000071d5,dp), & +"T") !! atomic unit of mag. flux density + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & +codata_constant("atomic unit of magnetizability", & +real(7.8910366008d-29,dp), real(0.0000000048d-29,dp), & +"J T^-2") !! atomic unit of magnetizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MASS = & +codata_constant("atomic unit of mass", & +real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +"kg") !! atomic unit of mass + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & +codata_constant("atomic unit of momentum", & +real(1.99285191410d-24,dp), real(0.00000000030d-24,dp), & +"kg m s^-1") !! atomic unit of momentum + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & +codata_constant("atomic unit of permittivity", & +real(1.11265005545d-10,dp), real(0.00000000017d-10,dp), & +"F m^-1") !! atomic unit of permittivity + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_TIME = & +codata_constant("atomic unit of time", & +real(2.4188843265857d-17,dp), real(0.0000000000047d-17,dp), & +"s") !! atomic unit of time + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & +codata_constant("atomic unit of velocity", & +real(2.18769126364d6,dp), real(0.00000000033d6,dp), & +"m s^-1") !! atomic unit of velocity + +type(codata_constant), parameter, public :: AVOGADRO_CONSTANT = & +codata_constant("Avogadro constant", & +real(6.02214076d23,dp), real(0.0d0,dp), & +"mol^-1") !! Avogadro constant + +type(codata_constant), parameter, public :: BOHR_MAGNETON = & +codata_constant("Bohr magneton", & +real(9.2740100783d-24,dp), real(0.0000000028d-24,dp), & +"J T^-1") !! Bohr magneton + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_EV_T = & +codata_constant("Bohr magneton in eV/T", & +real(5.7883818060d-5,dp), real(0.0000000017d-5,dp), & +"eV T^-1") !! Bohr magneton in eV/T + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & +codata_constant("Bohr magneton in Hz/T", & +real(1.39962449361d10,dp), real(0.00000000042d10,dp), & +"Hz T^-1") !! Bohr magneton in Hz/T + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant("Bohr magneton in inverse meter per tesla", & +real(46.686447783d0,dp), real(0.000000014d0,dp), & +"m^-1 T^-1") !! Bohr magneton in inverse meter per tesla + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_K_T = & +codata_constant("Bohr magneton in K/T", & +real(0.67171381563d0,dp), real(0.00000000020d0,dp), & +"K T^-1") !! Bohr magneton in K/T + +type(codata_constant), parameter, public :: BOHR_RADIUS = & +codata_constant("Bohr radius", & +real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +"m") !! Bohr radius + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT = & +codata_constant("Boltzmann constant", & +real(1.380649d-23,dp), real(0.0d0,dp), & +"J K^-1") !! Boltzmann constant + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & +codata_constant("Boltzmann constant in eV/K", & +real(8.617333262d-5,dp), real(0.0d0,dp), & +"eV K^-1") !! Boltzmann constant in eV/K + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & +codata_constant("Boltzmann constant in Hz/K", & +real(2.083661912d10,dp), real(0.0d0,dp), & +"Hz K^-1") !! Boltzmann constant in Hz/K + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & +codata_constant("Boltzmann constant in inverse meter per kelvin", & +real(69.50348004d0,dp), real(0.0d0,dp), & +"m^-1 K^-1") !! Boltzmann constant in inverse meter per kelvin + +type(codata_constant), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & +codata_constant("characteristic impedance of vacuum", & +real(376.730313668d0,dp), real(0.000000057d0,dp), & +"ohm") !! characteristic impedance of vacuum + +type(codata_constant), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & +codata_constant("classical electron radius", & +real(2.8179403262d-15,dp), real(0.0000000013d-15,dp), & +"m") !! classical electron radius + +type(codata_constant), parameter, public :: COMPTON_WAVELENGTH = & +codata_constant("Compton wavelength", & +real(2.42631023867d-12,dp), real(0.00000000073d-12,dp), & +"m") !! Compton wavelength + +type(codata_constant), parameter, public :: CONDUCTANCE_QUANTUM = & +codata_constant("conductance quantum", & +real(7.748091729d-5,dp), real(0.0d0,dp), & +"S") !! conductance quantum + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & +codata_constant("conventional value of ampere-90", & +real(1.00000008887d0,dp), real(0.0d0,dp), & +"A") !! conventional value of ampere-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & +codata_constant("conventional value of coulomb-90", & +real(1.00000008887d0,dp), real(0.0d0,dp), & +"C") !! conventional value of coulomb-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & +codata_constant("conventional value of farad-90", & +real(0.99999998220d0,dp), real(0.0d0,dp), & +"F") !! conventional value of farad-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & +codata_constant("conventional value of henry-90", & +real(1.00000001779d0,dp), real(0.0d0,dp), & +"H") !! conventional value of henry-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & +codata_constant("conventional value of Josephson constant", & +real(483597.9d9,dp), real(0.0d0,dp), & +"Hz V^-1") !! conventional value of Josephson constant + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & +codata_constant("conventional value of ohm-90", & +real(1.00000001779d0,dp), real(0.0d0,dp), & +"ohm") !! conventional value of ohm-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & +codata_constant("conventional value of volt-90", & +real(1.00000010666d0,dp), real(0.0d0,dp), & +"V") !! conventional value of volt-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & +codata_constant("conventional value of von Klitzing constant", & +real(25812.807d0,dp), real(0.0d0,dp), & +"ohm") !! conventional value of von Klitzing constant + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & +codata_constant("conventional value of watt-90", & +real(1.00000019553d0,dp), real(0.0d0,dp), & +"W") !! conventional value of watt-90 + +type(codata_constant), parameter, public :: COPPER_X_UNIT = & +codata_constant("Copper x unit", & +real(1.00207697d-13,dp), real(0.00000028d-13,dp), & +"m") !! Copper x unit + +type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & +codata_constant("deuteron-electron mag. mom. ratio", & +real(-4.664345551d-4,dp), real(0.000000012d-4,dp), & +"") !! deuteron-electron mag. mom. ratio + +type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & +codata_constant("deuteron-electron mass ratio", & +real(3670.48296788d0,dp), real(0.00000013d0,dp), & +"") !! deuteron-electron mass ratio + +type(codata_constant), parameter, public :: DEUTERON_G_FACTOR = & +codata_constant("deuteron g factor", & +real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +"") !! deuteron g factor + +type(codata_constant), parameter, public :: DEUTERON_MAG_MOM = & +codata_constant("deuteron mag. mom.", & +real(4.330735094d-27,dp), real(0.000000011d-27,dp), & +"J T^-1") !! deuteron mag. mom. + +type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("deuteron mag. mom. to Bohr magneton ratio", & +real(4.669754570d-4,dp), real(0.000000012d-4,dp), & +"") !! deuteron mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("deuteron mag. mom. to nuclear magneton ratio", & +real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +"") !! deuteron mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: DEUTERON_MASS = & +codata_constant("deuteron mass", & +real(3.3435837724d-27,dp), real(0.0000000010d-27,dp), & +"kg") !! deuteron mass + +type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & +codata_constant("deuteron mass energy equivalent", & +real(3.00506323102d-10,dp), real(0.00000000091d-10,dp), & +"J") !! deuteron mass energy equivalent + +type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("deuteron mass energy equivalent in MeV", & +real(1875.61294257d0,dp), real(0.00000057d0,dp), & +"MeV") !! deuteron mass energy equivalent in MeV + +type(codata_constant), parameter, public :: DEUTERON_MASS_IN_U = & +codata_constant("deuteron mass in u", & +real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +"u") !! deuteron mass in u + +type(codata_constant), parameter, public :: DEUTERON_MOLAR_MASS = & +codata_constant("deuteron molar mass", & +real(2.01355321205d-3,dp), real(0.00000000061d-3,dp), & +"kg mol^-1") !! deuteron molar mass + +type(codata_constant), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & +codata_constant("deuteron-neutron mag. mom. ratio", & +real(-0.44820653d0,dp), real(0.00000011d0,dp), & +"") !! deuteron-neutron mag. mom. ratio + +type(codata_constant), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & +codata_constant("deuteron-proton mag. mom. ratio", & +real(0.30701220939d0,dp), real(0.00000000079d0,dp), & +"") !! deuteron-proton mag. mom. ratio + +type(codata_constant), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & +codata_constant("deuteron-proton mass ratio", & +real(1.99900750139d0,dp), real(0.00000000011d0,dp), & +"") !! deuteron-proton mass ratio + +type(codata_constant), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & +codata_constant("deuteron relative atomic mass", & +real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +"") !! deuteron relative atomic mass + +type(codata_constant), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & +codata_constant("deuteron rms charge radius", & +real(2.12799d-15,dp), real(0.00074d-15,dp), & +"m") !! deuteron rms charge radius + +type(codata_constant), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant("electron charge to mass quotient", & +real(-1.75882001076d11,dp), real(0.00000000053d11,dp), & +"C kg^-1") !! electron charge to mass quotient + +type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & +codata_constant("electron-deuteron mag. mom. ratio", & +real(-2143.9234915d0,dp), real(0.0000056d0,dp), & +"") !! electron-deuteron mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & +codata_constant("electron-deuteron mass ratio", & +real(2.724437107462d-4,dp), real(0.000000000096d-4,dp), & +"") !! electron-deuteron mass ratio + +type(codata_constant), parameter, public :: ELECTRON_G_FACTOR = & +codata_constant("electron g factor", & +real(-2.00231930436256d0,dp), real(0.00000000000035d0,dp), & +"") !! electron g factor + +type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO = & +codata_constant("electron gyromag. ratio", & +real(1.76085963023d11,dp), real(0.00000000053d11,dp), & +"s^-1 T^-1") !! electron gyromag. ratio + +type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("electron gyromag. ratio in MHz/T", & +real(28024.9514242d0,dp), real(0.0000085d0,dp), & +"MHz T^-1") !! electron gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: ELECTRON_HELION_MASS_RATIO = & +codata_constant("electron-helion mass ratio", & +real(1.819543074573d-4,dp), real(0.000000000079d-4,dp), & +"") !! electron-helion mass ratio + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM = & +codata_constant("electron mag. mom.", & +real(-9.2847647043d-24,dp), real(0.0000000028d-24,dp), & +"J T^-1") !! electron mag. mom. + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & +codata_constant("electron mag. mom. anomaly", & +real(1.15965218128d-3,dp), real(0.00000000018d-3,dp), & +"") !! electron mag. mom. anomaly + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("electron mag. mom. to Bohr magneton ratio", & +real(-1.00115965218128d0,dp), real(0.00000000000018d0,dp), & +"") !! electron mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("electron mag. mom. to nuclear magneton ratio", & +real(-1838.28197188d0,dp), real(0.00000011d0,dp), & +"") !! electron mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: ELECTRON_MASS = & +codata_constant("electron mass", & +real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +"kg") !! electron mass + +type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant("electron mass energy equivalent", & +real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +"J") !! electron mass energy equivalent + +type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("electron mass energy equivalent in MeV", & +real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +"MeV") !! electron mass energy equivalent in MeV + +type(codata_constant), parameter, public :: ELECTRON_MASS_IN_U = & +codata_constant("electron mass in u", & +real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +"u") !! electron mass in u + +type(codata_constant), parameter, public :: ELECTRON_MOLAR_MASS = & +codata_constant("electron molar mass", & +real(5.4857990888d-7,dp), real(0.0000000017d-7,dp), & +"kg mol^-1") !! electron molar mass + +type(codata_constant), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & +codata_constant("electron-muon mag. mom. ratio", & +real(206.7669883d0,dp), real(0.0000046d0,dp), & +"") !! electron-muon mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_MUON_MASS_RATIO = & +codata_constant("electron-muon mass ratio", & +real(4.83633169d-3,dp), real(0.00000011d-3,dp), & +"") !! electron-muon mass ratio + +type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & +codata_constant("electron-neutron mag. mom. ratio", & +real(960.92050d0,dp), real(0.00023d0,dp), & +"") !! electron-neutron mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & +codata_constant("electron-neutron mass ratio", & +real(5.4386734424d-4,dp), real(0.0000000026d-4,dp), & +"") !! electron-neutron mass ratio + +type(codata_constant), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & +codata_constant("electron-proton mag. mom. ratio", & +real(-658.21068789d0,dp), real(0.00000020d0,dp), & +"") !! electron-proton mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & +codata_constant("electron-proton mass ratio", & +real(5.44617021487d-4,dp), real(0.00000000033d-4,dp), & +"") !! electron-proton mass ratio + +type(codata_constant), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & +codata_constant("electron relative atomic mass", & +real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +"") !! electron relative atomic mass + +type(codata_constant), parameter, public :: ELECTRON_TAU_MASS_RATIO = & +codata_constant("electron-tau mass ratio", & +real(2.87585d-4,dp), real(0.00019d-4,dp), & +"") !! electron-tau mass ratio + +type(codata_constant), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & +codata_constant("electron to alpha particle mass ratio", & +real(1.370933554787d-4,dp), real(0.000000000045d-4,dp), & +"") !! electron to alpha particle mass ratio + +type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & +codata_constant("electron to shielded helion mag. mom. ratio", & +real(864.058257d0,dp), real(0.000010d0,dp), & +"") !! electron to shielded helion mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant("electron to shielded proton mag. mom. ratio", & +real(-658.2275971d0,dp), real(0.0000072d0,dp), & +"") !! electron to shielded proton mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & +codata_constant("electron-triton mass ratio", & +real(1.819200062251d-4,dp), real(0.000000000090d-4,dp), & +"") !! electron-triton mass ratio + +type(codata_constant), parameter, public :: ELECTRON_VOLT = & +codata_constant("electron volt", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"J") !! electron volt + +type(codata_constant), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("electron volt-atomic mass unit relationship", & +real(1.07354410233d-9,dp), real(0.00000000032d-9,dp), & +"u") !! electron volt-atomic mass unit relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & +codata_constant("electron volt-hartree relationship", & +real(3.6749322175655d-2,dp), real(0.0000000000071d-2,dp), & +"E_h") !! electron volt-hartree relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & +codata_constant("electron volt-hertz relationship", & +real(2.417989242d14,dp), real(0.0d0,dp), & +"Hz") !! electron volt-hertz relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & +codata_constant("electron volt-inverse meter relationship", & +real(8.065543937d5,dp), real(0.0d0,dp), & +"m^-1") !! electron volt-inverse meter relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & +codata_constant("electron volt-joule relationship", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"J") !! electron volt-joule relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & +codata_constant("electron volt-kelvin relationship", & +real(1.160451812d4,dp), real(0.0d0,dp), & +"K") !! electron volt-kelvin relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & +codata_constant("electron volt-kilogram relationship", & +real(1.782661921d-36,dp), real(0.0d0,dp), & +"kg") !! electron volt-kilogram relationship + +type(codata_constant), parameter, public :: ELEMENTARY_CHARGE = & +codata_constant("elementary charge", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"C") !! elementary charge + +type(codata_constant), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & +codata_constant("elementary charge over h-bar", & +real(1.519267447d15,dp), real(0.0d0,dp), & +"A J^-1") !! elementary charge over h-bar + +type(codata_constant), parameter, public :: FARADAY_CONSTANT = & +codata_constant("Faraday constant", & +real(96485.33212d0,dp), real(0.0d0,dp), & +"C mol^-1") !! Faraday constant + +type(codata_constant), parameter, public :: FERMI_COUPLING_CONSTANT = & +codata_constant("Fermi coupling constant", & +real(1.1663787d-5,dp), real(0.0000006d-5,dp), & +"GeV^-2") !! Fermi coupling constant + +type(codata_constant), parameter, public :: FINE_STRUCTURE_CONSTANT = & +codata_constant("fine-structure constant", & +real(7.2973525693d-3,dp), real(0.0000000011d-3,dp), & +"") !! fine-structure constant + +type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT = & +codata_constant("first radiation constant", & +real(3.741771852d-16,dp), real(0.0d0,dp), & +"W m^2") !! first radiation constant + +type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & +codata_constant("first radiation constant for spectral radiance", & +real(1.191042972d-16,dp), real(0.0d0,dp), & +"W m^2 sr^-1") !! first radiation constant for spectral radiance + +type(codata_constant), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("hartree-atomic mass unit relationship", & +real(2.92126232205d-8,dp), real(0.00000000088d-8,dp), & +"u") !! hartree-atomic mass unit relationship + +type(codata_constant), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("hartree-electron volt relationship", & +real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +"eV") !! hartree-electron volt relationship + +type(codata_constant), parameter, public :: HARTREE_ENERGY = & +codata_constant("Hartree energy", & +real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +"J") !! Hartree energy + +type(codata_constant), parameter, public :: HARTREE_ENERGY_IN_EV = & +codata_constant("Hartree energy in eV", & +real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +"eV") !! Hartree energy in eV + +type(codata_constant), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & +codata_constant("hartree-hertz relationship", & +real(6.579683920502d15,dp), real(0.000000000013d15,dp), & +"Hz") !! hartree-hertz relationship + +type(codata_constant), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & +codata_constant("hartree-inverse meter relationship", & +real(2.1947463136320d7,dp), real(0.0000000000043d7,dp), & +"m^-1") !! hartree-inverse meter relationship + +type(codata_constant), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & +codata_constant("hartree-joule relationship", & +real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +"J") !! hartree-joule relationship + +type(codata_constant), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & +codata_constant("hartree-kelvin relationship", & +real(3.1577502480407d5,dp), real(0.0000000000061d5,dp), & +"K") !! hartree-kelvin relationship + +type(codata_constant), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & +codata_constant("hartree-kilogram relationship", & +real(4.8508702095432d-35,dp), real(0.0000000000094d-35,dp), & +"kg") !! hartree-kilogram relationship + +type(codata_constant), parameter, public :: HELION_ELECTRON_MASS_RATIO = & +codata_constant("helion-electron mass ratio", & +real(5495.88528007d0,dp), real(0.00000024d0,dp), & +"") !! helion-electron mass ratio + +type(codata_constant), parameter, public :: HELION_G_FACTOR = & +codata_constant("helion g factor", & +real(-4.255250615d0,dp), real(0.000000050d0,dp), & +"") !! helion g factor + +type(codata_constant), parameter, public :: HELION_MAG_MOM = & +codata_constant("helion mag. mom.", & +real(-1.074617532d-26,dp), real(0.000000013d-26,dp), & +"J T^-1") !! helion mag. mom. + +type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("helion mag. mom. to Bohr magneton ratio", & +real(-1.158740958d-3,dp), real(0.000000014d-3,dp), & +"") !! helion mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("helion mag. mom. to nuclear magneton ratio", & +real(-2.127625307d0,dp), real(0.000000025d0,dp), & +"") !! helion mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: HELION_MASS = & +codata_constant("helion mass", & +real(5.0064127796d-27,dp), real(0.0000000015d-27,dp), & +"kg") !! helion mass + +type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & +codata_constant("helion mass energy equivalent", & +real(4.4995394125d-10,dp), real(0.0000000014d-10,dp), & +"J") !! helion mass energy equivalent + +type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("helion mass energy equivalent in MeV", & +real(2808.39160743d0,dp), real(0.00000085d0,dp), & +"MeV") !! helion mass energy equivalent in MeV + +type(codata_constant), parameter, public :: HELION_MASS_IN_U = & +codata_constant("helion mass in u", & +real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +"u") !! helion mass in u + +type(codata_constant), parameter, public :: HELION_MOLAR_MASS = & +codata_constant("helion molar mass", & +real(3.01493224613d-3,dp), real(0.00000000091d-3,dp), & +"kg mol^-1") !! helion molar mass + +type(codata_constant), parameter, public :: HELION_PROTON_MASS_RATIO = & +codata_constant("helion-proton mass ratio", & +real(2.99315267167d0,dp), real(0.00000000013d0,dp), & +"") !! helion-proton mass ratio + +type(codata_constant), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & +codata_constant("helion relative atomic mass", & +real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +"") !! helion relative atomic mass + +type(codata_constant), parameter, public :: HELION_SHIELDING_SHIFT = & +codata_constant("helion shielding shift", & +real(5.996743d-5,dp), real(0.000010d-5,dp), & +"") !! helion shielding shift + +type(codata_constant), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("hertz-atomic mass unit relationship", & +real(4.4398216652d-24,dp), real(0.0000000013d-24,dp), & +"u") !! hertz-atomic mass unit relationship + +type(codata_constant), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("hertz-electron volt relationship", & +real(4.135667696d-15,dp), real(0.0d0,dp), & +"eV") !! hertz-electron volt relationship + +type(codata_constant), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & +codata_constant("hertz-hartree relationship", & +real(1.5198298460570d-16,dp), real(0.0000000000029d-16,dp), & +"E_h") !! hertz-hartree relationship + +type(codata_constant), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & +codata_constant("hertz-inverse meter relationship", & +real(3.335640951d-9,dp), real(0.0d0,dp), & +"m^-1") !! hertz-inverse meter relationship + +type(codata_constant), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & +codata_constant("hertz-joule relationship", & +real(6.62607015d-34,dp), real(0.0d0,dp), & +"J") !! hertz-joule relationship + +type(codata_constant), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & +codata_constant("hertz-kelvin relationship", & +real(4.799243073d-11,dp), real(0.0d0,dp), & +"K") !! hertz-kelvin relationship + +type(codata_constant), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & +codata_constant("hertz-kilogram relationship", & +real(7.372497323d-51,dp), real(0.0d0,dp), & +"kg") !! hertz-kilogram relationship + +type(codata_constant), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & +codata_constant("hyperfine transition frequency of Cs-133", & +real(9192631770d0,dp), real(0.0d0,dp), & +"Hz") !! hyperfine transition frequency of Cs-133 + +type(codata_constant), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & +codata_constant("inverse fine-structure constant", & +real(137.035999084d0,dp), real(0.000000021d0,dp), & +"") !! inverse fine-structure constant + +type(codata_constant), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("inverse meter-atomic mass unit relationship", & +real(1.33102505010d-15,dp), real(0.00000000040d-15,dp), & +"u") !! inverse meter-atomic mass unit relationship + +type(codata_constant), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("inverse meter-electron volt relationship", & +real(1.239841984d-6,dp), real(0.0d0,dp), & +"eV") !! inverse meter-electron volt relationship + +type(codata_constant), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & +codata_constant("inverse meter-hartree relationship", & +real(4.5563352529120d-8,dp), real(0.0000000000088d-8,dp), & +"E_h") !! inverse meter-hartree relationship + +type(codata_constant), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & +codata_constant("inverse meter-hertz relationship", & +real(299792458d0,dp), real(0.0d0,dp), & +"Hz") !! inverse meter-hertz relationship + +type(codata_constant), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & +codata_constant("inverse meter-joule relationship", & +real(1.986445857d-25,dp), real(0.0d0,dp), & +"J") !! inverse meter-joule relationship + +type(codata_constant), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & +codata_constant("inverse meter-kelvin relationship", & +real(1.438776877d-2,dp), real(0.0d0,dp), & +"K") !! inverse meter-kelvin relationship + +type(codata_constant), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & +codata_constant("inverse meter-kilogram relationship", & +real(2.210219094d-42,dp), real(0.0d0,dp), & +"kg") !! inverse meter-kilogram relationship + +type(codata_constant), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & +codata_constant("inverse of conductance quantum", & +real(12906.40372d0,dp), real(0.0d0,dp), & +"ohm") !! inverse of conductance quantum + +type(codata_constant), parameter, public :: JOSEPHSON_CONSTANT = & +codata_constant("Josephson constant", & +real(483597.8484d9,dp), real(0.0d0,dp), & +"Hz V^-1") !! Josephson constant + +type(codata_constant), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("joule-atomic mass unit relationship", & +real(6.7005352565d9,dp), real(0.0000000020d9,dp), & +"u") !! joule-atomic mass unit relationship + +type(codata_constant), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("joule-electron volt relationship", & +real(6.241509074d18,dp), real(0.0d0,dp), & +"eV") !! joule-electron volt relationship + +type(codata_constant), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & +codata_constant("joule-hartree relationship", & +real(2.2937122783963d17,dp), real(0.0000000000045d17,dp), & +"E_h") !! joule-hartree relationship + +type(codata_constant), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & +codata_constant("joule-hertz relationship", & +real(1.509190179d33,dp), real(0.0d0,dp), & +"Hz") !! joule-hertz relationship + +type(codata_constant), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & +codata_constant("joule-inverse meter relationship", & +real(5.034116567d24,dp), real(0.0d0,dp), & +"m^-1") !! joule-inverse meter relationship + +type(codata_constant), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & +codata_constant("joule-kelvin relationship", & +real(7.242970516d22,dp), real(0.0d0,dp), & +"K") !! joule-kelvin relationship + +type(codata_constant), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & +codata_constant("joule-kilogram relationship", & +real(1.112650056d-17,dp), real(0.0d0,dp), & +"kg") !! joule-kilogram relationship + +type(codata_constant), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("kelvin-atomic mass unit relationship", & +real(9.2510873014d-14,dp), real(0.0000000028d-14,dp), & +"u") !! kelvin-atomic mass unit relationship + +type(codata_constant), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("kelvin-electron volt relationship", & +real(8.617333262d-5,dp), real(0.0d0,dp), & +"eV") !! kelvin-electron volt relationship + +type(codata_constant), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & +codata_constant("kelvin-hartree relationship", & +real(3.1668115634556d-6,dp), real(0.0000000000061d-6,dp), & +"E_h") !! kelvin-hartree relationship + +type(codata_constant), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & +codata_constant("kelvin-hertz relationship", & +real(2.083661912d10,dp), real(0.0d0,dp), & +"Hz") !! kelvin-hertz relationship + +type(codata_constant), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & +codata_constant("kelvin-inverse meter relationship", & +real(69.50348004d0,dp), real(0.0d0,dp), & +"m^-1") !! kelvin-inverse meter relationship + +type(codata_constant), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & +codata_constant("kelvin-joule relationship", & +real(1.380649d-23,dp), real(0.0d0,dp), & +"J") !! kelvin-joule relationship + +type(codata_constant), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & +codata_constant("kelvin-kilogram relationship", & +real(1.536179187d-40,dp), real(0.0d0,dp), & +"kg") !! kelvin-kilogram relationship + +type(codata_constant), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("kilogram-atomic mass unit relationship", & +real(6.0221407621d26,dp), real(0.0000000018d26,dp), & +"u") !! kilogram-atomic mass unit relationship + +type(codata_constant), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("kilogram-electron volt relationship", & +real(5.609588603d35,dp), real(0.0d0,dp), & +"eV") !! kilogram-electron volt relationship + +type(codata_constant), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & +codata_constant("kilogram-hartree relationship", & +real(2.0614857887409d34,dp), real(0.0000000000040d34,dp), & +"E_h") !! kilogram-hartree relationship + +type(codata_constant), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & +codata_constant("kilogram-hertz relationship", & +real(1.356392489d50,dp), real(0.0d0,dp), & +"Hz") !! kilogram-hertz relationship + +type(codata_constant), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & +codata_constant("kilogram-inverse meter relationship", & +real(4.524438335d41,dp), real(0.0d0,dp), & +"m^-1") !! kilogram-inverse meter relationship + +type(codata_constant), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & +codata_constant("kilogram-joule relationship", & +real(8.987551787d16,dp), real(0.0d0,dp), & +"J") !! kilogram-joule relationship + +type(codata_constant), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & +codata_constant("kilogram-kelvin relationship", & +real(6.509657260d39,dp), real(0.0d0,dp), & +"K") !! kilogram-kelvin relationship + +type(codata_constant), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & +codata_constant("lattice parameter of silicon", & +real(5.431020511d-10,dp), real(0.000000089d-10,dp), & +"m") !! lattice parameter of silicon + +type(codata_constant), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & +codata_constant("lattice spacing of ideal Si (220)", & +real(1.920155716d-10,dp), real(0.000000032d-10,dp), & +"m") !! lattice spacing of ideal Si (220) + +type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & +codata_constant("Loschmidt constant (273.15 K, 100 kPa)", & +real(2.651645804d25,dp), real(0.0d0,dp), & +"m^-3") !! Loschmidt constant (273.15 K, 100 kPa) + +type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & +codata_constant("Loschmidt constant (273.15 K, 101.325 kPa)", & +real(2.686780111d25,dp), real(0.0d0,dp), & +"m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) + +type(codata_constant), parameter, public :: LUMINOUS_EFFICACY = & +codata_constant("luminous efficacy", & +real(683d0,dp), real(0.0d0,dp), & +"lm W^-1") !! luminous efficacy + +type(codata_constant), parameter, public :: MAG_FLUX_QUANTUM = & +codata_constant("mag. flux quantum", & +real(2.067833848d-15,dp), real(0.0d0,dp), & +"Wb") !! mag. flux quantum + +type(codata_constant), parameter, public :: MOLAR_GAS_CONSTANT = & +codata_constant("molar gas constant", & +real(8.314462618d0,dp), real(0.0d0,dp), & +"J mol^-1 K^-1") !! molar gas constant + +type(codata_constant), parameter, public :: MOLAR_MASS_CONSTANT = & +codata_constant("molar mass constant", & +real(0.99999999965d-3,dp), real(0.00000000030d-3,dp), & +"kg mol^-1") !! molar mass constant + +type(codata_constant), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & +codata_constant("molar mass of carbon-12", & +real(11.9999999958d-3,dp), real(0.0000000036d-3,dp), & +"kg mol^-1") !! molar mass of carbon-12 + +type(codata_constant), parameter, public :: MOLAR_PLANCK_CONSTANT = & +codata_constant("molar Planck constant", & +real(3.990312712d-10,dp), real(0.0d0,dp), & +"J Hz^-1 mol^-1") !! molar Planck constant + +type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & +codata_constant("molar volume of ideal gas (273.15 K, 100 kPa)", & +real(22.71095464d-3,dp), real(0.0d0,dp), & +"m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) + +type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & +codata_constant("molar volume of ideal gas (273.15 K, 101.325 kPa)", & +real(22.41396954d-3,dp), real(0.0d0,dp), & +"m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) + +type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_SILICON = & +codata_constant("molar volume of silicon", & +real(1.205883199d-5,dp), real(0.000000060d-5,dp), & +"m^3 mol^-1") !! molar volume of silicon + +type(codata_constant), parameter, public :: MOLYBDENUM_X_UNIT = & +codata_constant("Molybdenum x unit", & +real(1.00209952d-13,dp), real(0.00000053d-13,dp), & +"m") !! Molybdenum x unit + +type(codata_constant), parameter, public :: MUON_COMPTON_WAVELENGTH = & +codata_constant("muon Compton wavelength", & +real(1.173444110d-14,dp), real(0.000000026d-14,dp), & +"m") !! muon Compton wavelength + +type(codata_constant), parameter, public :: MUON_ELECTRON_MASS_RATIO = & +codata_constant("muon-electron mass ratio", & +real(206.7682830d0,dp), real(0.0000046d0,dp), & +"") !! muon-electron mass ratio + +type(codata_constant), parameter, public :: MUON_G_FACTOR = & +codata_constant("muon g factor", & +real(-2.0023318418d0,dp), real(0.0000000013d0,dp), & +"") !! muon g factor + +type(codata_constant), parameter, public :: MUON_MAG_MOM = & +codata_constant("muon mag. mom.", & +real(-4.49044830d-26,dp), real(0.00000010d-26,dp), & +"J T^-1") !! muon mag. mom. + +type(codata_constant), parameter, public :: MUON_MAG_MOM_ANOMALY = & +codata_constant("muon mag. mom. anomaly", & +real(1.16592089d-3,dp), real(0.00000063d-3,dp), & +"") !! muon mag. mom. anomaly + +type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("muon mag. mom. to Bohr magneton ratio", & +real(-4.84197047d-3,dp), real(0.00000011d-3,dp), & +"") !! muon mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("muon mag. mom. to nuclear magneton ratio", & +real(-8.89059703d0,dp), real(0.00000020d0,dp), & +"") !! muon mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: MUON_MASS = & +codata_constant("muon mass", & +real(1.883531627d-28,dp), real(0.000000042d-28,dp), & +"kg") !! muon mass + +type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & +codata_constant("muon mass energy equivalent", & +real(1.692833804d-11,dp), real(0.000000038d-11,dp), & +"J") !! muon mass energy equivalent + +type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("muon mass energy equivalent in MeV", & +real(105.6583755d0,dp), real(0.0000023d0,dp), & +"MeV") !! muon mass energy equivalent in MeV + +type(codata_constant), parameter, public :: MUON_MASS_IN_U = & +codata_constant("muon mass in u", & +real(0.1134289259d0,dp), real(0.0000000025d0,dp), & +"u") !! muon mass in u + +type(codata_constant), parameter, public :: MUON_MOLAR_MASS = & +codata_constant("muon molar mass", & +real(1.134289259d-4,dp), real(0.000000025d-4,dp), & +"kg mol^-1") !! muon molar mass + +type(codata_constant), parameter, public :: MUON_NEUTRON_MASS_RATIO = & +codata_constant("muon-neutron mass ratio", & +real(0.1124545170d0,dp), real(0.0000000025d0,dp), & +"") !! muon-neutron mass ratio + +type(codata_constant), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & +codata_constant("muon-proton mag. mom. ratio", & +real(-3.183345142d0,dp), real(0.000000071d0,dp), & +"") !! muon-proton mag. mom. ratio + +type(codata_constant), parameter, public :: MUON_PROTON_MASS_RATIO = & +codata_constant("muon-proton mass ratio", & +real(0.1126095264d0,dp), real(0.0000000025d0,dp), & +"") !! muon-proton mass ratio + +type(codata_constant), parameter, public :: MUON_TAU_MASS_RATIO = & +codata_constant("muon-tau mass ratio", & +real(5.94635d-2,dp), real(0.00040d-2,dp), & +"") !! muon-tau mass ratio + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION = & +codata_constant("natural unit of action", & +real(1.054571817d-34,dp), real(0.0d0,dp), & +"J s") !! natural unit of action + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & +codata_constant("natural unit of action in eV s", & +real(6.582119569d-16,dp), real(0.0d0,dp), & +"eV s") !! natural unit of action in eV s + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY = & +codata_constant("natural unit of energy", & +real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +"J") !! natural unit of energy + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & +codata_constant("natural unit of energy in MeV", & +real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +"MeV") !! natural unit of energy in MeV + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_LENGTH = & +codata_constant("natural unit of length", & +real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +"m") !! natural unit of length + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MASS = & +codata_constant("natural unit of mass", & +real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +"kg") !! natural unit of mass + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & +codata_constant("natural unit of momentum", & +real(2.73092453075d-22,dp), real(0.00000000082d-22,dp), & +"kg m s^-1") !! natural unit of momentum + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & +codata_constant("natural unit of momentum in MeV/c", & +real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +"MeV/c") !! natural unit of momentum in MeV/c + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_TIME = & +codata_constant("natural unit of time", & +real(1.28808866819d-21,dp), real(0.00000000039d-21,dp), & +"s") !! natural unit of time + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & +codata_constant("natural unit of velocity", & +real(299792458d0,dp), real(0.0d0,dp), & +"m s^-1") !! natural unit of velocity + +type(codata_constant), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & +codata_constant("neutron Compton wavelength", & +real(1.31959090581d-15,dp), real(0.00000000075d-15,dp), & +"m") !! neutron Compton wavelength + +type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & +codata_constant("neutron-electron mag. mom. ratio", & +real(1.04066882d-3,dp), real(0.00000025d-3,dp), & +"") !! neutron-electron mag. mom. ratio + +type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & +codata_constant("neutron-electron mass ratio", & +real(1838.68366173d0,dp), real(0.00000089d0,dp), & +"") !! neutron-electron mass ratio + +type(codata_constant), parameter, public :: NEUTRON_G_FACTOR = & +codata_constant("neutron g factor", & +real(-3.82608545d0,dp), real(0.00000090d0,dp), & +"") !! neutron g factor + +type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO = & +codata_constant("neutron gyromag. ratio", & +real(1.83247171d8,dp), real(0.00000043d8,dp), & +"s^-1 T^-1") !! neutron gyromag. ratio + +type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("neutron gyromag. ratio in MHz/T", & +real(29.1646931d0,dp), real(0.0000069d0,dp), & +"MHz T^-1") !! neutron gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: NEUTRON_MAG_MOM = & +codata_constant("neutron mag. mom.", & +real(-9.6623651d-27,dp), real(0.0000023d-27,dp), & +"J T^-1") !! neutron mag. mom. + +type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("neutron mag. mom. to Bohr magneton ratio", & +real(-1.04187563d-3,dp), real(0.00000025d-3,dp), & +"") !! neutron mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("neutron mag. mom. to nuclear magneton ratio", & +real(-1.91304273d0,dp), real(0.00000045d0,dp), & +"") !! neutron mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: NEUTRON_MASS = & +codata_constant("neutron mass", & +real(1.67492749804d-27,dp), real(0.00000000095d-27,dp), & +"kg") !! neutron mass + +type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant("neutron mass energy equivalent", & +real(1.50534976287d-10,dp), real(0.00000000086d-10,dp), & +"J") !! neutron mass energy equivalent + +type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("neutron mass energy equivalent in MeV", & +real(939.56542052d0,dp), real(0.00000054d0,dp), & +"MeV") !! neutron mass energy equivalent in MeV + +type(codata_constant), parameter, public :: NEUTRON_MASS_IN_U = & +codata_constant("neutron mass in u", & +real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +"u") !! neutron mass in u + +type(codata_constant), parameter, public :: NEUTRON_MOLAR_MASS = & +codata_constant("neutron molar mass", & +real(1.00866491560d-3,dp), real(0.00000000057d-3,dp), & +"kg mol^-1") !! neutron molar mass + +type(codata_constant), parameter, public :: NEUTRON_MUON_MASS_RATIO = & +codata_constant("neutron-muon mass ratio", & +real(8.89248406d0,dp), real(0.00000020d0,dp), & +"") !! neutron-muon mass ratio + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & +codata_constant("neutron-proton mag. mom. ratio", & +real(-0.68497934d0,dp), real(0.00000016d0,dp), & +"") !! neutron-proton mag. mom. ratio + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & +codata_constant("neutron-proton mass difference", & +real(2.30557435d-30,dp), real(0.00000082d-30,dp), & +"kg") !! neutron-proton mass difference + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & +codata_constant("neutron-proton mass difference energy equivalent", & +real(2.07214689d-13,dp), real(0.00000074d-13,dp), & +"J") !! neutron-proton mass difference energy equivalent + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("neutron-proton mass difference energy equivalent in MeV", & +real(1.29333236d0,dp), real(0.00000046d0,dp), & +"MeV") !! neutron-proton mass difference energy equivalent in MeV + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & +codata_constant("neutron-proton mass difference in u", & +real(1.38844933d-3,dp), real(0.00000049d-3,dp), & +"u") !! neutron-proton mass difference in u + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & +codata_constant("neutron-proton mass ratio", & +real(1.00137841931d0,dp), real(0.00000000049d0,dp), & +"") !! neutron-proton mass ratio + +type(codata_constant), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & +codata_constant("neutron relative atomic mass", & +real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +"") !! neutron relative atomic mass + +type(codata_constant), parameter, public :: NEUTRON_TAU_MASS_RATIO = & +codata_constant("neutron-tau mass ratio", & +real(0.528779d0,dp), real(0.000036d0,dp), & +"") !! neutron-tau mass ratio + +type(codata_constant), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant("neutron to shielded proton mag. mom. ratio", & +real(-0.68499694d0,dp), real(0.00000016d0,dp), & +"") !! neutron to shielded proton mag. mom. ratio + +type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & +codata_constant("Newtonian constant of gravitation", & +real(6.67430d-11,dp), real(0.00015d-11,dp), & +"m^3 kg^-1 s^-2") !! Newtonian constant of gravitation + +type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & +codata_constant("Newtonian constant of gravitation over h-bar c", & +real(6.70883d-39,dp), real(0.00015d-39,dp), & +"(GeV/c^2)^-2") !! Newtonian constant of gravitation over h-bar c + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON = & +codata_constant("nuclear magneton", & +real(5.0507837461d-27,dp), real(0.0000000015d-27,dp), & +"J T^-1") !! nuclear magneton + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & +codata_constant("nuclear magneton in eV/T", & +real(3.15245125844d-8,dp), real(0.00000000096d-8,dp), & +"eV T^-1") !! nuclear magneton in eV/T + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant("nuclear magneton in inverse meter per tesla", & +real(2.54262341353d-2,dp), real(0.00000000078d-2,dp), & +"m^-1 T^-1") !! nuclear magneton in inverse meter per tesla + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & +codata_constant("nuclear magneton in K/T", & +real(3.6582677756d-4,dp), real(0.0000000011d-4,dp), & +"K T^-1") !! nuclear magneton in K/T + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & +codata_constant("nuclear magneton in MHz/T", & +real(7.6225932291d0,dp), real(0.0000000023d0,dp), & +"MHz T^-1") !! nuclear magneton in MHz/T + +type(codata_constant), parameter, public :: PLANCK_CONSTANT = & +codata_constant("Planck constant", & +real(6.62607015d-34,dp), real(0.0d0,dp), & +"J Hz^-1") !! Planck constant + +type(codata_constant), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & +codata_constant("Planck constant in eV/Hz", & +real(4.135667696d-15,dp), real(0.0d0,dp), & +"eV Hz^-1") !! Planck constant in eV/Hz + +type(codata_constant), parameter, public :: PLANCK_LENGTH = & +codata_constant("Planck length", & +real(1.616255d-35,dp), real(0.000018d-35,dp), & +"m") !! Planck length + +type(codata_constant), parameter, public :: PLANCK_MASS = & +codata_constant("Planck mass", & +real(2.176434d-8,dp), real(0.000024d-8,dp), & +"kg") !! Planck mass + +type(codata_constant), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & +codata_constant("Planck mass energy equivalent in GeV", & +real(1.220890d19,dp), real(0.000014d19,dp), & +"GeV") !! Planck mass energy equivalent in GeV + +type(codata_constant), parameter, public :: PLANCK_TEMPERATURE = & +codata_constant("Planck temperature", & +real(1.416784d32,dp), real(0.000016d32,dp), & +"K") !! Planck temperature + +type(codata_constant), parameter, public :: PLANCK_TIME = & +codata_constant("Planck time", & +real(5.391247d-44,dp), real(0.000060d-44,dp), & +"s") !! Planck time + +type(codata_constant), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant("proton charge to mass quotient", & +real(9.5788331560d7,dp), real(0.0000000029d7,dp), & +"C kg^-1") !! proton charge to mass quotient + +type(codata_constant), parameter, public :: PROTON_COMPTON_WAVELENGTH = & +codata_constant("proton Compton wavelength", & +real(1.32140985539d-15,dp), real(0.00000000040d-15,dp), & +"m") !! proton Compton wavelength + +type(codata_constant), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & +codata_constant("proton-electron mass ratio", & +real(1836.15267343d0,dp), real(0.00000011d0,dp), & +"") !! proton-electron mass ratio + +type(codata_constant), parameter, public :: PROTON_G_FACTOR = & +codata_constant("proton g factor", & +real(5.5856946893d0,dp), real(0.0000000016d0,dp), & +"") !! proton g factor + +type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO = & +codata_constant("proton gyromag. ratio", & +real(2.6752218744d8,dp), real(0.0000000011d8,dp), & +"s^-1 T^-1") !! proton gyromag. ratio + +type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("proton gyromag. ratio in MHz/T", & +real(42.577478518d0,dp), real(0.000000018d0,dp), & +"MHz T^-1") !! proton gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: PROTON_MAG_MOM = & +codata_constant("proton mag. mom.", & +real(1.41060679736d-26,dp), real(0.00000000060d-26,dp), & +"J T^-1") !! proton mag. mom. + +type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("proton mag. mom. to Bohr magneton ratio", & +real(1.52103220230d-3,dp), real(0.00000000046d-3,dp), & +"") !! proton mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("proton mag. mom. to nuclear magneton ratio", & +real(2.79284734463d0,dp), real(0.00000000082d0,dp), & +"") !! proton mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & +codata_constant("proton mag. shielding correction", & +real(2.5689d-5,dp), real(0.0011d-5,dp), & +"") !! proton mag. shielding correction + +type(codata_constant), parameter, public :: PROTON_MASS = & +codata_constant("proton mass", & +real(1.67262192369d-27,dp), real(0.00000000051d-27,dp), & +"kg") !! proton mass + +type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & +codata_constant("proton mass energy equivalent", & +real(1.50327761598d-10,dp), real(0.00000000046d-10,dp), & +"J") !! proton mass energy equivalent + +type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("proton mass energy equivalent in MeV", & +real(938.27208816d0,dp), real(0.00000029d0,dp), & +"MeV") !! proton mass energy equivalent in MeV + +type(codata_constant), parameter, public :: PROTON_MASS_IN_U = & +codata_constant("proton mass in u", & +real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +"u") !! proton mass in u + +type(codata_constant), parameter, public :: PROTON_MOLAR_MASS = & +codata_constant("proton molar mass", & +real(1.00727646627d-3,dp), real(0.00000000031d-3,dp), & +"kg mol^-1") !! proton molar mass + +type(codata_constant), parameter, public :: PROTON_MUON_MASS_RATIO = & +codata_constant("proton-muon mass ratio", & +real(8.88024337d0,dp), real(0.00000020d0,dp), & +"") !! proton-muon mass ratio + +type(codata_constant), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & +codata_constant("proton-neutron mag. mom. ratio", & +real(-1.45989805d0,dp), real(0.00000034d0,dp), & +"") !! proton-neutron mag. mom. ratio + +type(codata_constant), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & +codata_constant("proton-neutron mass ratio", & +real(0.99862347812d0,dp), real(0.00000000049d0,dp), & +"") !! proton-neutron mass ratio + +type(codata_constant), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & +codata_constant("proton relative atomic mass", & +real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +"") !! proton relative atomic mass + +type(codata_constant), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & +codata_constant("proton rms charge radius", & +real(8.414d-16,dp), real(0.019d-16,dp), & +"m") !! proton rms charge radius + +type(codata_constant), parameter, public :: PROTON_TAU_MASS_RATIO = & +codata_constant("proton-tau mass ratio", & +real(0.528051d0,dp), real(0.000036d0,dp), & +"") !! proton-tau mass ratio + +type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION = & +codata_constant("quantum of circulation", & +real(3.6369475516d-4,dp), real(0.0000000011d-4,dp), & +"m^2 s^-1") !! quantum of circulation + +type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & +codata_constant("quantum of circulation times 2", & +real(7.2738951032d-4,dp), real(0.0000000022d-4,dp), & +"m^2 s^-1") !! quantum of circulation times 2 + +type(codata_constant), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & +codata_constant("reduced Compton wavelength", & +real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +"m") !! reduced Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & +codata_constant("reduced muon Compton wavelength", & +real(1.867594306d-15,dp), real(0.000000042d-15,dp), & +"m") !! reduced muon Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & +codata_constant("reduced neutron Compton wavelength", & +real(2.1001941552d-16,dp), real(0.0000000012d-16,dp), & +"m") !! reduced neutron Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT = & +codata_constant("reduced Planck constant", & +real(1.054571817d-34,dp), real(0.0d0,dp), & +"J s") !! reduced Planck constant + +type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & +codata_constant("reduced Planck constant in eV s", & +real(6.582119569d-16,dp), real(0.0d0,dp), & +"eV s") !! reduced Planck constant in eV s + +type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & +codata_constant("reduced Planck constant times c in MeV fm", & +real(197.3269804d0,dp), real(0.0d0,dp), & +"MeV fm") !! reduced Planck constant times c in MeV fm + +type(codata_constant), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & +codata_constant("reduced proton Compton wavelength", & +real(2.10308910336d-16,dp), real(0.00000000064d-16,dp), & +"m") !! reduced proton Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & +codata_constant("reduced tau Compton wavelength", & +real(1.110538d-16,dp), real(0.000075d-16,dp), & +"m") !! reduced tau Compton wavelength + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT = & +codata_constant("Rydberg constant", & +real(10973731.568160d0,dp), real(0.000021d0,dp), & +"m^-1") !! Rydberg constant + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & +codata_constant("Rydberg constant times c in Hz", & +real(3.2898419602508d15,dp), real(0.0000000000064d15,dp), & +"Hz") !! Rydberg constant times c in Hz + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & +codata_constant("Rydberg constant times hc in eV", & +real(13.605693122994d0,dp), real(0.000000000026d0,dp), & +"eV") !! Rydberg constant times hc in eV + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & +codata_constant("Rydberg constant times hc in J", & +real(2.1798723611035d-18,dp), real(0.0000000000042d-18,dp), & +"J") !! Rydberg constant times hc in J + +type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & +codata_constant("Sackur-Tetrode constant (1 K, 100 kPa)", & +real(-1.15170753706d0,dp), real(0.00000000045d0,dp), & +"") !! Sackur-Tetrode constant (1 K, 100 kPa) + +type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & +codata_constant("Sackur-Tetrode constant (1 K, 101.325 kPa)", & +real(-1.16487052358d0,dp), real(0.00000000045d0,dp), & +"") !! Sackur-Tetrode constant (1 K, 101.325 kPa) + +type(codata_constant), parameter, public :: SECOND_RADIATION_CONSTANT = & +codata_constant("second radiation constant", & +real(1.438776877d-2,dp), real(0.0d0,dp), & +"m K") !! second radiation constant + +type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & +codata_constant("shielded helion gyromag. ratio", & +real(2.037894569d8,dp), real(0.000000024d8,dp), & +"s^-1 T^-1") !! shielded helion gyromag. ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("shielded helion gyromag. ratio in MHz/T", & +real(32.43409942d0,dp), real(0.00000038d0,dp), & +"MHz T^-1") !! shielded helion gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM = & +codata_constant("shielded helion mag. mom.", & +real(-1.074553090d-26,dp), real(0.000000013d-26,dp), & +"J T^-1") !! shielded helion mag. mom. + +type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("shielded helion mag. mom. to Bohr magneton ratio", & +real(-1.158671471d-3,dp), real(0.000000014d-3,dp), & +"") !! shielded helion mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("shielded helion mag. mom. to nuclear magneton ratio", & +real(-2.127497719d0,dp), real(0.000000025d0,dp), & +"") !! shielded helion mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & +codata_constant("shielded helion to proton mag. mom. ratio", & +real(-0.7617665618d0,dp), real(0.0000000089d0,dp), & +"") !! shielded helion to proton mag. mom. ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant("shielded helion to shielded proton mag. mom. ratio", & +real(-0.7617861313d0,dp), real(0.0000000033d0,dp), & +"") !! shielded helion to shielded proton mag. mom. ratio + +type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & +codata_constant("shielded proton gyromag. ratio", & +real(2.675153151d8,dp), real(0.000000029d8,dp), & +"s^-1 T^-1") !! shielded proton gyromag. ratio + +type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("shielded proton gyromag. ratio in MHz/T", & +real(42.57638474d0,dp), real(0.00000046d0,dp), & +"MHz T^-1") !! shielded proton gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM = & +codata_constant("shielded proton mag. mom.", & +real(1.410570560d-26,dp), real(0.000000015d-26,dp), & +"J T^-1") !! shielded proton mag. mom. + +type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("shielded proton mag. mom. to Bohr magneton ratio", & +real(1.520993128d-3,dp), real(0.000000017d-3,dp), & +"") !! shielded proton mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("shielded proton mag. mom. to nuclear magneton ratio", & +real(2.792775599d0,dp), real(0.000000030d0,dp), & +"") !! shielded proton mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & +codata_constant("shielding difference of d and p in HD", & +real(2.0200d-8,dp), real(0.0020d-8,dp), & +"") !! shielding difference of d and p in HD + +type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & +codata_constant("shielding difference of t and p in HT", & +real(2.4140d-8,dp), real(0.0020d-8,dp), & +"") !! shielding difference of t and p in HT + +type(codata_constant), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & +codata_constant("speed of light in vacuum", & +real(299792458d0,dp), real(0.0d0,dp), & +"m s^-1") !! speed of light in vacuum + +type(codata_constant), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & +codata_constant("standard acceleration of gravity", & +real(9.80665d0,dp), real(0.0d0,dp), & +"m s^-2") !! standard acceleration of gravity + +type(codata_constant), parameter, public :: STANDARD_ATMOSPHERE = & +codata_constant("standard atmosphere", & +real(101325d0,dp), real(0.0d0,dp), & +"Pa") !! standard atmosphere + +type(codata_constant), parameter, public :: STANDARD_STATE_PRESSURE = & +codata_constant("standard-state pressure", & +real(100000d0,dp), real(0.0d0,dp), & +"Pa") !! standard-state pressure + +type(codata_constant), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & +codata_constant("Stefan-Boltzmann constant", & +real(5.670374419d-8,dp), real(0.0d0,dp), & +"W m^-2 K^-4") !! Stefan-Boltzmann constant + +type(codata_constant), parameter, public :: TAU_COMPTON_WAVELENGTH = & +codata_constant("tau Compton wavelength", & +real(6.97771d-16,dp), real(0.00047d-16,dp), & +"m") !! tau Compton wavelength + +type(codata_constant), parameter, public :: TAU_ELECTRON_MASS_RATIO = & +codata_constant("tau-electron mass ratio", & +real(3477.23d0,dp), real(0.23d0,dp), & +"") !! tau-electron mass ratio + +type(codata_constant), parameter, public :: TAU_ENERGY_EQUIVALENT = & +codata_constant("tau energy equivalent", & +real(1776.86d0,dp), real(0.12d0,dp), & +"MeV") !! tau energy equivalent + +type(codata_constant), parameter, public :: TAU_MASS = & +codata_constant("tau mass", & +real(3.16754d-27,dp), real(0.00021d-27,dp), & +"kg") !! tau mass + +type(codata_constant), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & +codata_constant("tau mass energy equivalent", & +real(2.84684d-10,dp), real(0.00019d-10,dp), & +"J") !! tau mass energy equivalent + +type(codata_constant), parameter, public :: TAU_MASS_IN_U = & +codata_constant("tau mass in u", & +real(1.90754d0,dp), real(0.00013d0,dp), & +"u") !! tau mass in u + +type(codata_constant), parameter, public :: TAU_MOLAR_MASS = & +codata_constant("tau molar mass", & +real(1.90754d-3,dp), real(0.00013d-3,dp), & +"kg mol^-1") !! tau molar mass + +type(codata_constant), parameter, public :: TAU_MUON_MASS_RATIO = & +codata_constant("tau-muon mass ratio", & +real(16.8170d0,dp), real(0.0011d0,dp), & +"") !! tau-muon mass ratio + +type(codata_constant), parameter, public :: TAU_NEUTRON_MASS_RATIO = & +codata_constant("tau-neutron mass ratio", & +real(1.89115d0,dp), real(0.00013d0,dp), & +"") !! tau-neutron mass ratio + +type(codata_constant), parameter, public :: TAU_PROTON_MASS_RATIO = & +codata_constant("tau-proton mass ratio", & +real(1.89376d0,dp), real(0.00013d0,dp), & +"") !! tau-proton mass ratio + +type(codata_constant), parameter, public :: THOMSON_CROSS_SECTION = & +codata_constant("Thomson cross section", & +real(6.6524587321d-29,dp), real(0.0000000060d-29,dp), & +"m^2") !! Thomson cross section + +type(codata_constant), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & +codata_constant("triton-electron mass ratio", & +real(5496.92153573d0,dp), real(0.00000027d0,dp), & +"") !! triton-electron mass ratio + +type(codata_constant), parameter, public :: TRITON_G_FACTOR = & +codata_constant("triton g factor", & +real(5.957924931d0,dp), real(0.000000012d0,dp), & +"") !! triton g factor + +type(codata_constant), parameter, public :: TRITON_MAG_MOM = & +codata_constant("triton mag. mom.", & +real(1.5046095202d-26,dp), real(0.0000000030d-26,dp), & +"J T^-1") !! triton mag. mom. + +type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("triton mag. mom. to Bohr magneton ratio", & +real(1.6223936651d-3,dp), real(0.0000000032d-3,dp), & +"") !! triton mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("triton mag. mom. to nuclear magneton ratio", & +real(2.9789624656d0,dp), real(0.0000000059d0,dp), & +"") !! triton mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: TRITON_MASS = & +codata_constant("triton mass", & +real(5.0073567446d-27,dp), real(0.0000000015d-27,dp), & +"kg") !! triton mass + +type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & +codata_constant("triton mass energy equivalent", & +real(4.5003878060d-10,dp), real(0.0000000014d-10,dp), & +"J") !! triton mass energy equivalent + +type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("triton mass energy equivalent in MeV", & +real(2808.92113298d0,dp), real(0.00000085d0,dp), & +"MeV") !! triton mass energy equivalent in MeV + +type(codata_constant), parameter, public :: TRITON_MASS_IN_U = & +codata_constant("triton mass in u", & +real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +"u") !! triton mass in u + +type(codata_constant), parameter, public :: TRITON_MOLAR_MASS = & +codata_constant("triton molar mass", & +real(3.01550071517d-3,dp), real(0.00000000092d-3,dp), & +"kg mol^-1") !! triton molar mass + +type(codata_constant), parameter, public :: TRITON_PROTON_MASS_RATIO = & +codata_constant("triton-proton mass ratio", & +real(2.99371703414d0,dp), real(0.00000000015d0,dp), & +"") !! triton-proton mass ratio + +type(codata_constant), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & +codata_constant("triton relative atomic mass", & +real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +"") !! triton relative atomic mass + +type(codata_constant), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & +codata_constant("triton to proton mag. mom. ratio", & +real(1.0666399191d0,dp), real(0.0000000021d0,dp), & +"") !! triton to proton mag. mom. ratio + +type(codata_constant), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & +codata_constant("unified atomic mass unit", & +real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +"kg") !! unified atomic mass unit + +type(codata_constant), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & +codata_constant("vacuum electric permittivity", & +real(8.8541878128d-12,dp), real(0.0000000013d-12,dp), & +"F m^-1") !! vacuum electric permittivity + +type(codata_constant), parameter, public :: VACUUM_MAG_PERMEABILITY = & +codata_constant("vacuum mag. permeability", & +real(1.25663706212d-6,dp), real(0.00000000019d-6,dp), & +"N A^-2") !! vacuum mag. permeability + +type(codata_constant), parameter, public :: VON_KLITZING_CONSTANT = & +codata_constant("von Klitzing constant", & +real(25812.80745d0,dp), real(0.0d0,dp), & +"ohm") !! von Klitzing constant + +type(codata_constant), parameter, public :: WEAK_MIXING_ANGLE = & +codata_constant("weak mixing angle", & +real(0.22290d0,dp), real(0.00030d0,dp), & +"") !! weak mixing angle + +type(codata_constant), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & +codata_constant("Wien frequency displacement law constant", & +real(5.878925757d10,dp), real(0.0d0,dp), & +"Hz K^-1") !! Wien frequency displacement law constant + +type(codata_constant), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & +codata_constant("Wien wavelength displacement law constant", & +real(2.897771955d-3,dp), real(0.0d0,dp), & +"m K") !! Wien wavelength displacement law constant + +type(codata_constant), parameter, public :: W_TO_Z_MASS_RATIO = & +codata_constant("W to Z mass ratio", & +real(0.88153d0,dp), real(0.00017d0,dp), & +"") !! W to Z mass ratio + +end module stdlib_codata \ No newline at end of file From be97e8c5a1decd8ab8ac064a622e4a06d6d1a1d7 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 25 Apr 2024 08:55:56 +0200 Subject: [PATCH 002/144] Add generic facility and mimic scipy constant module. --- src/CMakeLists.txt | 20 +- src/stdlib_codata.f90 | 719 ++++++++++++++++++------------------ src/stdlib_codata_type.fypp | 50 +++ src/stdlib_constants.fypp | 66 ++++ 4 files changed, 483 insertions(+), 372 deletions(-) create mode 100644 src/stdlib_codata_type.fypp create mode 100644 src/stdlib_constants.fypp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 750f8028f..0cf83a2e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,14 +6,16 @@ set(fppFiles stdlib_bitsets.fypp stdlib_bitsets_64.fypp stdlib_bitsets_large.fypp - stdlib_hash_32bit.fypp + stdlib_codata_type.fypp + stdlib_constants.fypp + stdlib_hash_32bit.fypp stdlib_hash_32bit_fnv.fypp - stdlib_hash_32bit_nm.fypp - stdlib_hash_32bit_water.fypp - stdlib_hash_64bit.fypp - stdlib_hash_64bit_fnv.fypp - stdlib_hash_64bit_pengy.fypp - stdlib_hash_64bit_spookyv2.fypp + stdlib_hash_32bit_nm.fypp + stdlib_hash_32bit_water.fypp + stdlib_hash_64bit.fypp + stdlib_hash_64bit_fnv.fypp + stdlib_hash_64bit_pengy.fypp + stdlib_hash_64bit_spookyv2.fypp stdlib_io.fypp stdlib_io_npy.fypp stdlib_io_npy_load.fypp @@ -24,7 +26,7 @@ set(fppFiles stdlib_linalg_outer_product.fypp stdlib_linalg_kronecker.fypp stdlib_linalg_cross_product.fypp - stdlib_linalg_state.fypp + stdlib_linalg_state.fypp stdlib_optval.fypp stdlib_selection.fypp stdlib_sorting.fypp @@ -65,7 +67,7 @@ set(fppFiles stdlib_version.fypp ) -# Preprocessed files to contain preprocessor directives -> .F90 +# Preprocessed files to contain preprocessor directives -> .F90 set(cppFiles stdlib_linalg_constants.fypp stdlib_linalg_blas.fypp diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index fd15a6fae..398d5bc9e 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -1,1786 +1,1779 @@ module stdlib_codata - !! Codata Constants + !! Codata Constants - Autogenerated use stdlib_kinds, only: dp, int32 + use stdlib_codata_type private -type, public :: codata_constant -!! Derived type for representing a Codata constant. - character(len=64) :: name - real(dp) :: value - real(dp) :: uncertainty - character(len=32) :: unit -end type - integer(int32), parameter, public :: YEAR = 2018 !! Year of release. type(codata_constant), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & codata_constant("alpha particle-electron mass ratio", & -real(7294.29954142d0,dp), real(0.00000024d0,dp), & +7294.29954142_dp, 0.00000024_dp, & "") !! alpha particle-electron mass ratio type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS = & codata_constant("alpha particle mass", & -real(6.6446573357d-27,dp), real(0.0000000020d-27,dp), & +6.6446573357e-27_dp, 0.0000000020e-27_dp, & "kg") !! alpha particle mass type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & codata_constant("alpha particle mass energy equivalent", & -real(5.9719201914d-10,dp), real(0.0000000018d-10,dp), & +5.9719201914e-10_dp, 0.0000000018e-10_dp, & "J") !! alpha particle mass energy equivalent type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("alpha particle mass energy equivalent in MeV", & -real(3727.3794066d0,dp), real(0.0000011d0,dp), & +3727.3794066_dp, 0.0000011_dp, & "MeV") !! alpha particle mass energy equivalent in MeV type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & codata_constant("alpha particle mass in u", & -real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +4.001506179127_dp, 0.000000000063_dp, & "u") !! alpha particle mass in u type(codata_constant), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & codata_constant("alpha particle molar mass", & -real(4.0015061777d-3,dp), real(0.0000000012d-3,dp), & +4.0015061777e-3_dp, 0.0000000012e-3_dp, & "kg mol^-1") !! alpha particle molar mass type(codata_constant), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & codata_constant("alpha particle-proton mass ratio", & -real(3.97259969009d0,dp), real(0.00000000022d0,dp), & +3.97259969009_dp, 0.00000000022_dp, & "") !! alpha particle-proton mass ratio type(codata_constant), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & codata_constant("alpha particle relative atomic mass", & -real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +4.001506179127_dp, 0.000000000063_dp, & "") !! alpha particle relative atomic mass type(codata_constant), parameter, public :: ANGSTROM_STAR = & codata_constant("Angstrom star", & -real(1.00001495d-10,dp), real(0.00000090d-10,dp), & +1.00001495e-10_dp, 0.00000090e-10_dp, & "m") !! Angstrom star type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT = & codata_constant("atomic mass constant", & -real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass constant type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & codata_constant("atomic mass constant energy equivalent", & -real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass constant energy equivalent type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("atomic mass constant energy equivalent in MeV", & -real(931.49410242d0,dp), real(0.00000028d0,dp), & +931.49410242_dp, 0.00000028_dp, & "MeV") !! atomic mass constant energy equivalent in MeV type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("atomic mass unit-electron volt relationship", & -real(9.3149410242d8,dp), real(0.0000000028d8,dp), & +9.3149410242e8_dp, 0.0000000028e8_dp, & "eV") !! atomic mass unit-electron volt relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & codata_constant("atomic mass unit-hartree relationship", & -real(3.4231776874d7,dp), real(0.0000000010d7,dp), & +3.4231776874e7_dp, 0.0000000010e7_dp, & "E_h") !! atomic mass unit-hartree relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & codata_constant("atomic mass unit-hertz relationship", & -real(2.25234271871d23,dp), real(0.00000000068d23,dp), & +2.25234271871e23_dp, 0.00000000068e23_dp, & "Hz") !! atomic mass unit-hertz relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & codata_constant("atomic mass unit-inverse meter relationship", & -real(7.5130066104d14,dp), real(0.0000000023d14,dp), & +7.5130066104e14_dp, 0.0000000023e14_dp, & "m^-1") !! atomic mass unit-inverse meter relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & codata_constant("atomic mass unit-joule relationship", & -real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass unit-joule relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & codata_constant("atomic mass unit-kelvin relationship", & -real(1.08095401916d13,dp), real(0.00000000033d13,dp), & +1.08095401916e13_dp, 0.00000000033e13_dp, & "K") !! atomic mass unit-kelvin relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & codata_constant("atomic mass unit-kilogram relationship", & -real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass unit-kilogram relationship type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & codata_constant("atomic unit of 1st hyperpolarizability", & -real(3.2063613061d-53,dp), real(0.0000000015d-53,dp), & +3.2063613061e-53_dp, 0.0000000015e-53_dp, & "C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & codata_constant("atomic unit of 2nd hyperpolarizability", & -real(6.2353799905d-65,dp), real(0.0000000038d-65,dp), & +6.2353799905e-65_dp, 0.0000000038e-65_dp, & "C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ACTION = & codata_constant("atomic unit of action", & -real(1.054571817d-34,dp), real(0.0d0,dp), & +1.054571817e-34_dp, 0.0_dp, & "J s") !! atomic unit of action type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & codata_constant("atomic unit of charge", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "C") !! atomic unit of charge type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & codata_constant("atomic unit of charge density", & -real(1.08120238457d12,dp), real(0.00000000049d12,dp), & +1.08120238457e12_dp, 0.00000000049e12_dp, & "C m^-3") !! atomic unit of charge density type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & codata_constant("atomic unit of current", & -real(6.623618237510d-3,dp), real(0.000000000013d-3,dp), & +6.623618237510e-3_dp, 0.000000000013e-3_dp, & "A") !! atomic unit of current type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & codata_constant("atomic unit of electric dipole mom.", & -real(8.4783536255d-30,dp), real(0.0000000013d-30,dp), & +8.4783536255e-30_dp, 0.0000000013e-30_dp, & "C m") !! atomic unit of electric dipole mom. type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & codata_constant("atomic unit of electric field", & -real(5.14220674763d11,dp), real(0.00000000078d11,dp), & +5.14220674763e11_dp, 0.00000000078e11_dp, & "V m^-1") !! atomic unit of electric field type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & codata_constant("atomic unit of electric field gradient", & -real(9.7173624292d21,dp), real(0.0000000029d21,dp), & +9.7173624292e21_dp, 0.0000000029e21_dp, & "V m^-2") !! atomic unit of electric field gradient type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & codata_constant("atomic unit of electric polarizability", & -real(1.64877727436d-41,dp), real(0.00000000050d-41,dp), & +1.64877727436e-41_dp, 0.00000000050e-41_dp, & "C^2 m^2 J^-1") !! atomic unit of electric polarizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & codata_constant("atomic unit of electric potential", & -real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +27.211386245988_dp, 0.000000000053_dp, & "V") !! atomic unit of electric potential type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & codata_constant("atomic unit of electric quadrupole mom.", & -real(4.4865515246d-40,dp), real(0.0000000014d-40,dp), & +4.4865515246e-40_dp, 0.0000000014e-40_dp, & "C m^2") !! atomic unit of electric quadrupole mom. type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & codata_constant("atomic unit of energy", & -real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! atomic unit of energy type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_FORCE = & codata_constant("atomic unit of force", & -real(8.2387234983d-8,dp), real(0.0000000012d-8,dp), & +8.2387234983e-8_dp, 0.0000000012e-8_dp, & "N") !! atomic unit of force type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & codata_constant("atomic unit of length", & -real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! atomic unit of length type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & codata_constant("atomic unit of mag. dipole mom.", & -real(1.85480201566d-23,dp), real(0.00000000056d-23,dp), & +1.85480201566e-23_dp, 0.00000000056e-23_dp, & "J T^-1") !! atomic unit of mag. dipole mom. type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & codata_constant("atomic unit of mag. flux density", & -real(2.35051756758d5,dp), real(0.00000000071d5,dp), & +2.35051756758e5_dp, 0.00000000071e5_dp, & "T") !! atomic unit of mag. flux density type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & codata_constant("atomic unit of magnetizability", & -real(7.8910366008d-29,dp), real(0.0000000048d-29,dp), & +7.8910366008e-29_dp, 0.0000000048e-29_dp, & "J T^-2") !! atomic unit of magnetizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MASS = & codata_constant("atomic unit of mass", & -real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! atomic unit of mass type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & codata_constant("atomic unit of momentum", & -real(1.99285191410d-24,dp), real(0.00000000030d-24,dp), & +1.99285191410e-24_dp, 0.00000000030e-24_dp, & "kg m s^-1") !! atomic unit of momentum type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & codata_constant("atomic unit of permittivity", & -real(1.11265005545d-10,dp), real(0.00000000017d-10,dp), & +1.11265005545e-10_dp, 0.00000000017e-10_dp, & "F m^-1") !! atomic unit of permittivity type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_TIME = & codata_constant("atomic unit of time", & -real(2.4188843265857d-17,dp), real(0.0000000000047d-17,dp), & +2.4188843265857e-17_dp, 0.0000000000047e-17_dp, & "s") !! atomic unit of time type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & codata_constant("atomic unit of velocity", & -real(2.18769126364d6,dp), real(0.00000000033d6,dp), & +2.18769126364e6_dp, 0.00000000033e6_dp, & "m s^-1") !! atomic unit of velocity type(codata_constant), parameter, public :: AVOGADRO_CONSTANT = & codata_constant("Avogadro constant", & -real(6.02214076d23,dp), real(0.0d0,dp), & +6.02214076e23_dp, 0.0_dp, & "mol^-1") !! Avogadro constant type(codata_constant), parameter, public :: BOHR_MAGNETON = & codata_constant("Bohr magneton", & -real(9.2740100783d-24,dp), real(0.0000000028d-24,dp), & +9.2740100783e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! Bohr magneton type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_EV_T = & codata_constant("Bohr magneton in eV/T", & -real(5.7883818060d-5,dp), real(0.0000000017d-5,dp), & +5.7883818060e-5_dp, 0.0000000017e-5_dp, & "eV T^-1") !! Bohr magneton in eV/T type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & codata_constant("Bohr magneton in Hz/T", & -real(1.39962449361d10,dp), real(0.00000000042d10,dp), & +1.39962449361e10_dp, 0.00000000042e10_dp, & "Hz T^-1") !! Bohr magneton in Hz/T type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant("Bohr magneton in inverse meter per tesla", & -real(46.686447783d0,dp), real(0.000000014d0,dp), & +46.686447783_dp, 0.000000014_dp, & "m^-1 T^-1") !! Bohr magneton in inverse meter per tesla type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_K_T = & codata_constant("Bohr magneton in K/T", & -real(0.67171381563d0,dp), real(0.00000000020d0,dp), & +0.67171381563_dp, 0.00000000020_dp, & "K T^-1") !! Bohr magneton in K/T type(codata_constant), parameter, public :: BOHR_RADIUS = & codata_constant("Bohr radius", & -real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! Bohr radius type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT = & codata_constant("Boltzmann constant", & -real(1.380649d-23,dp), real(0.0d0,dp), & +1.380649e-23_dp, 0.0_dp, & "J K^-1") !! Boltzmann constant type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & codata_constant("Boltzmann constant in eV/K", & -real(8.617333262d-5,dp), real(0.0d0,dp), & +8.617333262e-5_dp, 0.0_dp, & "eV K^-1") !! Boltzmann constant in eV/K type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & codata_constant("Boltzmann constant in Hz/K", & -real(2.083661912d10,dp), real(0.0d0,dp), & +2.083661912e10_dp, 0.0_dp, & "Hz K^-1") !! Boltzmann constant in Hz/K type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & codata_constant("Boltzmann constant in inverse meter per kelvin", & -real(69.50348004d0,dp), real(0.0d0,dp), & +69.50348004_dp, 0.0_dp, & "m^-1 K^-1") !! Boltzmann constant in inverse meter per kelvin type(codata_constant), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & codata_constant("characteristic impedance of vacuum", & -real(376.730313668d0,dp), real(0.000000057d0,dp), & +376.730313668_dp, 0.000000057_dp, & "ohm") !! characteristic impedance of vacuum type(codata_constant), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & codata_constant("classical electron radius", & -real(2.8179403262d-15,dp), real(0.0000000013d-15,dp), & +2.8179403262e-15_dp, 0.0000000013e-15_dp, & "m") !! classical electron radius type(codata_constant), parameter, public :: COMPTON_WAVELENGTH = & codata_constant("Compton wavelength", & -real(2.42631023867d-12,dp), real(0.00000000073d-12,dp), & +2.42631023867e-12_dp, 0.00000000073e-12_dp, & "m") !! Compton wavelength type(codata_constant), parameter, public :: CONDUCTANCE_QUANTUM = & codata_constant("conductance quantum", & -real(7.748091729d-5,dp), real(0.0d0,dp), & +7.748091729e-5_dp, 0.0_dp, & "S") !! conductance quantum type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & codata_constant("conventional value of ampere-90", & -real(1.00000008887d0,dp), real(0.0d0,dp), & +1.00000008887_dp, 0.0_dp, & "A") !! conventional value of ampere-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & codata_constant("conventional value of coulomb-90", & -real(1.00000008887d0,dp), real(0.0d0,dp), & +1.00000008887_dp, 0.0_dp, & "C") !! conventional value of coulomb-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & codata_constant("conventional value of farad-90", & -real(0.99999998220d0,dp), real(0.0d0,dp), & +0.99999998220_dp, 0.0_dp, & "F") !! conventional value of farad-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & codata_constant("conventional value of henry-90", & -real(1.00000001779d0,dp), real(0.0d0,dp), & +1.00000001779_dp, 0.0_dp, & "H") !! conventional value of henry-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & codata_constant("conventional value of Josephson constant", & -real(483597.9d9,dp), real(0.0d0,dp), & +483597.9e9_dp, 0.0_dp, & "Hz V^-1") !! conventional value of Josephson constant type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & codata_constant("conventional value of ohm-90", & -real(1.00000001779d0,dp), real(0.0d0,dp), & +1.00000001779_dp, 0.0_dp, & "ohm") !! conventional value of ohm-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & codata_constant("conventional value of volt-90", & -real(1.00000010666d0,dp), real(0.0d0,dp), & +1.00000010666_dp, 0.0_dp, & "V") !! conventional value of volt-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & codata_constant("conventional value of von Klitzing constant", & -real(25812.807d0,dp), real(0.0d0,dp), & +25812.807_dp, 0.0_dp, & "ohm") !! conventional value of von Klitzing constant type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & codata_constant("conventional value of watt-90", & -real(1.00000019553d0,dp), real(0.0d0,dp), & +1.00000019553_dp, 0.0_dp, & "W") !! conventional value of watt-90 type(codata_constant), parameter, public :: COPPER_X_UNIT = & codata_constant("Copper x unit", & -real(1.00207697d-13,dp), real(0.00000028d-13,dp), & +1.00207697e-13_dp, 0.00000028e-13_dp, & "m") !! Copper x unit type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & codata_constant("deuteron-electron mag. mom. ratio", & -real(-4.664345551d-4,dp), real(0.000000012d-4,dp), & +-4.664345551e-4_dp, 0.000000012e-4_dp, & "") !! deuteron-electron mag. mom. ratio type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & codata_constant("deuteron-electron mass ratio", & -real(3670.48296788d0,dp), real(0.00000013d0,dp), & +3670.48296788_dp, 0.00000013_dp, & "") !! deuteron-electron mass ratio type(codata_constant), parameter, public :: DEUTERON_G_FACTOR = & codata_constant("deuteron g factor", & -real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron g factor type(codata_constant), parameter, public :: DEUTERON_MAG_MOM = & codata_constant("deuteron mag. mom.", & -real(4.330735094d-27,dp), real(0.000000011d-27,dp), & +4.330735094e-27_dp, 0.000000011e-27_dp, & "J T^-1") !! deuteron mag. mom. type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("deuteron mag. mom. to Bohr magneton ratio", & -real(4.669754570d-4,dp), real(0.000000012d-4,dp), & +4.669754570e-4_dp, 0.000000012e-4_dp, & "") !! deuteron mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("deuteron mag. mom. to nuclear magneton ratio", & -real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: DEUTERON_MASS = & codata_constant("deuteron mass", & -real(3.3435837724d-27,dp), real(0.0000000010d-27,dp), & +3.3435837724e-27_dp, 0.0000000010e-27_dp, & "kg") !! deuteron mass type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & codata_constant("deuteron mass energy equivalent", & -real(3.00506323102d-10,dp), real(0.00000000091d-10,dp), & +3.00506323102e-10_dp, 0.00000000091e-10_dp, & "J") !! deuteron mass energy equivalent type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("deuteron mass energy equivalent in MeV", & -real(1875.61294257d0,dp), real(0.00000057d0,dp), & +1875.61294257_dp, 0.00000057_dp, & "MeV") !! deuteron mass energy equivalent in MeV type(codata_constant), parameter, public :: DEUTERON_MASS_IN_U = & codata_constant("deuteron mass in u", & -real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +2.013553212745_dp, 0.000000000040_dp, & "u") !! deuteron mass in u type(codata_constant), parameter, public :: DEUTERON_MOLAR_MASS = & codata_constant("deuteron molar mass", & -real(2.01355321205d-3,dp), real(0.00000000061d-3,dp), & +2.01355321205e-3_dp, 0.00000000061e-3_dp, & "kg mol^-1") !! deuteron molar mass type(codata_constant), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & codata_constant("deuteron-neutron mag. mom. ratio", & -real(-0.44820653d0,dp), real(0.00000011d0,dp), & +-0.44820653_dp, 0.00000011_dp, & "") !! deuteron-neutron mag. mom. ratio type(codata_constant), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & codata_constant("deuteron-proton mag. mom. ratio", & -real(0.30701220939d0,dp), real(0.00000000079d0,dp), & +0.30701220939_dp, 0.00000000079_dp, & "") !! deuteron-proton mag. mom. ratio type(codata_constant), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & codata_constant("deuteron-proton mass ratio", & -real(1.99900750139d0,dp), real(0.00000000011d0,dp), & +1.99900750139_dp, 0.00000000011_dp, & "") !! deuteron-proton mass ratio type(codata_constant), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & codata_constant("deuteron relative atomic mass", & -real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +2.013553212745_dp, 0.000000000040_dp, & "") !! deuteron relative atomic mass type(codata_constant), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & codata_constant("deuteron rms charge radius", & -real(2.12799d-15,dp), real(0.00074d-15,dp), & +2.12799e-15_dp, 0.00074e-15_dp, & "m") !! deuteron rms charge radius type(codata_constant), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & codata_constant("electron charge to mass quotient", & -real(-1.75882001076d11,dp), real(0.00000000053d11,dp), & +-1.75882001076e11_dp, 0.00000000053e11_dp, & "C kg^-1") !! electron charge to mass quotient type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & codata_constant("electron-deuteron mag. mom. ratio", & -real(-2143.9234915d0,dp), real(0.0000056d0,dp), & +-2143.9234915_dp, 0.0000056_dp, & "") !! electron-deuteron mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & codata_constant("electron-deuteron mass ratio", & -real(2.724437107462d-4,dp), real(0.000000000096d-4,dp), & +2.724437107462e-4_dp, 0.000000000096e-4_dp, & "") !! electron-deuteron mass ratio type(codata_constant), parameter, public :: ELECTRON_G_FACTOR = & codata_constant("electron g factor", & -real(-2.00231930436256d0,dp), real(0.00000000000035d0,dp), & +-2.00231930436256_dp, 0.00000000000035_dp, & "") !! electron g factor type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO = & codata_constant("electron gyromag. ratio", & -real(1.76085963023d11,dp), real(0.00000000053d11,dp), & +1.76085963023e11_dp, 0.00000000053e11_dp, & "s^-1 T^-1") !! electron gyromag. ratio type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("electron gyromag. ratio in MHz/T", & -real(28024.9514242d0,dp), real(0.0000085d0,dp), & +28024.9514242_dp, 0.0000085_dp, & "MHz T^-1") !! electron gyromag. ratio in MHz/T type(codata_constant), parameter, public :: ELECTRON_HELION_MASS_RATIO = & codata_constant("electron-helion mass ratio", & -real(1.819543074573d-4,dp), real(0.000000000079d-4,dp), & +1.819543074573e-4_dp, 0.000000000079e-4_dp, & "") !! electron-helion mass ratio type(codata_constant), parameter, public :: ELECTRON_MAG_MOM = & codata_constant("electron mag. mom.", & -real(-9.2847647043d-24,dp), real(0.0000000028d-24,dp), & +-9.2847647043e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! electron mag. mom. type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & codata_constant("electron mag. mom. anomaly", & -real(1.15965218128d-3,dp), real(0.00000000018d-3,dp), & +1.15965218128e-3_dp, 0.00000000018e-3_dp, & "") !! electron mag. mom. anomaly type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("electron mag. mom. to Bohr magneton ratio", & -real(-1.00115965218128d0,dp), real(0.00000000000018d0,dp), & +-1.00115965218128_dp, 0.00000000000018_dp, & "") !! electron mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("electron mag. mom. to nuclear magneton ratio", & -real(-1838.28197188d0,dp), real(0.00000011d0,dp), & +-1838.28197188_dp, 0.00000011_dp, & "") !! electron mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: ELECTRON_MASS = & codata_constant("electron mass", & -real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! electron mass type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & codata_constant("electron mass energy equivalent", & -real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! electron mass energy equivalent type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("electron mass energy equivalent in MeV", & -real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +0.51099895000_dp, 0.00000000015_dp, & "MeV") !! electron mass energy equivalent in MeV type(codata_constant), parameter, public :: ELECTRON_MASS_IN_U = & codata_constant("electron mass in u", & -real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +5.48579909065e-4_dp, 0.00000000016e-4_dp, & "u") !! electron mass in u type(codata_constant), parameter, public :: ELECTRON_MOLAR_MASS = & codata_constant("electron molar mass", & -real(5.4857990888d-7,dp), real(0.0000000017d-7,dp), & +5.4857990888e-7_dp, 0.0000000017e-7_dp, & "kg mol^-1") !! electron molar mass type(codata_constant), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & codata_constant("electron-muon mag. mom. ratio", & -real(206.7669883d0,dp), real(0.0000046d0,dp), & +206.7669883_dp, 0.0000046_dp, & "") !! electron-muon mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_MUON_MASS_RATIO = & codata_constant("electron-muon mass ratio", & -real(4.83633169d-3,dp), real(0.00000011d-3,dp), & +4.83633169e-3_dp, 0.00000011e-3_dp, & "") !! electron-muon mass ratio type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & codata_constant("electron-neutron mag. mom. ratio", & -real(960.92050d0,dp), real(0.00023d0,dp), & +960.92050_dp, 0.00023_dp, & "") !! electron-neutron mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & codata_constant("electron-neutron mass ratio", & -real(5.4386734424d-4,dp), real(0.0000000026d-4,dp), & +5.4386734424e-4_dp, 0.0000000026e-4_dp, & "") !! electron-neutron mass ratio type(codata_constant), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & codata_constant("electron-proton mag. mom. ratio", & -real(-658.21068789d0,dp), real(0.00000020d0,dp), & +-658.21068789_dp, 0.00000020_dp, & "") !! electron-proton mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & codata_constant("electron-proton mass ratio", & -real(5.44617021487d-4,dp), real(0.00000000033d-4,dp), & +5.44617021487e-4_dp, 0.00000000033e-4_dp, & "") !! electron-proton mass ratio type(codata_constant), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & codata_constant("electron relative atomic mass", & -real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +5.48579909065e-4_dp, 0.00000000016e-4_dp, & "") !! electron relative atomic mass type(codata_constant), parameter, public :: ELECTRON_TAU_MASS_RATIO = & codata_constant("electron-tau mass ratio", & -real(2.87585d-4,dp), real(0.00019d-4,dp), & +2.87585e-4_dp, 0.00019e-4_dp, & "") !! electron-tau mass ratio type(codata_constant), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & codata_constant("electron to alpha particle mass ratio", & -real(1.370933554787d-4,dp), real(0.000000000045d-4,dp), & +1.370933554787e-4_dp, 0.000000000045e-4_dp, & "") !! electron to alpha particle mass ratio type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & codata_constant("electron to shielded helion mag. mom. ratio", & -real(864.058257d0,dp), real(0.000010d0,dp), & +864.058257_dp, 0.000010_dp, & "") !! electron to shielded helion mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant("electron to shielded proton mag. mom. ratio", & -real(-658.2275971d0,dp), real(0.0000072d0,dp), & +-658.2275971_dp, 0.0000072_dp, & "") !! electron to shielded proton mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & codata_constant("electron-triton mass ratio", & -real(1.819200062251d-4,dp), real(0.000000000090d-4,dp), & +1.819200062251e-4_dp, 0.000000000090e-4_dp, & "") !! electron-triton mass ratio type(codata_constant), parameter, public :: ELECTRON_VOLT = & codata_constant("electron volt", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt type(codata_constant), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("electron volt-atomic mass unit relationship", & -real(1.07354410233d-9,dp), real(0.00000000032d-9,dp), & +1.07354410233e-9_dp, 0.00000000032e-9_dp, & "u") !! electron volt-atomic mass unit relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & codata_constant("electron volt-hartree relationship", & -real(3.6749322175655d-2,dp), real(0.0000000000071d-2,dp), & +3.6749322175655e-2_dp, 0.0000000000071e-2_dp, & "E_h") !! electron volt-hartree relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & codata_constant("electron volt-hertz relationship", & -real(2.417989242d14,dp), real(0.0d0,dp), & +2.417989242e14_dp, 0.0_dp, & "Hz") !! electron volt-hertz relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & codata_constant("electron volt-inverse meter relationship", & -real(8.065543937d5,dp), real(0.0d0,dp), & +8.065543937e5_dp, 0.0_dp, & "m^-1") !! electron volt-inverse meter relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & codata_constant("electron volt-joule relationship", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt-joule relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & codata_constant("electron volt-kelvin relationship", & -real(1.160451812d4,dp), real(0.0d0,dp), & +1.160451812e4_dp, 0.0_dp, & "K") !! electron volt-kelvin relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & codata_constant("electron volt-kilogram relationship", & -real(1.782661921d-36,dp), real(0.0d0,dp), & +1.782661921e-36_dp, 0.0_dp, & "kg") !! electron volt-kilogram relationship type(codata_constant), parameter, public :: ELEMENTARY_CHARGE = & codata_constant("elementary charge", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "C") !! elementary charge type(codata_constant), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & codata_constant("elementary charge over h-bar", & -real(1.519267447d15,dp), real(0.0d0,dp), & +1.519267447e15_dp, 0.0_dp, & "A J^-1") !! elementary charge over h-bar type(codata_constant), parameter, public :: FARADAY_CONSTANT = & codata_constant("Faraday constant", & -real(96485.33212d0,dp), real(0.0d0,dp), & +96485.33212_dp, 0.0_dp, & "C mol^-1") !! Faraday constant type(codata_constant), parameter, public :: FERMI_COUPLING_CONSTANT = & codata_constant("Fermi coupling constant", & -real(1.1663787d-5,dp), real(0.0000006d-5,dp), & +1.1663787e-5_dp, 0.0000006e-5_dp, & "GeV^-2") !! Fermi coupling constant type(codata_constant), parameter, public :: FINE_STRUCTURE_CONSTANT = & codata_constant("fine-structure constant", & -real(7.2973525693d-3,dp), real(0.0000000011d-3,dp), & +7.2973525693e-3_dp, 0.0000000011e-3_dp, & "") !! fine-structure constant type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT = & codata_constant("first radiation constant", & -real(3.741771852d-16,dp), real(0.0d0,dp), & +3.741771852e-16_dp, 0.0_dp, & "W m^2") !! first radiation constant type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & codata_constant("first radiation constant for spectral radiance", & -real(1.191042972d-16,dp), real(0.0d0,dp), & +1.191042972e-16_dp, 0.0_dp, & "W m^2 sr^-1") !! first radiation constant for spectral radiance type(codata_constant), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("hartree-atomic mass unit relationship", & -real(2.92126232205d-8,dp), real(0.00000000088d-8,dp), & +2.92126232205e-8_dp, 0.00000000088e-8_dp, & "u") !! hartree-atomic mass unit relationship type(codata_constant), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("hartree-electron volt relationship", & -real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +27.211386245988_dp, 0.000000000053_dp, & "eV") !! hartree-electron volt relationship type(codata_constant), parameter, public :: HARTREE_ENERGY = & codata_constant("Hartree energy", & -real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! Hartree energy type(codata_constant), parameter, public :: HARTREE_ENERGY_IN_EV = & codata_constant("Hartree energy in eV", & -real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +27.211386245988_dp, 0.000000000053_dp, & "eV") !! Hartree energy in eV type(codata_constant), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & codata_constant("hartree-hertz relationship", & -real(6.579683920502d15,dp), real(0.000000000013d15,dp), & +6.579683920502e15_dp, 0.000000000013e15_dp, & "Hz") !! hartree-hertz relationship type(codata_constant), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & codata_constant("hartree-inverse meter relationship", & -real(2.1947463136320d7,dp), real(0.0000000000043d7,dp), & +2.1947463136320e7_dp, 0.0000000000043e7_dp, & "m^-1") !! hartree-inverse meter relationship type(codata_constant), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & codata_constant("hartree-joule relationship", & -real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! hartree-joule relationship type(codata_constant), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & codata_constant("hartree-kelvin relationship", & -real(3.1577502480407d5,dp), real(0.0000000000061d5,dp), & +3.1577502480407e5_dp, 0.0000000000061e5_dp, & "K") !! hartree-kelvin relationship type(codata_constant), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & codata_constant("hartree-kilogram relationship", & -real(4.8508702095432d-35,dp), real(0.0000000000094d-35,dp), & +4.8508702095432e-35_dp, 0.0000000000094e-35_dp, & "kg") !! hartree-kilogram relationship type(codata_constant), parameter, public :: HELION_ELECTRON_MASS_RATIO = & codata_constant("helion-electron mass ratio", & -real(5495.88528007d0,dp), real(0.00000024d0,dp), & +5495.88528007_dp, 0.00000024_dp, & "") !! helion-electron mass ratio type(codata_constant), parameter, public :: HELION_G_FACTOR = & codata_constant("helion g factor", & -real(-4.255250615d0,dp), real(0.000000050d0,dp), & +-4.255250615_dp, 0.000000050_dp, & "") !! helion g factor type(codata_constant), parameter, public :: HELION_MAG_MOM = & codata_constant("helion mag. mom.", & -real(-1.074617532d-26,dp), real(0.000000013d-26,dp), & +-1.074617532e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! helion mag. mom. type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("helion mag. mom. to Bohr magneton ratio", & -real(-1.158740958d-3,dp), real(0.000000014d-3,dp), & +-1.158740958e-3_dp, 0.000000014e-3_dp, & "") !! helion mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("helion mag. mom. to nuclear magneton ratio", & -real(-2.127625307d0,dp), real(0.000000025d0,dp), & +-2.127625307_dp, 0.000000025_dp, & "") !! helion mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: HELION_MASS = & codata_constant("helion mass", & -real(5.0064127796d-27,dp), real(0.0000000015d-27,dp), & +5.0064127796e-27_dp, 0.0000000015e-27_dp, & "kg") !! helion mass type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & codata_constant("helion mass energy equivalent", & -real(4.4995394125d-10,dp), real(0.0000000014d-10,dp), & +4.4995394125e-10_dp, 0.0000000014e-10_dp, & "J") !! helion mass energy equivalent type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("helion mass energy equivalent in MeV", & -real(2808.39160743d0,dp), real(0.00000085d0,dp), & +2808.39160743_dp, 0.00000085_dp, & "MeV") !! helion mass energy equivalent in MeV type(codata_constant), parameter, public :: HELION_MASS_IN_U = & codata_constant("helion mass in u", & -real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +3.014932247175_dp, 0.000000000097_dp, & "u") !! helion mass in u type(codata_constant), parameter, public :: HELION_MOLAR_MASS = & codata_constant("helion molar mass", & -real(3.01493224613d-3,dp), real(0.00000000091d-3,dp), & +3.01493224613e-3_dp, 0.00000000091e-3_dp, & "kg mol^-1") !! helion molar mass type(codata_constant), parameter, public :: HELION_PROTON_MASS_RATIO = & codata_constant("helion-proton mass ratio", & -real(2.99315267167d0,dp), real(0.00000000013d0,dp), & +2.99315267167_dp, 0.00000000013_dp, & "") !! helion-proton mass ratio type(codata_constant), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & codata_constant("helion relative atomic mass", & -real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +3.014932247175_dp, 0.000000000097_dp, & "") !! helion relative atomic mass type(codata_constant), parameter, public :: HELION_SHIELDING_SHIFT = & codata_constant("helion shielding shift", & -real(5.996743d-5,dp), real(0.000010d-5,dp), & +5.996743e-5_dp, 0.000010e-5_dp, & "") !! helion shielding shift type(codata_constant), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("hertz-atomic mass unit relationship", & -real(4.4398216652d-24,dp), real(0.0000000013d-24,dp), & +4.4398216652e-24_dp, 0.0000000013e-24_dp, & "u") !! hertz-atomic mass unit relationship type(codata_constant), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("hertz-electron volt relationship", & -real(4.135667696d-15,dp), real(0.0d0,dp), & +4.135667696e-15_dp, 0.0_dp, & "eV") !! hertz-electron volt relationship type(codata_constant), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & codata_constant("hertz-hartree relationship", & -real(1.5198298460570d-16,dp), real(0.0000000000029d-16,dp), & +1.5198298460570e-16_dp, 0.0000000000029e-16_dp, & "E_h") !! hertz-hartree relationship type(codata_constant), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & codata_constant("hertz-inverse meter relationship", & -real(3.335640951d-9,dp), real(0.0d0,dp), & +3.335640951e-9_dp, 0.0_dp, & "m^-1") !! hertz-inverse meter relationship type(codata_constant), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & codata_constant("hertz-joule relationship", & -real(6.62607015d-34,dp), real(0.0d0,dp), & +6.62607015e-34_dp, 0.0_dp, & "J") !! hertz-joule relationship type(codata_constant), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & codata_constant("hertz-kelvin relationship", & -real(4.799243073d-11,dp), real(0.0d0,dp), & +4.799243073e-11_dp, 0.0_dp, & "K") !! hertz-kelvin relationship type(codata_constant), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & codata_constant("hertz-kilogram relationship", & -real(7.372497323d-51,dp), real(0.0d0,dp), & +7.372497323e-51_dp, 0.0_dp, & "kg") !! hertz-kilogram relationship type(codata_constant), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & codata_constant("hyperfine transition frequency of Cs-133", & -real(9192631770d0,dp), real(0.0d0,dp), & +9192631770_dp, 0.0_dp, & "Hz") !! hyperfine transition frequency of Cs-133 type(codata_constant), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & codata_constant("inverse fine-structure constant", & -real(137.035999084d0,dp), real(0.000000021d0,dp), & +137.035999084_dp, 0.000000021_dp, & "") !! inverse fine-structure constant type(codata_constant), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("inverse meter-atomic mass unit relationship", & -real(1.33102505010d-15,dp), real(0.00000000040d-15,dp), & +1.33102505010e-15_dp, 0.00000000040e-15_dp, & "u") !! inverse meter-atomic mass unit relationship type(codata_constant), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("inverse meter-electron volt relationship", & -real(1.239841984d-6,dp), real(0.0d0,dp), & +1.239841984e-6_dp, 0.0_dp, & "eV") !! inverse meter-electron volt relationship type(codata_constant), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & codata_constant("inverse meter-hartree relationship", & -real(4.5563352529120d-8,dp), real(0.0000000000088d-8,dp), & +4.5563352529120e-8_dp, 0.0000000000088e-8_dp, & "E_h") !! inverse meter-hartree relationship type(codata_constant), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & codata_constant("inverse meter-hertz relationship", & -real(299792458d0,dp), real(0.0d0,dp), & +299792458_dp, 0.0_dp, & "Hz") !! inverse meter-hertz relationship type(codata_constant), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & codata_constant("inverse meter-joule relationship", & -real(1.986445857d-25,dp), real(0.0d0,dp), & +1.986445857e-25_dp, 0.0_dp, & "J") !! inverse meter-joule relationship type(codata_constant), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & codata_constant("inverse meter-kelvin relationship", & -real(1.438776877d-2,dp), real(0.0d0,dp), & +1.438776877e-2_dp, 0.0_dp, & "K") !! inverse meter-kelvin relationship type(codata_constant), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & codata_constant("inverse meter-kilogram relationship", & -real(2.210219094d-42,dp), real(0.0d0,dp), & +2.210219094e-42_dp, 0.0_dp, & "kg") !! inverse meter-kilogram relationship type(codata_constant), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & codata_constant("inverse of conductance quantum", & -real(12906.40372d0,dp), real(0.0d0,dp), & +12906.40372_dp, 0.0_dp, & "ohm") !! inverse of conductance quantum type(codata_constant), parameter, public :: JOSEPHSON_CONSTANT = & codata_constant("Josephson constant", & -real(483597.8484d9,dp), real(0.0d0,dp), & +483597.8484e9_dp, 0.0_dp, & "Hz V^-1") !! Josephson constant type(codata_constant), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("joule-atomic mass unit relationship", & -real(6.7005352565d9,dp), real(0.0000000020d9,dp), & +6.7005352565e9_dp, 0.0000000020e9_dp, & "u") !! joule-atomic mass unit relationship type(codata_constant), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("joule-electron volt relationship", & -real(6.241509074d18,dp), real(0.0d0,dp), & +6.241509074e18_dp, 0.0_dp, & "eV") !! joule-electron volt relationship type(codata_constant), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & codata_constant("joule-hartree relationship", & -real(2.2937122783963d17,dp), real(0.0000000000045d17,dp), & +2.2937122783963e17_dp, 0.0000000000045e17_dp, & "E_h") !! joule-hartree relationship type(codata_constant), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & codata_constant("joule-hertz relationship", & -real(1.509190179d33,dp), real(0.0d0,dp), & +1.509190179e33_dp, 0.0_dp, & "Hz") !! joule-hertz relationship type(codata_constant), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & codata_constant("joule-inverse meter relationship", & -real(5.034116567d24,dp), real(0.0d0,dp), & +5.034116567e24_dp, 0.0_dp, & "m^-1") !! joule-inverse meter relationship type(codata_constant), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & codata_constant("joule-kelvin relationship", & -real(7.242970516d22,dp), real(0.0d0,dp), & +7.242970516e22_dp, 0.0_dp, & "K") !! joule-kelvin relationship type(codata_constant), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & codata_constant("joule-kilogram relationship", & -real(1.112650056d-17,dp), real(0.0d0,dp), & +1.112650056e-17_dp, 0.0_dp, & "kg") !! joule-kilogram relationship type(codata_constant), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("kelvin-atomic mass unit relationship", & -real(9.2510873014d-14,dp), real(0.0000000028d-14,dp), & +9.2510873014e-14_dp, 0.0000000028e-14_dp, & "u") !! kelvin-atomic mass unit relationship type(codata_constant), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("kelvin-electron volt relationship", & -real(8.617333262d-5,dp), real(0.0d0,dp), & +8.617333262e-5_dp, 0.0_dp, & "eV") !! kelvin-electron volt relationship type(codata_constant), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & codata_constant("kelvin-hartree relationship", & -real(3.1668115634556d-6,dp), real(0.0000000000061d-6,dp), & +3.1668115634556e-6_dp, 0.0000000000061e-6_dp, & "E_h") !! kelvin-hartree relationship type(codata_constant), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & codata_constant("kelvin-hertz relationship", & -real(2.083661912d10,dp), real(0.0d0,dp), & +2.083661912e10_dp, 0.0_dp, & "Hz") !! kelvin-hertz relationship type(codata_constant), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & codata_constant("kelvin-inverse meter relationship", & -real(69.50348004d0,dp), real(0.0d0,dp), & +69.50348004_dp, 0.0_dp, & "m^-1") !! kelvin-inverse meter relationship type(codata_constant), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & codata_constant("kelvin-joule relationship", & -real(1.380649d-23,dp), real(0.0d0,dp), & +1.380649e-23_dp, 0.0_dp, & "J") !! kelvin-joule relationship type(codata_constant), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & codata_constant("kelvin-kilogram relationship", & -real(1.536179187d-40,dp), real(0.0d0,dp), & +1.536179187e-40_dp, 0.0_dp, & "kg") !! kelvin-kilogram relationship type(codata_constant), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("kilogram-atomic mass unit relationship", & -real(6.0221407621d26,dp), real(0.0000000018d26,dp), & +6.0221407621e26_dp, 0.0000000018e26_dp, & "u") !! kilogram-atomic mass unit relationship type(codata_constant), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("kilogram-electron volt relationship", & -real(5.609588603d35,dp), real(0.0d0,dp), & +5.609588603e35_dp, 0.0_dp, & "eV") !! kilogram-electron volt relationship type(codata_constant), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & codata_constant("kilogram-hartree relationship", & -real(2.0614857887409d34,dp), real(0.0000000000040d34,dp), & +2.0614857887409e34_dp, 0.0000000000040e34_dp, & "E_h") !! kilogram-hartree relationship type(codata_constant), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & codata_constant("kilogram-hertz relationship", & -real(1.356392489d50,dp), real(0.0d0,dp), & +1.356392489e50_dp, 0.0_dp, & "Hz") !! kilogram-hertz relationship type(codata_constant), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & codata_constant("kilogram-inverse meter relationship", & -real(4.524438335d41,dp), real(0.0d0,dp), & +4.524438335e41_dp, 0.0_dp, & "m^-1") !! kilogram-inverse meter relationship type(codata_constant), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & codata_constant("kilogram-joule relationship", & -real(8.987551787d16,dp), real(0.0d0,dp), & +8.987551787e16_dp, 0.0_dp, & "J") !! kilogram-joule relationship type(codata_constant), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & codata_constant("kilogram-kelvin relationship", & -real(6.509657260d39,dp), real(0.0d0,dp), & +6.509657260e39_dp, 0.0_dp, & "K") !! kilogram-kelvin relationship type(codata_constant), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & codata_constant("lattice parameter of silicon", & -real(5.431020511d-10,dp), real(0.000000089d-10,dp), & +5.431020511e-10_dp, 0.000000089e-10_dp, & "m") !! lattice parameter of silicon type(codata_constant), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & codata_constant("lattice spacing of ideal Si (220)", & -real(1.920155716d-10,dp), real(0.000000032d-10,dp), & +1.920155716e-10_dp, 0.000000032e-10_dp, & "m") !! lattice spacing of ideal Si (220) type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & codata_constant("Loschmidt constant (273.15 K, 100 kPa)", & -real(2.651645804d25,dp), real(0.0d0,dp), & +2.651645804e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 100 kPa) type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & codata_constant("Loschmidt constant (273.15 K, 101.325 kPa)", & -real(2.686780111d25,dp), real(0.0d0,dp), & +2.686780111e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) type(codata_constant), parameter, public :: LUMINOUS_EFFICACY = & codata_constant("luminous efficacy", & -real(683d0,dp), real(0.0d0,dp), & +683_dp, 0.0_dp, & "lm W^-1") !! luminous efficacy type(codata_constant), parameter, public :: MAG_FLUX_QUANTUM = & codata_constant("mag. flux quantum", & -real(2.067833848d-15,dp), real(0.0d0,dp), & +2.067833848e-15_dp, 0.0_dp, & "Wb") !! mag. flux quantum type(codata_constant), parameter, public :: MOLAR_GAS_CONSTANT = & codata_constant("molar gas constant", & -real(8.314462618d0,dp), real(0.0d0,dp), & +8.314462618_dp, 0.0_dp, & "J mol^-1 K^-1") !! molar gas constant type(codata_constant), parameter, public :: MOLAR_MASS_CONSTANT = & codata_constant("molar mass constant", & -real(0.99999999965d-3,dp), real(0.00000000030d-3,dp), & +0.99999999965e-3_dp, 0.00000000030e-3_dp, & "kg mol^-1") !! molar mass constant type(codata_constant), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & codata_constant("molar mass of carbon-12", & -real(11.9999999958d-3,dp), real(0.0000000036d-3,dp), & +11.9999999958e-3_dp, 0.0000000036e-3_dp, & "kg mol^-1") !! molar mass of carbon-12 type(codata_constant), parameter, public :: MOLAR_PLANCK_CONSTANT = & codata_constant("molar Planck constant", & -real(3.990312712d-10,dp), real(0.0d0,dp), & +3.990312712e-10_dp, 0.0_dp, & "J Hz^-1 mol^-1") !! molar Planck constant type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & codata_constant("molar volume of ideal gas (273.15 K, 100 kPa)", & -real(22.71095464d-3,dp), real(0.0d0,dp), & +22.71095464e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & codata_constant("molar volume of ideal gas (273.15 K, 101.325 kPa)", & -real(22.41396954d-3,dp), real(0.0d0,dp), & +22.41396954e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_SILICON = & codata_constant("molar volume of silicon", & -real(1.205883199d-5,dp), real(0.000000060d-5,dp), & +1.205883199e-5_dp, 0.000000060e-5_dp, & "m^3 mol^-1") !! molar volume of silicon type(codata_constant), parameter, public :: MOLYBDENUM_X_UNIT = & codata_constant("Molybdenum x unit", & -real(1.00209952d-13,dp), real(0.00000053d-13,dp), & +1.00209952e-13_dp, 0.00000053e-13_dp, & "m") !! Molybdenum x unit type(codata_constant), parameter, public :: MUON_COMPTON_WAVELENGTH = & codata_constant("muon Compton wavelength", & -real(1.173444110d-14,dp), real(0.000000026d-14,dp), & +1.173444110e-14_dp, 0.000000026e-14_dp, & "m") !! muon Compton wavelength type(codata_constant), parameter, public :: MUON_ELECTRON_MASS_RATIO = & codata_constant("muon-electron mass ratio", & -real(206.7682830d0,dp), real(0.0000046d0,dp), & +206.7682830_dp, 0.0000046_dp, & "") !! muon-electron mass ratio type(codata_constant), parameter, public :: MUON_G_FACTOR = & codata_constant("muon g factor", & -real(-2.0023318418d0,dp), real(0.0000000013d0,dp), & +-2.0023318418_dp, 0.0000000013_dp, & "") !! muon g factor type(codata_constant), parameter, public :: MUON_MAG_MOM = & codata_constant("muon mag. mom.", & -real(-4.49044830d-26,dp), real(0.00000010d-26,dp), & +-4.49044830e-26_dp, 0.00000010e-26_dp, & "J T^-1") !! muon mag. mom. type(codata_constant), parameter, public :: MUON_MAG_MOM_ANOMALY = & codata_constant("muon mag. mom. anomaly", & -real(1.16592089d-3,dp), real(0.00000063d-3,dp), & +1.16592089e-3_dp, 0.00000063e-3_dp, & "") !! muon mag. mom. anomaly type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("muon mag. mom. to Bohr magneton ratio", & -real(-4.84197047d-3,dp), real(0.00000011d-3,dp), & +-4.84197047e-3_dp, 0.00000011e-3_dp, & "") !! muon mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("muon mag. mom. to nuclear magneton ratio", & -real(-8.89059703d0,dp), real(0.00000020d0,dp), & +-8.89059703_dp, 0.00000020_dp, & "") !! muon mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: MUON_MASS = & codata_constant("muon mass", & -real(1.883531627d-28,dp), real(0.000000042d-28,dp), & +1.883531627e-28_dp, 0.000000042e-28_dp, & "kg") !! muon mass type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & codata_constant("muon mass energy equivalent", & -real(1.692833804d-11,dp), real(0.000000038d-11,dp), & +1.692833804e-11_dp, 0.000000038e-11_dp, & "J") !! muon mass energy equivalent type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("muon mass energy equivalent in MeV", & -real(105.6583755d0,dp), real(0.0000023d0,dp), & +105.6583755_dp, 0.0000023_dp, & "MeV") !! muon mass energy equivalent in MeV type(codata_constant), parameter, public :: MUON_MASS_IN_U = & codata_constant("muon mass in u", & -real(0.1134289259d0,dp), real(0.0000000025d0,dp), & +0.1134289259_dp, 0.0000000025_dp, & "u") !! muon mass in u type(codata_constant), parameter, public :: MUON_MOLAR_MASS = & codata_constant("muon molar mass", & -real(1.134289259d-4,dp), real(0.000000025d-4,dp), & +1.134289259e-4_dp, 0.000000025e-4_dp, & "kg mol^-1") !! muon molar mass type(codata_constant), parameter, public :: MUON_NEUTRON_MASS_RATIO = & codata_constant("muon-neutron mass ratio", & -real(0.1124545170d0,dp), real(0.0000000025d0,dp), & +0.1124545170_dp, 0.0000000025_dp, & "") !! muon-neutron mass ratio type(codata_constant), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & codata_constant("muon-proton mag. mom. ratio", & -real(-3.183345142d0,dp), real(0.000000071d0,dp), & +-3.183345142_dp, 0.000000071_dp, & "") !! muon-proton mag. mom. ratio type(codata_constant), parameter, public :: MUON_PROTON_MASS_RATIO = & codata_constant("muon-proton mass ratio", & -real(0.1126095264d0,dp), real(0.0000000025d0,dp), & +0.1126095264_dp, 0.0000000025_dp, & "") !! muon-proton mass ratio type(codata_constant), parameter, public :: MUON_TAU_MASS_RATIO = & codata_constant("muon-tau mass ratio", & -real(5.94635d-2,dp), real(0.00040d-2,dp), & +5.94635e-2_dp, 0.00040e-2_dp, & "") !! muon-tau mass ratio type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION = & codata_constant("natural unit of action", & -real(1.054571817d-34,dp), real(0.0d0,dp), & +1.054571817e-34_dp, 0.0_dp, & "J s") !! natural unit of action type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & codata_constant("natural unit of action in eV s", & -real(6.582119569d-16,dp), real(0.0d0,dp), & +6.582119569e-16_dp, 0.0_dp, & "eV s") !! natural unit of action in eV s type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY = & codata_constant("natural unit of energy", & -real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! natural unit of energy type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & codata_constant("natural unit of energy in MeV", & -real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +0.51099895000_dp, 0.00000000015_dp, & "MeV") !! natural unit of energy in MeV type(codata_constant), parameter, public :: NATURAL_UNIT_OF_LENGTH = & codata_constant("natural unit of length", & -real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! natural unit of length type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MASS = & codata_constant("natural unit of mass", & -real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! natural unit of mass type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & codata_constant("natural unit of momentum", & -real(2.73092453075d-22,dp), real(0.00000000082d-22,dp), & +2.73092453075e-22_dp, 0.00000000082e-22_dp, & "kg m s^-1") !! natural unit of momentum type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & codata_constant("natural unit of momentum in MeV/c", & -real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +0.51099895000_dp, 0.00000000015_dp, & "MeV/c") !! natural unit of momentum in MeV/c type(codata_constant), parameter, public :: NATURAL_UNIT_OF_TIME = & codata_constant("natural unit of time", & -real(1.28808866819d-21,dp), real(0.00000000039d-21,dp), & +1.28808866819e-21_dp, 0.00000000039e-21_dp, & "s") !! natural unit of time type(codata_constant), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & codata_constant("natural unit of velocity", & -real(299792458d0,dp), real(0.0d0,dp), & +299792458_dp, 0.0_dp, & "m s^-1") !! natural unit of velocity type(codata_constant), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & codata_constant("neutron Compton wavelength", & -real(1.31959090581d-15,dp), real(0.00000000075d-15,dp), & +1.31959090581e-15_dp, 0.00000000075e-15_dp, & "m") !! neutron Compton wavelength type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & codata_constant("neutron-electron mag. mom. ratio", & -real(1.04066882d-3,dp), real(0.00000025d-3,dp), & +1.04066882e-3_dp, 0.00000025e-3_dp, & "") !! neutron-electron mag. mom. ratio type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & codata_constant("neutron-electron mass ratio", & -real(1838.68366173d0,dp), real(0.00000089d0,dp), & +1838.68366173_dp, 0.00000089_dp, & "") !! neutron-electron mass ratio type(codata_constant), parameter, public :: NEUTRON_G_FACTOR = & codata_constant("neutron g factor", & -real(-3.82608545d0,dp), real(0.00000090d0,dp), & +-3.82608545_dp, 0.00000090_dp, & "") !! neutron g factor type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO = & codata_constant("neutron gyromag. ratio", & -real(1.83247171d8,dp), real(0.00000043d8,dp), & +1.83247171e8_dp, 0.00000043e8_dp, & "s^-1 T^-1") !! neutron gyromag. ratio type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("neutron gyromag. ratio in MHz/T", & -real(29.1646931d0,dp), real(0.0000069d0,dp), & +29.1646931_dp, 0.0000069_dp, & "MHz T^-1") !! neutron gyromag. ratio in MHz/T type(codata_constant), parameter, public :: NEUTRON_MAG_MOM = & codata_constant("neutron mag. mom.", & -real(-9.6623651d-27,dp), real(0.0000023d-27,dp), & +-9.6623651e-27_dp, 0.0000023e-27_dp, & "J T^-1") !! neutron mag. mom. type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("neutron mag. mom. to Bohr magneton ratio", & -real(-1.04187563d-3,dp), real(0.00000025d-3,dp), & +-1.04187563e-3_dp, 0.00000025e-3_dp, & "") !! neutron mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("neutron mag. mom. to nuclear magneton ratio", & -real(-1.91304273d0,dp), real(0.00000045d0,dp), & +-1.91304273_dp, 0.00000045_dp, & "") !! neutron mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: NEUTRON_MASS = & codata_constant("neutron mass", & -real(1.67492749804d-27,dp), real(0.00000000095d-27,dp), & +1.67492749804e-27_dp, 0.00000000095e-27_dp, & "kg") !! neutron mass type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & codata_constant("neutron mass energy equivalent", & -real(1.50534976287d-10,dp), real(0.00000000086d-10,dp), & +1.50534976287e-10_dp, 0.00000000086e-10_dp, & "J") !! neutron mass energy equivalent type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("neutron mass energy equivalent in MeV", & -real(939.56542052d0,dp), real(0.00000054d0,dp), & +939.56542052_dp, 0.00000054_dp, & "MeV") !! neutron mass energy equivalent in MeV type(codata_constant), parameter, public :: NEUTRON_MASS_IN_U = & codata_constant("neutron mass in u", & -real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +1.00866491595_dp, 0.00000000049_dp, & "u") !! neutron mass in u type(codata_constant), parameter, public :: NEUTRON_MOLAR_MASS = & codata_constant("neutron molar mass", & -real(1.00866491560d-3,dp), real(0.00000000057d-3,dp), & +1.00866491560e-3_dp, 0.00000000057e-3_dp, & "kg mol^-1") !! neutron molar mass type(codata_constant), parameter, public :: NEUTRON_MUON_MASS_RATIO = & codata_constant("neutron-muon mass ratio", & -real(8.89248406d0,dp), real(0.00000020d0,dp), & +8.89248406_dp, 0.00000020_dp, & "") !! neutron-muon mass ratio type(codata_constant), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & codata_constant("neutron-proton mag. mom. ratio", & -real(-0.68497934d0,dp), real(0.00000016d0,dp), & +-0.68497934_dp, 0.00000016_dp, & "") !! neutron-proton mag. mom. ratio type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & codata_constant("neutron-proton mass difference", & -real(2.30557435d-30,dp), real(0.00000082d-30,dp), & +2.30557435e-30_dp, 0.00000082e-30_dp, & "kg") !! neutron-proton mass difference type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & codata_constant("neutron-proton mass difference energy equivalent", & -real(2.07214689d-13,dp), real(0.00000074d-13,dp), & +2.07214689e-13_dp, 0.00000074e-13_dp, & "J") !! neutron-proton mass difference energy equivalent type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("neutron-proton mass difference energy equivalent in MeV", & -real(1.29333236d0,dp), real(0.00000046d0,dp), & +1.29333236_dp, 0.00000046_dp, & "MeV") !! neutron-proton mass difference energy equivalent in MeV type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & codata_constant("neutron-proton mass difference in u", & -real(1.38844933d-3,dp), real(0.00000049d-3,dp), & +1.38844933e-3_dp, 0.00000049e-3_dp, & "u") !! neutron-proton mass difference in u type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & codata_constant("neutron-proton mass ratio", & -real(1.00137841931d0,dp), real(0.00000000049d0,dp), & +1.00137841931_dp, 0.00000000049_dp, & "") !! neutron-proton mass ratio type(codata_constant), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & codata_constant("neutron relative atomic mass", & -real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +1.00866491595_dp, 0.00000000049_dp, & "") !! neutron relative atomic mass type(codata_constant), parameter, public :: NEUTRON_TAU_MASS_RATIO = & codata_constant("neutron-tau mass ratio", & -real(0.528779d0,dp), real(0.000036d0,dp), & +0.528779_dp, 0.000036_dp, & "") !! neutron-tau mass ratio type(codata_constant), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant("neutron to shielded proton mag. mom. ratio", & -real(-0.68499694d0,dp), real(0.00000016d0,dp), & +-0.68499694_dp, 0.00000016_dp, & "") !! neutron to shielded proton mag. mom. ratio type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & codata_constant("Newtonian constant of gravitation", & -real(6.67430d-11,dp), real(0.00015d-11,dp), & +6.67430e-11_dp, 0.00015e-11_dp, & "m^3 kg^-1 s^-2") !! Newtonian constant of gravitation type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & codata_constant("Newtonian constant of gravitation over h-bar c", & -real(6.70883d-39,dp), real(0.00015d-39,dp), & +6.70883e-39_dp, 0.00015e-39_dp, & "(GeV/c^2)^-2") !! Newtonian constant of gravitation over h-bar c type(codata_constant), parameter, public :: NUCLEAR_MAGNETON = & codata_constant("nuclear magneton", & -real(5.0507837461d-27,dp), real(0.0000000015d-27,dp), & +5.0507837461e-27_dp, 0.0000000015e-27_dp, & "J T^-1") !! nuclear magneton type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & codata_constant("nuclear magneton in eV/T", & -real(3.15245125844d-8,dp), real(0.00000000096d-8,dp), & +3.15245125844e-8_dp, 0.00000000096e-8_dp, & "eV T^-1") !! nuclear magneton in eV/T type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant("nuclear magneton in inverse meter per tesla", & -real(2.54262341353d-2,dp), real(0.00000000078d-2,dp), & +2.54262341353e-2_dp, 0.00000000078e-2_dp, & "m^-1 T^-1") !! nuclear magneton in inverse meter per tesla type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & codata_constant("nuclear magneton in K/T", & -real(3.6582677756d-4,dp), real(0.0000000011d-4,dp), & +3.6582677756e-4_dp, 0.0000000011e-4_dp, & "K T^-1") !! nuclear magneton in K/T type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & codata_constant("nuclear magneton in MHz/T", & -real(7.6225932291d0,dp), real(0.0000000023d0,dp), & +7.6225932291_dp, 0.0000000023_dp, & "MHz T^-1") !! nuclear magneton in MHz/T type(codata_constant), parameter, public :: PLANCK_CONSTANT = & codata_constant("Planck constant", & -real(6.62607015d-34,dp), real(0.0d0,dp), & +6.62607015e-34_dp, 0.0_dp, & "J Hz^-1") !! Planck constant type(codata_constant), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & codata_constant("Planck constant in eV/Hz", & -real(4.135667696d-15,dp), real(0.0d0,dp), & +4.135667696e-15_dp, 0.0_dp, & "eV Hz^-1") !! Planck constant in eV/Hz type(codata_constant), parameter, public :: PLANCK_LENGTH = & codata_constant("Planck length", & -real(1.616255d-35,dp), real(0.000018d-35,dp), & +1.616255e-35_dp, 0.000018e-35_dp, & "m") !! Planck length type(codata_constant), parameter, public :: PLANCK_MASS = & codata_constant("Planck mass", & -real(2.176434d-8,dp), real(0.000024d-8,dp), & +2.176434e-8_dp, 0.000024e-8_dp, & "kg") !! Planck mass type(codata_constant), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & codata_constant("Planck mass energy equivalent in GeV", & -real(1.220890d19,dp), real(0.000014d19,dp), & +1.220890e19_dp, 0.000014e19_dp, & "GeV") !! Planck mass energy equivalent in GeV type(codata_constant), parameter, public :: PLANCK_TEMPERATURE = & codata_constant("Planck temperature", & -real(1.416784d32,dp), real(0.000016d32,dp), & +1.416784e32_dp, 0.000016e32_dp, & "K") !! Planck temperature type(codata_constant), parameter, public :: PLANCK_TIME = & codata_constant("Planck time", & -real(5.391247d-44,dp), real(0.000060d-44,dp), & +5.391247e-44_dp, 0.000060e-44_dp, & "s") !! Planck time type(codata_constant), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & codata_constant("proton charge to mass quotient", & -real(9.5788331560d7,dp), real(0.0000000029d7,dp), & +9.5788331560e7_dp, 0.0000000029e7_dp, & "C kg^-1") !! proton charge to mass quotient type(codata_constant), parameter, public :: PROTON_COMPTON_WAVELENGTH = & codata_constant("proton Compton wavelength", & -real(1.32140985539d-15,dp), real(0.00000000040d-15,dp), & +1.32140985539e-15_dp, 0.00000000040e-15_dp, & "m") !! proton Compton wavelength type(codata_constant), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & codata_constant("proton-electron mass ratio", & -real(1836.15267343d0,dp), real(0.00000011d0,dp), & +1836.15267343_dp, 0.00000011_dp, & "") !! proton-electron mass ratio type(codata_constant), parameter, public :: PROTON_G_FACTOR = & codata_constant("proton g factor", & -real(5.5856946893d0,dp), real(0.0000000016d0,dp), & +5.5856946893_dp, 0.0000000016_dp, & "") !! proton g factor type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO = & codata_constant("proton gyromag. ratio", & -real(2.6752218744d8,dp), real(0.0000000011d8,dp), & +2.6752218744e8_dp, 0.0000000011e8_dp, & "s^-1 T^-1") !! proton gyromag. ratio type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("proton gyromag. ratio in MHz/T", & -real(42.577478518d0,dp), real(0.000000018d0,dp), & +42.577478518_dp, 0.000000018_dp, & "MHz T^-1") !! proton gyromag. ratio in MHz/T type(codata_constant), parameter, public :: PROTON_MAG_MOM = & codata_constant("proton mag. mom.", & -real(1.41060679736d-26,dp), real(0.00000000060d-26,dp), & +1.41060679736e-26_dp, 0.00000000060e-26_dp, & "J T^-1") !! proton mag. mom. type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("proton mag. mom. to Bohr magneton ratio", & -real(1.52103220230d-3,dp), real(0.00000000046d-3,dp), & +1.52103220230e-3_dp, 0.00000000046e-3_dp, & "") !! proton mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("proton mag. mom. to nuclear magneton ratio", & -real(2.79284734463d0,dp), real(0.00000000082d0,dp), & +2.79284734463_dp, 0.00000000082_dp, & "") !! proton mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & codata_constant("proton mag. shielding correction", & -real(2.5689d-5,dp), real(0.0011d-5,dp), & +2.5689e-5_dp, 0.0011e-5_dp, & "") !! proton mag. shielding correction type(codata_constant), parameter, public :: PROTON_MASS = & codata_constant("proton mass", & -real(1.67262192369d-27,dp), real(0.00000000051d-27,dp), & +1.67262192369e-27_dp, 0.00000000051e-27_dp, & "kg") !! proton mass type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & codata_constant("proton mass energy equivalent", & -real(1.50327761598d-10,dp), real(0.00000000046d-10,dp), & +1.50327761598e-10_dp, 0.00000000046e-10_dp, & "J") !! proton mass energy equivalent type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("proton mass energy equivalent in MeV", & -real(938.27208816d0,dp), real(0.00000029d0,dp), & +938.27208816_dp, 0.00000029_dp, & "MeV") !! proton mass energy equivalent in MeV type(codata_constant), parameter, public :: PROTON_MASS_IN_U = & codata_constant("proton mass in u", & -real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +1.007276466621_dp, 0.000000000053_dp, & "u") !! proton mass in u type(codata_constant), parameter, public :: PROTON_MOLAR_MASS = & codata_constant("proton molar mass", & -real(1.00727646627d-3,dp), real(0.00000000031d-3,dp), & +1.00727646627e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! proton molar mass type(codata_constant), parameter, public :: PROTON_MUON_MASS_RATIO = & codata_constant("proton-muon mass ratio", & -real(8.88024337d0,dp), real(0.00000020d0,dp), & +8.88024337_dp, 0.00000020_dp, & "") !! proton-muon mass ratio type(codata_constant), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & codata_constant("proton-neutron mag. mom. ratio", & -real(-1.45989805d0,dp), real(0.00000034d0,dp), & +-1.45989805_dp, 0.00000034_dp, & "") !! proton-neutron mag. mom. ratio type(codata_constant), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & codata_constant("proton-neutron mass ratio", & -real(0.99862347812d0,dp), real(0.00000000049d0,dp), & +0.99862347812_dp, 0.00000000049_dp, & "") !! proton-neutron mass ratio type(codata_constant), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & codata_constant("proton relative atomic mass", & -real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +1.007276466621_dp, 0.000000000053_dp, & "") !! proton relative atomic mass type(codata_constant), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & codata_constant("proton rms charge radius", & -real(8.414d-16,dp), real(0.019d-16,dp), & +8.414e-16_dp, 0.019e-16_dp, & "m") !! proton rms charge radius type(codata_constant), parameter, public :: PROTON_TAU_MASS_RATIO = & codata_constant("proton-tau mass ratio", & -real(0.528051d0,dp), real(0.000036d0,dp), & +0.528051_dp, 0.000036_dp, & "") !! proton-tau mass ratio type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION = & codata_constant("quantum of circulation", & -real(3.6369475516d-4,dp), real(0.0000000011d-4,dp), & +3.6369475516e-4_dp, 0.0000000011e-4_dp, & "m^2 s^-1") !! quantum of circulation type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & codata_constant("quantum of circulation times 2", & -real(7.2738951032d-4,dp), real(0.0000000022d-4,dp), & +7.2738951032e-4_dp, 0.0000000022e-4_dp, & "m^2 s^-1") !! quantum of circulation times 2 type(codata_constant), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & codata_constant("reduced Compton wavelength", & -real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! reduced Compton wavelength type(codata_constant), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & codata_constant("reduced muon Compton wavelength", & -real(1.867594306d-15,dp), real(0.000000042d-15,dp), & +1.867594306e-15_dp, 0.000000042e-15_dp, & "m") !! reduced muon Compton wavelength type(codata_constant), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & codata_constant("reduced neutron Compton wavelength", & -real(2.1001941552d-16,dp), real(0.0000000012d-16,dp), & +2.1001941552e-16_dp, 0.0000000012e-16_dp, & "m") !! reduced neutron Compton wavelength type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT = & codata_constant("reduced Planck constant", & -real(1.054571817d-34,dp), real(0.0d0,dp), & +1.054571817e-34_dp, 0.0_dp, & "J s") !! reduced Planck constant type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & codata_constant("reduced Planck constant in eV s", & -real(6.582119569d-16,dp), real(0.0d0,dp), & +6.582119569e-16_dp, 0.0_dp, & "eV s") !! reduced Planck constant in eV s type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & codata_constant("reduced Planck constant times c in MeV fm", & -real(197.3269804d0,dp), real(0.0d0,dp), & +197.3269804_dp, 0.0_dp, & "MeV fm") !! reduced Planck constant times c in MeV fm type(codata_constant), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & codata_constant("reduced proton Compton wavelength", & -real(2.10308910336d-16,dp), real(0.00000000064d-16,dp), & +2.10308910336e-16_dp, 0.00000000064e-16_dp, & "m") !! reduced proton Compton wavelength type(codata_constant), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & codata_constant("reduced tau Compton wavelength", & -real(1.110538d-16,dp), real(0.000075d-16,dp), & +1.110538e-16_dp, 0.000075e-16_dp, & "m") !! reduced tau Compton wavelength type(codata_constant), parameter, public :: RYDBERG_CONSTANT = & codata_constant("Rydberg constant", & -real(10973731.568160d0,dp), real(0.000021d0,dp), & +10973731.568160_dp, 0.000021_dp, & "m^-1") !! Rydberg constant type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & codata_constant("Rydberg constant times c in Hz", & -real(3.2898419602508d15,dp), real(0.0000000000064d15,dp), & +3.2898419602508e15_dp, 0.0000000000064e15_dp, & "Hz") !! Rydberg constant times c in Hz type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & codata_constant("Rydberg constant times hc in eV", & -real(13.605693122994d0,dp), real(0.000000000026d0,dp), & +13.605693122994_dp, 0.000000000026_dp, & "eV") !! Rydberg constant times hc in eV type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & codata_constant("Rydberg constant times hc in J", & -real(2.1798723611035d-18,dp), real(0.0000000000042d-18,dp), & +2.1798723611035e-18_dp, 0.0000000000042e-18_dp, & "J") !! Rydberg constant times hc in J type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & codata_constant("Sackur-Tetrode constant (1 K, 100 kPa)", & -real(-1.15170753706d0,dp), real(0.00000000045d0,dp), & +-1.15170753706_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & codata_constant("Sackur-Tetrode constant (1 K, 101.325 kPa)", & -real(-1.16487052358d0,dp), real(0.00000000045d0,dp), & +-1.16487052358_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) type(codata_constant), parameter, public :: SECOND_RADIATION_CONSTANT = & codata_constant("second radiation constant", & -real(1.438776877d-2,dp), real(0.0d0,dp), & +1.438776877e-2_dp, 0.0_dp, & "m K") !! second radiation constant type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & codata_constant("shielded helion gyromag. ratio", & -real(2.037894569d8,dp), real(0.000000024d8,dp), & +2.037894569e8_dp, 0.000000024e8_dp, & "s^-1 T^-1") !! shielded helion gyromag. ratio type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("shielded helion gyromag. ratio in MHz/T", & -real(32.43409942d0,dp), real(0.00000038d0,dp), & +32.43409942_dp, 0.00000038_dp, & "MHz T^-1") !! shielded helion gyromag. ratio in MHz/T type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM = & codata_constant("shielded helion mag. mom.", & -real(-1.074553090d-26,dp), real(0.000000013d-26,dp), & +-1.074553090e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! shielded helion mag. mom. type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("shielded helion mag. mom. to Bohr magneton ratio", & -real(-1.158671471d-3,dp), real(0.000000014d-3,dp), & +-1.158671471e-3_dp, 0.000000014e-3_dp, & "") !! shielded helion mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("shielded helion mag. mom. to nuclear magneton ratio", & -real(-2.127497719d0,dp), real(0.000000025d0,dp), & +-2.127497719_dp, 0.000000025_dp, & "") !! shielded helion mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & codata_constant("shielded helion to proton mag. mom. ratio", & -real(-0.7617665618d0,dp), real(0.0000000089d0,dp), & +-0.7617665618_dp, 0.0000000089_dp, & "") !! shielded helion to proton mag. mom. ratio type(codata_constant), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant("shielded helion to shielded proton mag. mom. ratio", & -real(-0.7617861313d0,dp), real(0.0000000033d0,dp), & +-0.7617861313_dp, 0.0000000033_dp, & "") !! shielded helion to shielded proton mag. mom. ratio type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & codata_constant("shielded proton gyromag. ratio", & -real(2.675153151d8,dp), real(0.000000029d8,dp), & +2.675153151e8_dp, 0.000000029e8_dp, & "s^-1 T^-1") !! shielded proton gyromag. ratio type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("shielded proton gyromag. ratio in MHz/T", & -real(42.57638474d0,dp), real(0.00000046d0,dp), & +42.57638474_dp, 0.00000046_dp, & "MHz T^-1") !! shielded proton gyromag. ratio in MHz/T type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM = & codata_constant("shielded proton mag. mom.", & -real(1.410570560d-26,dp), real(0.000000015d-26,dp), & +1.410570560e-26_dp, 0.000000015e-26_dp, & "J T^-1") !! shielded proton mag. mom. type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("shielded proton mag. mom. to Bohr magneton ratio", & -real(1.520993128d-3,dp), real(0.000000017d-3,dp), & +1.520993128e-3_dp, 0.000000017e-3_dp, & "") !! shielded proton mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("shielded proton mag. mom. to nuclear magneton ratio", & -real(2.792775599d0,dp), real(0.000000030d0,dp), & +2.792775599_dp, 0.000000030_dp, & "") !! shielded proton mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & codata_constant("shielding difference of d and p in HD", & -real(2.0200d-8,dp), real(0.0020d-8,dp), & +2.0200e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of d and p in HD type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & codata_constant("shielding difference of t and p in HT", & -real(2.4140d-8,dp), real(0.0020d-8,dp), & +2.4140e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of t and p in HT type(codata_constant), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & codata_constant("speed of light in vacuum", & -real(299792458d0,dp), real(0.0d0,dp), & +299792458_dp, 0.0_dp, & "m s^-1") !! speed of light in vacuum type(codata_constant), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & codata_constant("standard acceleration of gravity", & -real(9.80665d0,dp), real(0.0d0,dp), & +9.80665_dp, 0.0_dp, & "m s^-2") !! standard acceleration of gravity type(codata_constant), parameter, public :: STANDARD_ATMOSPHERE = & codata_constant("standard atmosphere", & -real(101325d0,dp), real(0.0d0,dp), & +101325_dp, 0.0_dp, & "Pa") !! standard atmosphere type(codata_constant), parameter, public :: STANDARD_STATE_PRESSURE = & codata_constant("standard-state pressure", & -real(100000d0,dp), real(0.0d0,dp), & +100000_dp, 0.0_dp, & "Pa") !! standard-state pressure type(codata_constant), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & codata_constant("Stefan-Boltzmann constant", & -real(5.670374419d-8,dp), real(0.0d0,dp), & +5.670374419e-8_dp, 0.0_dp, & "W m^-2 K^-4") !! Stefan-Boltzmann constant type(codata_constant), parameter, public :: TAU_COMPTON_WAVELENGTH = & codata_constant("tau Compton wavelength", & -real(6.97771d-16,dp), real(0.00047d-16,dp), & +6.97771e-16_dp, 0.00047e-16_dp, & "m") !! tau Compton wavelength type(codata_constant), parameter, public :: TAU_ELECTRON_MASS_RATIO = & codata_constant("tau-electron mass ratio", & -real(3477.23d0,dp), real(0.23d0,dp), & +3477.23_dp, 0.23_dp, & "") !! tau-electron mass ratio type(codata_constant), parameter, public :: TAU_ENERGY_EQUIVALENT = & codata_constant("tau energy equivalent", & -real(1776.86d0,dp), real(0.12d0,dp), & +1776.86_dp, 0.12_dp, & "MeV") !! tau energy equivalent type(codata_constant), parameter, public :: TAU_MASS = & codata_constant("tau mass", & -real(3.16754d-27,dp), real(0.00021d-27,dp), & +3.16754e-27_dp, 0.00021e-27_dp, & "kg") !! tau mass type(codata_constant), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & codata_constant("tau mass energy equivalent", & -real(2.84684d-10,dp), real(0.00019d-10,dp), & +2.84684e-10_dp, 0.00019e-10_dp, & "J") !! tau mass energy equivalent type(codata_constant), parameter, public :: TAU_MASS_IN_U = & codata_constant("tau mass in u", & -real(1.90754d0,dp), real(0.00013d0,dp), & +1.90754_dp, 0.00013_dp, & "u") !! tau mass in u type(codata_constant), parameter, public :: TAU_MOLAR_MASS = & codata_constant("tau molar mass", & -real(1.90754d-3,dp), real(0.00013d-3,dp), & +1.90754e-3_dp, 0.00013e-3_dp, & "kg mol^-1") !! tau molar mass type(codata_constant), parameter, public :: TAU_MUON_MASS_RATIO = & codata_constant("tau-muon mass ratio", & -real(16.8170d0,dp), real(0.0011d0,dp), & +16.8170_dp, 0.0011_dp, & "") !! tau-muon mass ratio type(codata_constant), parameter, public :: TAU_NEUTRON_MASS_RATIO = & codata_constant("tau-neutron mass ratio", & -real(1.89115d0,dp), real(0.00013d0,dp), & +1.89115_dp, 0.00013_dp, & "") !! tau-neutron mass ratio type(codata_constant), parameter, public :: TAU_PROTON_MASS_RATIO = & codata_constant("tau-proton mass ratio", & -real(1.89376d0,dp), real(0.00013d0,dp), & +1.89376_dp, 0.00013_dp, & "") !! tau-proton mass ratio type(codata_constant), parameter, public :: THOMSON_CROSS_SECTION = & codata_constant("Thomson cross section", & -real(6.6524587321d-29,dp), real(0.0000000060d-29,dp), & +6.6524587321e-29_dp, 0.0000000060e-29_dp, & "m^2") !! Thomson cross section type(codata_constant), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & codata_constant("triton-electron mass ratio", & -real(5496.92153573d0,dp), real(0.00000027d0,dp), & +5496.92153573_dp, 0.00000027_dp, & "") !! triton-electron mass ratio type(codata_constant), parameter, public :: TRITON_G_FACTOR = & codata_constant("triton g factor", & -real(5.957924931d0,dp), real(0.000000012d0,dp), & +5.957924931_dp, 0.000000012_dp, & "") !! triton g factor type(codata_constant), parameter, public :: TRITON_MAG_MOM = & codata_constant("triton mag. mom.", & -real(1.5046095202d-26,dp), real(0.0000000030d-26,dp), & +1.5046095202e-26_dp, 0.0000000030e-26_dp, & "J T^-1") !! triton mag. mom. type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("triton mag. mom. to Bohr magneton ratio", & -real(1.6223936651d-3,dp), real(0.0000000032d-3,dp), & +1.6223936651e-3_dp, 0.0000000032e-3_dp, & "") !! triton mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("triton mag. mom. to nuclear magneton ratio", & -real(2.9789624656d0,dp), real(0.0000000059d0,dp), & +2.9789624656_dp, 0.0000000059_dp, & "") !! triton mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: TRITON_MASS = & codata_constant("triton mass", & -real(5.0073567446d-27,dp), real(0.0000000015d-27,dp), & +5.0073567446e-27_dp, 0.0000000015e-27_dp, & "kg") !! triton mass type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & codata_constant("triton mass energy equivalent", & -real(4.5003878060d-10,dp), real(0.0000000014d-10,dp), & +4.5003878060e-10_dp, 0.0000000014e-10_dp, & "J") !! triton mass energy equivalent type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("triton mass energy equivalent in MeV", & -real(2808.92113298d0,dp), real(0.00000085d0,dp), & +2808.92113298_dp, 0.00000085_dp, & "MeV") !! triton mass energy equivalent in MeV type(codata_constant), parameter, public :: TRITON_MASS_IN_U = & codata_constant("triton mass in u", & -real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +3.01550071621_dp, 0.00000000012_dp, & "u") !! triton mass in u type(codata_constant), parameter, public :: TRITON_MOLAR_MASS = & codata_constant("triton molar mass", & -real(3.01550071517d-3,dp), real(0.00000000092d-3,dp), & +3.01550071517e-3_dp, 0.00000000092e-3_dp, & "kg mol^-1") !! triton molar mass type(codata_constant), parameter, public :: TRITON_PROTON_MASS_RATIO = & codata_constant("triton-proton mass ratio", & -real(2.99371703414d0,dp), real(0.00000000015d0,dp), & +2.99371703414_dp, 0.00000000015_dp, & "") !! triton-proton mass ratio type(codata_constant), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & codata_constant("triton relative atomic mass", & -real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +3.01550071621_dp, 0.00000000012_dp, & "") !! triton relative atomic mass type(codata_constant), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & codata_constant("triton to proton mag. mom. ratio", & -real(1.0666399191d0,dp), real(0.0000000021d0,dp), & +1.0666399191_dp, 0.0000000021_dp, & "") !! triton to proton mag. mom. ratio type(codata_constant), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & codata_constant("unified atomic mass unit", & -real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! unified atomic mass unit type(codata_constant), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & codata_constant("vacuum electric permittivity", & -real(8.8541878128d-12,dp), real(0.0000000013d-12,dp), & +8.8541878128e-12_dp, 0.0000000013e-12_dp, & "F m^-1") !! vacuum electric permittivity type(codata_constant), parameter, public :: VACUUM_MAG_PERMEABILITY = & codata_constant("vacuum mag. permeability", & -real(1.25663706212d-6,dp), real(0.00000000019d-6,dp), & +1.25663706212e-6_dp, 0.00000000019e-6_dp, & "N A^-2") !! vacuum mag. permeability type(codata_constant), parameter, public :: VON_KLITZING_CONSTANT = & codata_constant("von Klitzing constant", & -real(25812.80745d0,dp), real(0.0d0,dp), & +25812.80745_dp, 0.0_dp, & "ohm") !! von Klitzing constant type(codata_constant), parameter, public :: WEAK_MIXING_ANGLE = & codata_constant("weak mixing angle", & -real(0.22290d0,dp), real(0.00030d0,dp), & +0.22290_dp, 0.00030_dp, & "") !! weak mixing angle type(codata_constant), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & codata_constant("Wien frequency displacement law constant", & -real(5.878925757d10,dp), real(0.0d0,dp), & +5.878925757e10_dp, 0.0_dp, & "Hz K^-1") !! Wien frequency displacement law constant type(codata_constant), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & codata_constant("Wien wavelength displacement law constant", & -real(2.897771955d-3,dp), real(0.0d0,dp), & +2.897771955e-3_dp, 0.0_dp, & "m K") !! Wien wavelength displacement law constant type(codata_constant), parameter, public :: W_TO_Z_MASS_RATIO = & codata_constant("W to Z mass ratio", & -real(0.88153d0,dp), real(0.00017d0,dp), & +0.88153_dp, 0.00017_dp, & "") !! W to Z mass ratio end module stdlib_codata \ No newline at end of file diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp new file mode 100644 index 000000000..cfb98834a --- /dev/null +++ b/src/stdlib_codata_type.fypp @@ -0,0 +1,50 @@ +#!:include "common.fypp" +#:set KINDS = ["sp", "dp"] +#:if WITH_QP +#:set KINDS = KINDS + ["qp"] +#:endif +#:set PROPS = ("value", "uncertainty") +module stdlib_codata_type + !! Codata constant type + use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ + use stdlib_io, only: FMT_REAL_DP + private + + type, public :: codata_constant + !! Derived type for representing a Codata constant. + character(len=64) :: name + real(dp) :: value + real(dp) :: uncertainty + character(len=32) :: unit + contains + procedure :: print + #:for p in PROPS + #:for k in KINDS + procedure :: eval_${p}$_${k}$ + #:endfor + #:endfor + #:for p in PROPS + generic :: eval_${p}$ => #{for k in KINDS[:-1]}#eval_${p}$_${k}$, #{endfor}#eval_${p}$_${KINDS[-1]}$ + #:endfor + end type + +contains + +subroutine print(self) + !! Print out the constant's name, value, uncertainty and unit. + class(codata_constant), intent(in) :: self + print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit +end subroutine + +#:for p in PROPS +#:for k in KINDS +elemental real(${k}$) function eval_${p}$_${k}$(self, mold) result(r) + !! Evaluate the constant ${p}$ for the kind ${k}$ + class(codata_constant), intent(in) :: self + real(${k}$), intent(in) :: mold + r = real(self%${p}$, kind(mold)) +end function +#:endfor +#:endfor + +end module stdlib_codata_type diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp new file mode 100644 index 000000000..c71a9494c --- /dev/null +++ b/src/stdlib_constants.fypp @@ -0,0 +1,66 @@ +#!:include "common.fypp" +module stdlib_constants + !! Constants + use stdlib_kinds, only: sp, dp, qp + use stdlib_codata, only: SPEED_OF_LIGHT_IN_VACUUM, & + VACUUM_ELECTRIC_PERMITTIVITY, & + VACUUM_MAG_PERMEABILITY, & + PLANCK_CONSTANT, & + NEWTONIAN_CONSTANT_OF_GRAVITATION, & + STANDARD_ACCELERATION_OF_GRAVITY, & + ELEMENTARY_CHARGE, & + MOLAR_GAS_CONSTANT, & + FINE_STRUCTURE_CONSTANT, & + AVOGADRO_CONSTANT, & + BOLTZMANN_CONSTANT, & + STEFAN_BOLTZMANN_CONSTANT, & + WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT, & + RYDBERG_CONSTANT, & + ELECTRON_MASS, & + PROTON_MASS, & + NEUTRON_MASS, & + ATOMIC_MASS_CONSTANT + private + + ! mathematical constants + #:if WITH_QP + real(qp), parameter, public :: PI_qp = 3.1415926535897932384626433832795028841971_qp !! PI quadruple precision + #:else + real(dp), parameter, public :: PI_dp = 3.1415926535897932384626433832795028841971_dp !! PI double precision + #:endif + real(sp), parameter, public :: PI_sp = real(pi_dp, sp) !! PI single precision + + + ! Physical constants + real(dp), parameter, public :: c = SPEED_OF_LIGHT_IN_VACUUM%value !! Speed of light in vacuum + real(dp), parameter, public :: speed_of_light = SPEED_OF_LIGHT_IN_VACUUM%value !! Speed of light in vacuum + real(dp), parameter, public :: mu_0 = VACUUM_MAG_PERMEABILITY%value !! vacuum mag. permeability + real(dp), parameter, public :: epsilon_0 = VACUUM_ELECTRIC_PERMITTIVITY%value !! vacuum mag. permeability + real(dp), parameter, public :: h = PLANCK_CONSTANT%value !! Planck constant + real(dp), parameter, public :: Planck = PLANCK_CONSTANT%value !! Planck constant + real(dp), parameter, public :: hbar = PLANCK_CONSTANT%value / PI_dp !! Reduced Planck constant + real(dp), parameter, public :: G = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation + real(dp), parameter, public :: gravition_constant = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation + real(dp), parameter, public :: g2 = STANDARD_ACCELERATION_OF_GRAVITY%value !! Standard acceleration of gravity + real(dp), parameter, public :: e = ELEMENTARY_CHARGE%value !! Elementary charge + real(dp), parameter, public :: R = MOLAR_GAS_CONSTANT%value !! Molar gas constant + real(dp), parameter, public :: gas_constant = MOLAR_GAS_CONSTANT%value !! Molar gas constant + real(dp), parameter, public :: alpha = FINE_STRUCTURE_CONSTANT%value !! Fine structure constant + real(dp), parameter, public :: fine_structure = FINE_STRUCTURE_CONSTANT%value !! Fine structure constant + real(dp), parameter, public :: N_A = AVOGADRO_CONSTANT%value !! Avogadro constant + real(dp), parameter, public :: Avogadro = AVOGADRO_CONSTANT%value !! Avogadro constant + real(dp), parameter, public :: k = BOLTZMANN_CONSTANT%value !! Boltzmann constant + real(dp), parameter, public :: Boltzmann = BOLTZMANN_CONSTANT%value !! Boltzmann constant + real(dp), parameter, public :: sigma = STEFAN_BOLTZMANN_CONSTANT%value !! Stefan-Boltzmann constant + real(dp), parameter, public :: Stefan_Boltzmann = STEFAN_BOLTZMANN_CONSTANT%value !! Stefan-Boltzmann constant + real(dp), parameter, public :: Wien = WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT%value !! Wien wavelength displacement law constant + real(dp), parameter, public :: Rydberg = RYDBERG_CONSTANT%value !! Rydberg constant + real(dp), parameter, public :: m_e = ELECTRON_MASS%value !! Electron mass + real(dp), parameter, public :: m_p = PROTON_MASS%value !! Proton mass + real(dp), parameter, public :: m_n = NEUTRON_MASS%value !! Neutron mass + real(dp), parameter, public :: m_u = ATOMIC_MASS_CONSTANT%value !! Atomic mass constant + real(dp), parameter, public :: u = ATOMIC_MASS_CONSTANT%value !! Atomic mass constant + + ! Additional constants if needed + +end module stdlib_constants From 31e2ce17460a03aba30e0acec2d4d3a505c342c8 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 25 Apr 2024 09:08:26 +0200 Subject: [PATCH 003/144] Uncomment fypp include statement. --- src/stdlib_codata_type.fypp | 2 +- src/stdlib_constants.fypp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index cfb98834a..b2a42f604 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -1,4 +1,4 @@ -#!:include "common.fypp" +#:include "common.fypp" #:set KINDS = ["sp", "dp"] #:if WITH_QP #:set KINDS = KINDS + ["qp"] diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index c71a9494c..5d541f1de 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -1,4 +1,4 @@ -#!:include "common.fypp" +#:include "common.fypp" module stdlib_constants !! Constants use stdlib_kinds, only: sp, dp, qp From 2dcca2681789773c72985fddfbcb8aa682eb3c6a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sat, 27 Apr 2024 06:51:13 +0200 Subject: [PATCH 004/144] Fix typo in gravitation_constant. --- src/stdlib_constants.fypp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index 5d541f1de..e1b21ab57 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -40,7 +40,7 @@ module stdlib_constants real(dp), parameter, public :: Planck = PLANCK_CONSTANT%value !! Planck constant real(dp), parameter, public :: hbar = PLANCK_CONSTANT%value / PI_dp !! Reduced Planck constant real(dp), parameter, public :: G = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation - real(dp), parameter, public :: gravition_constant = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation + real(dp), parameter, public :: gravitation_constant = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation real(dp), parameter, public :: g2 = STANDARD_ACCELERATION_OF_GRAVITY%value !! Standard acceleration of gravity real(dp), parameter, public :: e = ELEMENTARY_CHARGE%value !! Elementary charge real(dp), parameter, public :: R = MOLAR_GAS_CONSTANT%value !! Molar gas constant From 4750e7b0b9110d9b024a14c5a2cf1e5cc247faff Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 29 Apr 2024 13:58:06 +0200 Subject: [PATCH 005/144] Set KINDS as REAL_KINDS from common.fypp --- src/stdlib_codata_type.fypp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index b2a42f604..d3c920030 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -1,8 +1,5 @@ #:include "common.fypp" -#:set KINDS = ["sp", "dp"] -#:if WITH_QP -#:set KINDS = KINDS + ["qp"] -#:endif +#:set KINDS = REAL_KINDS #:set PROPS = ("value", "uncertainty") module stdlib_codata_type !! Codata constant type From 359694deb5d3f551980c89391dffbbc559daeedd Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 29 Apr 2024 13:58:56 +0200 Subject: [PATCH 006/144] Set KINDS as REAL_KINDS from common.fypp. --- src/stdlib_constants.fypp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index e1b21ab57..69d880b6c 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -1,7 +1,8 @@ #:include "common.fypp" +#:set KINDS = REAL_KINDS module stdlib_constants !! Constants - use stdlib_kinds, only: sp, dp, qp + use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_codata, only: SPEED_OF_LIGHT_IN_VACUUM, & VACUUM_ELECTRIC_PERMITTIVITY, & VACUUM_MAG_PERMEABILITY, & From 4cfd81526a9a2525a81ff5c0300fb1c38ccf5ed0 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 29 Apr 2024 13:59:42 +0200 Subject: [PATCH 007/144] Automatic generation of PI with different precisions from KINDS. --- src/stdlib_constants.fypp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index 69d880b6c..f02a81098 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -24,13 +24,9 @@ module stdlib_constants private ! mathematical constants - #:if WITH_QP - real(qp), parameter, public :: PI_qp = 3.1415926535897932384626433832795028841971_qp !! PI quadruple precision - #:else - real(dp), parameter, public :: PI_dp = 3.1415926535897932384626433832795028841971_dp !! PI double precision - #:endif - real(sp), parameter, public :: PI_sp = real(pi_dp, sp) !! PI single precision - + #:for k in KINDS + real(${k}$), parameter, public :: PI_${k}$ = acos(-1.0_${k}$) + #:endfor ! Physical constants real(dp), parameter, public :: c = SPEED_OF_LIGHT_IN_VACUUM%value !! Speed of light in vacuum From 912b5903302e526cf3254853435698926708bfc6 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 1 May 2024 00:42:32 +0200 Subject: [PATCH 008/144] Add doc stdlib_constants.md in docs/specs/ --- doc/specs/stdlib_constants.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 doc/specs/stdlib_constants.md diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md new file mode 100644 index 000000000..97a7149ad --- /dev/null +++ b/doc/specs/stdlib_constants.md @@ -0,0 +1,24 @@ +--- +title: constants +--- + +[TOC] + +## Introduction + +`stdlib_constants` module provides mathematical and physical constants. +The latter are the last codata constants (2018) taken from [NIST](http://physics.nist.gov/constants.) + +## Procedures and Methods provided + + +The constants are implemented as double precision parameters for Fortran +The names are quite long and you can alias them for shorter names + + + +## Example + +```fortran +{!example/constants/example_constants.f90!} +``` From e73f743288ae969952fbe143625d52e63358954f Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 1 May 2024 00:43:02 +0200 Subject: [PATCH 009/144] ENH: Add example_constants.f90 in example/constants/. --- example/constants/example_constants.f90 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 example/constants/example_constants.f90 diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 new file mode 100644 index 000000000..73984f25c --- /dev/null +++ b/example/constants/example_constants.f90 @@ -0,0 +1,13 @@ +program example_constants + use stdlib_constants, only: c, PI=>PI_dp + use stdlib_codata, only: alpha=>ALPHA_PARTICLE_ELECTRON_MASS_RATIO + use stdlib_codata, only: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY + + call alpha%print() + + print *, ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY%eval_value(1.0) + + print *, c + print *, PI + +end program example_constants From 199460173d34168b7356a536e6a379a29f83da15 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 1 May 2024 00:44:27 +0200 Subject: [PATCH 010/144] Modify doc stdlib_constants.md --- doc/specs/stdlib_constants.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 97a7149ad..aac8c3b83 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -9,14 +9,6 @@ title: constants `stdlib_constants` module provides mathematical and physical constants. The latter are the last codata constants (2018) taken from [NIST](http://physics.nist.gov/constants.) -## Procedures and Methods provided - - -The constants are implemented as double precision parameters for Fortran -The names are quite long and you can alias them for shorter names - - - ## Example ```fortran From ac8eb45e05c3c0ec429057c013b47e0ce92b0b7a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sat, 4 May 2024 07:42:36 +0200 Subject: [PATCH 011/144] Add constants documentation in index. --- doc/specs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/specs/index.md b/doc/specs/index.md index b61b16042..de3eb8f38 100644 --- a/doc/specs/index.md +++ b/doc/specs/index.md @@ -14,6 +14,7 @@ This is an index/directory of the specifications (specs) for each new module/fea - [ansi](./stdlib_ansi.html) - Terminal color and style escape sequences - [array](./stdlib_array.html) - Procedures for index manipulation and array handling - [ascii](./stdlib_ascii.html) - Procedures for handling ASCII characters + - [constants](./stdlib_constants.html) - Constants - [bitsets](./stdlib_bitsets.html) - Bitset data types and procedures - [error](./stdlib_error.html) - Catching and handling errors - [hash](./stdlib_hash_procedures.html) - Hashing integer From d4fa81ec62d348101b6a268b01abdceeb82ab6b7 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 8 May 2024 07:33:50 +0200 Subject: [PATCH 012/144] Add to_real for consistency with stdlib. --- src/stdlib_codata_type.fypp | 42 ++++++++++++++++++++++++------------- src/stdlib_constants.fypp | 2 +- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index d3c920030..f838715bd 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -1,10 +1,10 @@ #:include "common.fypp" #:set KINDS = REAL_KINDS -#:set PROPS = ("value", "uncertainty") module stdlib_codata_type !! Codata constant type use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_io, only: FMT_REAL_DP + use stdlib_optval, only: optval private type, public :: codata_constant @@ -15,15 +15,20 @@ module stdlib_codata_type character(len=32) :: unit contains procedure :: print - #:for p in PROPS #:for k in KINDS - procedure :: eval_${p}$_${k}$ - #:endfor - #:endfor - #:for p in PROPS - generic :: eval_${p}$ => #{for k in KINDS[:-1]}#eval_${p}$_${k}$, #{endfor}#eval_${p}$_${KINDS[-1]}$ + procedure :: to_real_${k}$ #:endfor + generic :: to_real => #{for k in KINDS[:-1]}#to_real_${k}$, #{endfor}#to_real_${KINDS[-1]}$ end type + + interface to_real + !! Get the constant value or uncertainty. + #:for k in KINDS + module procedure to_real_${k}$ + #:endfor + end interface + + public :: to_real contains @@ -33,15 +38,24 @@ subroutine print(self) print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit end subroutine -#:for p in PROPS #:for k in KINDS -elemental real(${k}$) function eval_${p}$_${k}$(self, mold) result(r) - !! Evaluate the constant ${p}$ for the kind ${k}$ - class(codata_constant), intent(in) :: self - real(${k}$), intent(in) :: mold - r = real(self%${p}$, kind(mold)) +elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) result(r) + !! Get the constant value or uncertainty for the kind ${k}$ + + class(codata_constant), intent(in) :: self !! Codata constant + real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface + logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required + !! + logical :: u + + u = optval(uncertainty, .false.) + + if(u .eqv. .false.)then + r = real(self%value, kind(mold)) + else + r = real(self%uncertainty, kind(mold)) + end if end function #:endfor -#:endfor end module stdlib_codata_type diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index f02a81098..484327c5c 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -25,7 +25,7 @@ module stdlib_constants ! mathematical constants #:for k in KINDS - real(${k}$), parameter, public :: PI_${k}$ = acos(-1.0_${k}$) + real(${k}$), parameter, public :: PI_${k}$ = acos(-1.0_${k}$) !! PI #:endfor ! Physical constants From 40fa472e0dc4974476e9e2a8de20f0d04d9d4dd3 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 8 May 2024 07:35:42 +0200 Subject: [PATCH 013/144] Update example and add CMakeLists.txt in constant folder. --- example/CMakeLists.txt | 1 + example/constants/CMakeLists.txt | 1 + example/constants/example_constants.f90 | 22 +++++++++++++++++----- 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 example/constants/CMakeLists.txt diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 3dd43694f..cbef7f075 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -9,6 +9,7 @@ endmacro(ADD_EXAMPLE) add_subdirectory(array) add_subdirectory(ascii) add_subdirectory(bitsets) +add_subdirectory(constants) add_subdirectory(error) add_subdirectory(hashmaps) add_subdirectory(hash_procedures) diff --git a/example/constants/CMakeLists.txt b/example/constants/CMakeLists.txt new file mode 100644 index 000000000..98306777c --- /dev/null +++ b/example/constants/CMakeLists.txt @@ -0,0 +1 @@ +ADD_EXAMPLE(constants) diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 index 73984f25c..e2910be76 100644 --- a/example/constants/example_constants.f90 +++ b/example/constants/example_constants.f90 @@ -1,13 +1,25 @@ program example_constants use stdlib_constants, only: c, PI=>PI_dp use stdlib_codata, only: alpha=>ALPHA_PARTICLE_ELECTRON_MASS_RATIO - use stdlib_codata, only: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY + use stdlib_codata_type, only : to_real + use stdlib_kinds, only: dp, sp - call alpha%print() + ! Use most common physical constants defined as deouble precision reals + print *, "speed of light in vacuum= ", c + + ! Use of mathematical constants such as PI + print *, "PI as double precision real= ", PI + + ! Use codata_constant type for evaluating the value to the desired precision + print *, "Value of alpha... evaluated to double precision=", alpha%to_real(1.0_dp) + print *, "Uncertainty of alpha... evaluated to double precision=", alpha%to_real(1.0_sp, .true.) + print *, "Value of alpha... evaluated to single precision=", alpha%to_real(1.0_sp) - print *, ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY%eval_value(1.0) + ! Convert a codata constant to a real + print *, "Value of the alpha... evaluated to double precision=", to_real(alpha, 1.0_dp) - print *, c - print *, PI + + ! Print out codata constant attributes: name, value, uncertainty and unit + call alpha%print() end program example_constants From 68d38d36c63cd12d05b9de69f5bf7996c633d0fe Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 8 May 2024 07:47:10 +0200 Subject: [PATCH 014/144] Update docs/specs/stdlib_constants.md. --- doc/specs/stdlib_constants.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index aac8c3b83..21fab7237 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -6,8 +6,13 @@ title: constants ## Introduction -`stdlib_constants` module provides mathematical and physical constants. -The latter are the last codata constants (2018) taken from [NIST](http://physics.nist.gov/constants.) + +The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. + +The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant]]. +The lastest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) +The names are quite long and can be aliased with shorter names. + ## Example From cc646582e6bf6152695a7b1fa348be0d8c384918 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:31:29 +0200 Subject: [PATCH 015/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 21fab7237..59f0b4787 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -9,7 +9,7 @@ title: constants The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. -The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant]]. +The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant_type]]. The lastest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) The names are quite long and can be aliased with shorter names. From 7875707f24d2f6938975e782710443768516d73e Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:45:47 +0200 Subject: [PATCH 016/144] Update doc/specs/stdlib_constants.md. Spelling error. Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 59f0b4787..cda4d2741 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -10,7 +10,7 @@ title: constants The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant_type]]. -The lastest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) +The latest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) The names are quite long and can be aliased with shorter names. From d230ea3122ee5196561b264c7cee1a729474cd32 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:47:09 +0200 Subject: [PATCH 017/144] Update example/constants/example_constants.f90. Co-authored-by: Jeremie Vandenplas --- example/constants/example_constants.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 index e2910be76..b0fce5ec0 100644 --- a/example/constants/example_constants.f90 +++ b/example/constants/example_constants.f90 @@ -1,5 +1,5 @@ program example_constants - use stdlib_constants, only: c, PI=>PI_dp + use stdlib_constants, only: c, pi=>PI_dp use stdlib_codata, only: alpha=>ALPHA_PARTICLE_ELECTRON_MASS_RATIO use stdlib_codata_type, only : to_real use stdlib_kinds, only: dp, sp From 3f88e5c35e0903b31a94458ff8e147108ec4030f Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:47:46 +0200 Subject: [PATCH 018/144] Update example/constants/example_constants.f90 Co-authored-by: Jeremie Vandenplas --- example/constants/example_constants.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 index b0fce5ec0..4bcf5e887 100644 --- a/example/constants/example_constants.f90 +++ b/example/constants/example_constants.f90 @@ -8,7 +8,7 @@ program example_constants print *, "speed of light in vacuum= ", c ! Use of mathematical constants such as PI - print *, "PI as double precision real= ", PI + print *, "PI as double precision real= ", pi ! Use codata_constant type for evaluating the value to the desired precision print *, "Value of alpha... evaluated to double precision=", alpha%to_real(1.0_dp) From c044980127c974339d30d18b1dba76615e5668c5 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:48:56 +0200 Subject: [PATCH 019/144] Update src/stdlib_codata_type.fypp. Consistency with DT in stdlib. Co-authored-by: Jeremie Vandenplas --- src/stdlib_codata_type.fypp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index f838715bd..81c9b0ea9 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -7,7 +7,7 @@ module stdlib_codata_type use stdlib_optval, only: optval private - type, public :: codata_constant + type, public :: codata_constant_type !! Derived type for representing a Codata constant. character(len=64) :: name real(dp) :: value From 2843c818bd858496b6e5640279ba1723fd6930eb Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:54:09 +0200 Subject: [PATCH 020/144] Update src/stdlib_codata_type.fypp. Docstring for real function. Co-authored-by: Jeremie Vandenplas --- src/stdlib_codata_type.fypp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 81c9b0ea9..9f8adf146 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -40,7 +40,10 @@ end subroutine #:for k in KINDS elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) result(r) + !! version: experimental + !! !! Get the constant value or uncertainty for the kind ${k}$ + !! [Specification](TO_BE_COMPLETED) class(codata_constant), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface From 3e29a0a2eb0a87895a3c81e869be2c942f0b243c Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:55:44 +0200 Subject: [PATCH 021/144] Update src/stdlib_codata_type.fypp. Docstring for DT. Co-authored-by: Jeremie Vandenplas --- src/stdlib_codata_type.fypp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 9f8adf146..62ae4628f 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -8,7 +8,10 @@ module stdlib_codata_type private type, public :: codata_constant_type - !! Derived type for representing a Codata constant. + !! version: experimental + !! + !! Derived type for representing a Codata constant. + !! [Specification](TOBECOMPLETED) character(len=64) :: name real(dp) :: value real(dp) :: uncertainty From 891c6110a76136ee4df5e7edb4d36402dcb9010d Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 23:49:45 +0200 Subject: [PATCH 022/144] Rename DT tp codata_constant_type for consistency with the stdlib. --- src/stdlib_codata.f90 | 1416 +++++++++++++++++------------------ src/stdlib_codata_type.fypp | 4 +- 2 files changed, 710 insertions(+), 710 deletions(-) diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index 398d5bc9e..5920197bb 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -6,1773 +6,1773 @@ module stdlib_codata integer(int32), parameter, public :: YEAR = 2018 !! Year of release. -type(codata_constant), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & -codata_constant("alpha particle-electron mass ratio", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & +codata_constant_type("alpha particle-electron mass ratio", & 7294.29954142_dp, 0.00000024_dp, & "") !! alpha particle-electron mass ratio -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS = & -codata_constant("alpha particle mass", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS = & +codata_constant_type("alpha particle mass", & 6.6446573357e-27_dp, 0.0000000020e-27_dp, & "kg") !! alpha particle mass -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & -codata_constant("alpha particle mass energy equivalent", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("alpha particle mass energy equivalent", & 5.9719201914e-10_dp, 0.0000000018e-10_dp, & "J") !! alpha particle mass energy equivalent -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("alpha particle mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("alpha particle mass energy equivalent in MeV", & 3727.3794066_dp, 0.0000011_dp, & "MeV") !! alpha particle mass energy equivalent in MeV -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & -codata_constant("alpha particle mass in u", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & +codata_constant_type("alpha particle mass in u", & 4.001506179127_dp, 0.000000000063_dp, & "u") !! alpha particle mass in u -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & -codata_constant("alpha particle molar mass", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & +codata_constant_type("alpha particle molar mass", & 4.0015061777e-3_dp, 0.0000000012e-3_dp, & "kg mol^-1") !! alpha particle molar mass -type(codata_constant), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & -codata_constant("alpha particle-proton mass ratio", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & +codata_constant_type("alpha particle-proton mass ratio", & 3.97259969009_dp, 0.00000000022_dp, & "") !! alpha particle-proton mass ratio -type(codata_constant), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & -codata_constant("alpha particle relative atomic mass", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & +codata_constant_type("alpha particle relative atomic mass", & 4.001506179127_dp, 0.000000000063_dp, & "") !! alpha particle relative atomic mass -type(codata_constant), parameter, public :: ANGSTROM_STAR = & -codata_constant("Angstrom star", & +type(codata_constant_type), parameter, public :: ANGSTROM_STAR = & +codata_constant_type("Angstrom star", & 1.00001495e-10_dp, 0.00000090e-10_dp, & "m") !! Angstrom star -type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT = & -codata_constant("atomic mass constant", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT = & +codata_constant_type("atomic mass constant", & 1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass constant -type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & -codata_constant("atomic mass constant energy equivalent", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & +codata_constant_type("atomic mass constant energy equivalent", & 1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass constant energy equivalent -type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("atomic mass constant energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("atomic mass constant energy equivalent in MeV", & 931.49410242_dp, 0.00000028_dp, & "MeV") !! atomic mass constant energy equivalent in MeV -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("atomic mass unit-electron volt relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("atomic mass unit-electron volt relationship", & 9.3149410242e8_dp, 0.0000000028e8_dp, & "eV") !! atomic mass unit-electron volt relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & -codata_constant("atomic mass unit-hartree relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & +codata_constant_type("atomic mass unit-hartree relationship", & 3.4231776874e7_dp, 0.0000000010e7_dp, & "E_h") !! atomic mass unit-hartree relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & -codata_constant("atomic mass unit-hertz relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & +codata_constant_type("atomic mass unit-hertz relationship", & 2.25234271871e23_dp, 0.00000000068e23_dp, & "Hz") !! atomic mass unit-hertz relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & -codata_constant("atomic mass unit-inverse meter relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("atomic mass unit-inverse meter relationship", & 7.5130066104e14_dp, 0.0000000023e14_dp, & "m^-1") !! atomic mass unit-inverse meter relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & -codata_constant("atomic mass unit-joule relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & +codata_constant_type("atomic mass unit-joule relationship", & 1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass unit-joule relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & -codata_constant("atomic mass unit-kelvin relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & +codata_constant_type("atomic mass unit-kelvin relationship", & 1.08095401916e13_dp, 0.00000000033e13_dp, & "K") !! atomic mass unit-kelvin relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & -codata_constant("atomic mass unit-kilogram relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & +codata_constant_type("atomic mass unit-kilogram relationship", & 1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass unit-kilogram relationship -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & -codata_constant("atomic unit of 1st hyperpolarizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & +codata_constant_type("atomic unit of 1st hyperpolarizability", & 3.2063613061e-53_dp, 0.0000000015e-53_dp, & "C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & -codata_constant("atomic unit of 2nd hyperpolarizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & +codata_constant_type("atomic unit of 2nd hyperpolarizability", & 6.2353799905e-65_dp, 0.0000000038e-65_dp, & "C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ACTION = & -codata_constant("atomic unit of action", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ACTION = & +codata_constant_type("atomic unit of action", & 1.054571817e-34_dp, 0.0_dp, & "J s") !! atomic unit of action -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & -codata_constant("atomic unit of charge", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & +codata_constant_type("atomic unit of charge", & 1.602176634e-19_dp, 0.0_dp, & "C") !! atomic unit of charge -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & -codata_constant("atomic unit of charge density", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & +codata_constant_type("atomic unit of charge density", & 1.08120238457e12_dp, 0.00000000049e12_dp, & "C m^-3") !! atomic unit of charge density -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & -codata_constant("atomic unit of current", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & +codata_constant_type("atomic unit of current", & 6.623618237510e-3_dp, 0.000000000013e-3_dp, & "A") !! atomic unit of current -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & -codata_constant("atomic unit of electric dipole mom.", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & +codata_constant_type("atomic unit of electric dipole mom.", & 8.4783536255e-30_dp, 0.0000000013e-30_dp, & "C m") !! atomic unit of electric dipole mom. -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & -codata_constant("atomic unit of electric field", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & +codata_constant_type("atomic unit of electric field", & 5.14220674763e11_dp, 0.00000000078e11_dp, & "V m^-1") !! atomic unit of electric field -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & -codata_constant("atomic unit of electric field gradient", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & +codata_constant_type("atomic unit of electric field gradient", & 9.7173624292e21_dp, 0.0000000029e21_dp, & "V m^-2") !! atomic unit of electric field gradient -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & -codata_constant("atomic unit of electric polarizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & +codata_constant_type("atomic unit of electric polarizability", & 1.64877727436e-41_dp, 0.00000000050e-41_dp, & "C^2 m^2 J^-1") !! atomic unit of electric polarizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & -codata_constant("atomic unit of electric potential", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & +codata_constant_type("atomic unit of electric potential", & 27.211386245988_dp, 0.000000000053_dp, & "V") !! atomic unit of electric potential -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & -codata_constant("atomic unit of electric quadrupole mom.", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & +codata_constant_type("atomic unit of electric quadrupole mom.", & 4.4865515246e-40_dp, 0.0000000014e-40_dp, & "C m^2") !! atomic unit of electric quadrupole mom. -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & -codata_constant("atomic unit of energy", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & +codata_constant_type("atomic unit of energy", & 4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! atomic unit of energy -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_FORCE = & -codata_constant("atomic unit of force", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_FORCE = & +codata_constant_type("atomic unit of force", & 8.2387234983e-8_dp, 0.0000000012e-8_dp, & "N") !! atomic unit of force -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & -codata_constant("atomic unit of length", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & +codata_constant_type("atomic unit of length", & 5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! atomic unit of length -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & -codata_constant("atomic unit of mag. dipole mom.", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & +codata_constant_type("atomic unit of mag. dipole mom.", & 1.85480201566e-23_dp, 0.00000000056e-23_dp, & "J T^-1") !! atomic unit of mag. dipole mom. -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & -codata_constant("atomic unit of mag. flux density", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & +codata_constant_type("atomic unit of mag. flux density", & 2.35051756758e5_dp, 0.00000000071e5_dp, & "T") !! atomic unit of mag. flux density -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & -codata_constant("atomic unit of magnetizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & +codata_constant_type("atomic unit of magnetizability", & 7.8910366008e-29_dp, 0.0000000048e-29_dp, & "J T^-2") !! atomic unit of magnetizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MASS = & -codata_constant("atomic unit of mass", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MASS = & +codata_constant_type("atomic unit of mass", & 9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! atomic unit of mass -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & -codata_constant("atomic unit of momentum", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & +codata_constant_type("atomic unit of momentum", & 1.99285191410e-24_dp, 0.00000000030e-24_dp, & "kg m s^-1") !! atomic unit of momentum -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & -codata_constant("atomic unit of permittivity", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & +codata_constant_type("atomic unit of permittivity", & 1.11265005545e-10_dp, 0.00000000017e-10_dp, & "F m^-1") !! atomic unit of permittivity -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_TIME = & -codata_constant("atomic unit of time", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_TIME = & +codata_constant_type("atomic unit of time", & 2.4188843265857e-17_dp, 0.0000000000047e-17_dp, & "s") !! atomic unit of time -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & -codata_constant("atomic unit of velocity", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & +codata_constant_type("atomic unit of velocity", & 2.18769126364e6_dp, 0.00000000033e6_dp, & "m s^-1") !! atomic unit of velocity -type(codata_constant), parameter, public :: AVOGADRO_CONSTANT = & -codata_constant("Avogadro constant", & +type(codata_constant_type), parameter, public :: AVOGADRO_CONSTANT = & +codata_constant_type("Avogadro constant", & 6.02214076e23_dp, 0.0_dp, & "mol^-1") !! Avogadro constant -type(codata_constant), parameter, public :: BOHR_MAGNETON = & -codata_constant("Bohr magneton", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON = & +codata_constant_type("Bohr magneton", & 9.2740100783e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! Bohr magneton -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_EV_T = & -codata_constant("Bohr magneton in eV/T", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_EV_T = & +codata_constant_type("Bohr magneton in eV/T", & 5.7883818060e-5_dp, 0.0000000017e-5_dp, & "eV T^-1") !! Bohr magneton in eV/T -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & -codata_constant("Bohr magneton in Hz/T", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & +codata_constant_type("Bohr magneton in Hz/T", & 1.39962449361e10_dp, 0.00000000042e10_dp, & "Hz T^-1") !! Bohr magneton in Hz/T -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & -codata_constant("Bohr magneton in inverse meter per tesla", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant_type("Bohr magneton in inverse meter per tesla", & 46.686447783_dp, 0.000000014_dp, & "m^-1 T^-1") !! Bohr magneton in inverse meter per tesla -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_K_T = & -codata_constant("Bohr magneton in K/T", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_K_T = & +codata_constant_type("Bohr magneton in K/T", & 0.67171381563_dp, 0.00000000020_dp, & "K T^-1") !! Bohr magneton in K/T -type(codata_constant), parameter, public :: BOHR_RADIUS = & -codata_constant("Bohr radius", & +type(codata_constant_type), parameter, public :: BOHR_RADIUS = & +codata_constant_type("Bohr radius", & 5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! Bohr radius -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT = & -codata_constant("Boltzmann constant", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT = & +codata_constant_type("Boltzmann constant", & 1.380649e-23_dp, 0.0_dp, & "J K^-1") !! Boltzmann constant -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & -codata_constant("Boltzmann constant in eV/K", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & +codata_constant_type("Boltzmann constant in eV/K", & 8.617333262e-5_dp, 0.0_dp, & "eV K^-1") !! Boltzmann constant in eV/K -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & -codata_constant("Boltzmann constant in Hz/K", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & +codata_constant_type("Boltzmann constant in Hz/K", & 2.083661912e10_dp, 0.0_dp, & "Hz K^-1") !! Boltzmann constant in Hz/K -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & -codata_constant("Boltzmann constant in inverse meter per kelvin", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & +codata_constant_type("Boltzmann constant in inverse meter per kelvin", & 69.50348004_dp, 0.0_dp, & "m^-1 K^-1") !! Boltzmann constant in inverse meter per kelvin -type(codata_constant), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & -codata_constant("characteristic impedance of vacuum", & +type(codata_constant_type), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & +codata_constant_type("characteristic impedance of vacuum", & 376.730313668_dp, 0.000000057_dp, & "ohm") !! characteristic impedance of vacuum -type(codata_constant), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & -codata_constant("classical electron radius", & +type(codata_constant_type), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & +codata_constant_type("classical electron radius", & 2.8179403262e-15_dp, 0.0000000013e-15_dp, & "m") !! classical electron radius -type(codata_constant), parameter, public :: COMPTON_WAVELENGTH = & -codata_constant("Compton wavelength", & +type(codata_constant_type), parameter, public :: COMPTON_WAVELENGTH = & +codata_constant_type("Compton wavelength", & 2.42631023867e-12_dp, 0.00000000073e-12_dp, & "m") !! Compton wavelength -type(codata_constant), parameter, public :: CONDUCTANCE_QUANTUM = & -codata_constant("conductance quantum", & +type(codata_constant_type), parameter, public :: CONDUCTANCE_QUANTUM = & +codata_constant_type("conductance quantum", & 7.748091729e-5_dp, 0.0_dp, & "S") !! conductance quantum -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & -codata_constant("conventional value of ampere-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & +codata_constant_type("conventional value of ampere-90", & 1.00000008887_dp, 0.0_dp, & "A") !! conventional value of ampere-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & -codata_constant("conventional value of coulomb-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & +codata_constant_type("conventional value of coulomb-90", & 1.00000008887_dp, 0.0_dp, & "C") !! conventional value of coulomb-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & -codata_constant("conventional value of farad-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & +codata_constant_type("conventional value of farad-90", & 0.99999998220_dp, 0.0_dp, & "F") !! conventional value of farad-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & -codata_constant("conventional value of henry-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & +codata_constant_type("conventional value of henry-90", & 1.00000001779_dp, 0.0_dp, & "H") !! conventional value of henry-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & -codata_constant("conventional value of Josephson constant", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & +codata_constant_type("conventional value of Josephson constant", & 483597.9e9_dp, 0.0_dp, & "Hz V^-1") !! conventional value of Josephson constant -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & -codata_constant("conventional value of ohm-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & +codata_constant_type("conventional value of ohm-90", & 1.00000001779_dp, 0.0_dp, & "ohm") !! conventional value of ohm-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & -codata_constant("conventional value of volt-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & +codata_constant_type("conventional value of volt-90", & 1.00000010666_dp, 0.0_dp, & "V") !! conventional value of volt-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & -codata_constant("conventional value of von Klitzing constant", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & +codata_constant_type("conventional value of von Klitzing constant", & 25812.807_dp, 0.0_dp, & "ohm") !! conventional value of von Klitzing constant -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & -codata_constant("conventional value of watt-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & +codata_constant_type("conventional value of watt-90", & 1.00000019553_dp, 0.0_dp, & "W") !! conventional value of watt-90 -type(codata_constant), parameter, public :: COPPER_X_UNIT = & -codata_constant("Copper x unit", & +type(codata_constant_type), parameter, public :: COPPER_X_UNIT = & +codata_constant_type("Copper x unit", & 1.00207697e-13_dp, 0.00000028e-13_dp, & "m") !! Copper x unit -type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & -codata_constant("deuteron-electron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & +codata_constant_type("deuteron-electron mag. mom. ratio", & -4.664345551e-4_dp, 0.000000012e-4_dp, & "") !! deuteron-electron mag. mom. ratio -type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & -codata_constant("deuteron-electron mass ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & +codata_constant_type("deuteron-electron mass ratio", & 3670.48296788_dp, 0.00000013_dp, & "") !! deuteron-electron mass ratio -type(codata_constant), parameter, public :: DEUTERON_G_FACTOR = & -codata_constant("deuteron g factor", & +type(codata_constant_type), parameter, public :: DEUTERON_G_FACTOR = & +codata_constant_type("deuteron g factor", & 0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron g factor -type(codata_constant), parameter, public :: DEUTERON_MAG_MOM = & -codata_constant("deuteron mag. mom.", & +type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM = & +codata_constant_type("deuteron mag. mom.", & 4.330735094e-27_dp, 0.000000011e-27_dp, & "J T^-1") !! deuteron mag. mom. -type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("deuteron mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("deuteron mag. mom. to Bohr magneton ratio", & 4.669754570e-4_dp, 0.000000012e-4_dp, & "") !! deuteron mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("deuteron mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("deuteron mag. mom. to nuclear magneton ratio", & 0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: DEUTERON_MASS = & -codata_constant("deuteron mass", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS = & +codata_constant_type("deuteron mass", & 3.3435837724e-27_dp, 0.0000000010e-27_dp, & "kg") !! deuteron mass -type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & -codata_constant("deuteron mass energy equivalent", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("deuteron mass energy equivalent", & 3.00506323102e-10_dp, 0.00000000091e-10_dp, & "J") !! deuteron mass energy equivalent -type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("deuteron mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("deuteron mass energy equivalent in MeV", & 1875.61294257_dp, 0.00000057_dp, & "MeV") !! deuteron mass energy equivalent in MeV -type(codata_constant), parameter, public :: DEUTERON_MASS_IN_U = & -codata_constant("deuteron mass in u", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS_IN_U = & +codata_constant_type("deuteron mass in u", & 2.013553212745_dp, 0.000000000040_dp, & "u") !! deuteron mass in u -type(codata_constant), parameter, public :: DEUTERON_MOLAR_MASS = & -codata_constant("deuteron molar mass", & +type(codata_constant_type), parameter, public :: DEUTERON_MOLAR_MASS = & +codata_constant_type("deuteron molar mass", & 2.01355321205e-3_dp, 0.00000000061e-3_dp, & "kg mol^-1") !! deuteron molar mass -type(codata_constant), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & -codata_constant("deuteron-neutron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & +codata_constant_type("deuteron-neutron mag. mom. ratio", & -0.44820653_dp, 0.00000011_dp, & "") !! deuteron-neutron mag. mom. ratio -type(codata_constant), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & -codata_constant("deuteron-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("deuteron-proton mag. mom. ratio", & 0.30701220939_dp, 0.00000000079_dp, & "") !! deuteron-proton mag. mom. ratio -type(codata_constant), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & -codata_constant("deuteron-proton mass ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & +codata_constant_type("deuteron-proton mass ratio", & 1.99900750139_dp, 0.00000000011_dp, & "") !! deuteron-proton mass ratio -type(codata_constant), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & -codata_constant("deuteron relative atomic mass", & +type(codata_constant_type), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("deuteron relative atomic mass", & 2.013553212745_dp, 0.000000000040_dp, & "") !! deuteron relative atomic mass -type(codata_constant), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & -codata_constant("deuteron rms charge radius", & +type(codata_constant_type), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & +codata_constant_type("deuteron rms charge radius", & 2.12799e-15_dp, 0.00074e-15_dp, & "m") !! deuteron rms charge radius -type(codata_constant), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & -codata_constant("electron charge to mass quotient", & +type(codata_constant_type), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant_type("electron charge to mass quotient", & -1.75882001076e11_dp, 0.00000000053e11_dp, & "C kg^-1") !! electron charge to mass quotient -type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & -codata_constant("electron-deuteron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & +codata_constant_type("electron-deuteron mag. mom. ratio", & -2143.9234915_dp, 0.0000056_dp, & "") !! electron-deuteron mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & -codata_constant("electron-deuteron mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & +codata_constant_type("electron-deuteron mass ratio", & 2.724437107462e-4_dp, 0.000000000096e-4_dp, & "") !! electron-deuteron mass ratio -type(codata_constant), parameter, public :: ELECTRON_G_FACTOR = & -codata_constant("electron g factor", & +type(codata_constant_type), parameter, public :: ELECTRON_G_FACTOR = & +codata_constant_type("electron g factor", & -2.00231930436256_dp, 0.00000000000035_dp, & "") !! electron g factor -type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO = & -codata_constant("electron gyromag. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO = & +codata_constant_type("electron gyromag. ratio", & 1.76085963023e11_dp, 0.00000000053e11_dp, & "s^-1 T^-1") !! electron gyromag. ratio -type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("electron gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("electron gyromag. ratio in MHz/T", & 28024.9514242_dp, 0.0000085_dp, & "MHz T^-1") !! electron gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: ELECTRON_HELION_MASS_RATIO = & -codata_constant("electron-helion mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_HELION_MASS_RATIO = & +codata_constant_type("electron-helion mass ratio", & 1.819543074573e-4_dp, 0.000000000079e-4_dp, & "") !! electron-helion mass ratio -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM = & -codata_constant("electron mag. mom.", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM = & +codata_constant_type("electron mag. mom.", & -9.2847647043e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! electron mag. mom. -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & -codata_constant("electron mag. mom. anomaly", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & +codata_constant_type("electron mag. mom. anomaly", & 1.15965218128e-3_dp, 0.00000000018e-3_dp, & "") !! electron mag. mom. anomaly -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("electron mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("electron mag. mom. to Bohr magneton ratio", & -1.00115965218128_dp, 0.00000000000018_dp, & "") !! electron mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("electron mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("electron mag. mom. to nuclear magneton ratio", & -1838.28197188_dp, 0.00000011_dp, & "") !! electron mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: ELECTRON_MASS = & -codata_constant("electron mass", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS = & +codata_constant_type("electron mass", & 9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! electron mass -type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & -codata_constant("electron mass energy equivalent", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("electron mass energy equivalent", & 8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! electron mass energy equivalent -type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("electron mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("electron mass energy equivalent in MeV", & 0.51099895000_dp, 0.00000000015_dp, & "MeV") !! electron mass energy equivalent in MeV -type(codata_constant), parameter, public :: ELECTRON_MASS_IN_U = & -codata_constant("electron mass in u", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS_IN_U = & +codata_constant_type("electron mass in u", & 5.48579909065e-4_dp, 0.00000000016e-4_dp, & "u") !! electron mass in u -type(codata_constant), parameter, public :: ELECTRON_MOLAR_MASS = & -codata_constant("electron molar mass", & +type(codata_constant_type), parameter, public :: ELECTRON_MOLAR_MASS = & +codata_constant_type("electron molar mass", & 5.4857990888e-7_dp, 0.0000000017e-7_dp, & "kg mol^-1") !! electron molar mass -type(codata_constant), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & -codata_constant("electron-muon mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & +codata_constant_type("electron-muon mag. mom. ratio", & 206.7669883_dp, 0.0000046_dp, & "") !! electron-muon mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_MUON_MASS_RATIO = & -codata_constant("electron-muon mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MUON_MASS_RATIO = & +codata_constant_type("electron-muon mass ratio", & 4.83633169e-3_dp, 0.00000011e-3_dp, & "") !! electron-muon mass ratio -type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & -codata_constant("electron-neutron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & +codata_constant_type("electron-neutron mag. mom. ratio", & 960.92050_dp, 0.00023_dp, & "") !! electron-neutron mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & -codata_constant("electron-neutron mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & +codata_constant_type("electron-neutron mass ratio", & 5.4386734424e-4_dp, 0.0000000026e-4_dp, & "") !! electron-neutron mass ratio -type(codata_constant), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & -codata_constant("electron-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("electron-proton mag. mom. ratio", & -658.21068789_dp, 0.00000020_dp, & "") !! electron-proton mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & -codata_constant("electron-proton mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & +codata_constant_type("electron-proton mass ratio", & 5.44617021487e-4_dp, 0.00000000033e-4_dp, & "") !! electron-proton mass ratio -type(codata_constant), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & -codata_constant("electron relative atomic mass", & +type(codata_constant_type), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("electron relative atomic mass", & 5.48579909065e-4_dp, 0.00000000016e-4_dp, & "") !! electron relative atomic mass -type(codata_constant), parameter, public :: ELECTRON_TAU_MASS_RATIO = & -codata_constant("electron-tau mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TAU_MASS_RATIO = & +codata_constant_type("electron-tau mass ratio", & 2.87585e-4_dp, 0.00019e-4_dp, & "") !! electron-tau mass ratio -type(codata_constant), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & -codata_constant("electron to alpha particle mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & +codata_constant_type("electron to alpha particle mass ratio", & 1.370933554787e-4_dp, 0.000000000045e-4_dp, & "") !! electron to alpha particle mass ratio -type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & -codata_constant("electron to shielded helion mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & +codata_constant_type("electron to shielded helion mag. mom. ratio", & 864.058257_dp, 0.000010_dp, & "") !! electron to shielded helion mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & -codata_constant("electron to shielded proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant_type("electron to shielded proton mag. mom. ratio", & -658.2275971_dp, 0.0000072_dp, & "") !! electron to shielded proton mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & -codata_constant("electron-triton mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & +codata_constant_type("electron-triton mass ratio", & 1.819200062251e-4_dp, 0.000000000090e-4_dp, & "") !! electron-triton mass ratio -type(codata_constant), parameter, public :: ELECTRON_VOLT = & -codata_constant("electron volt", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT = & +codata_constant_type("electron volt", & 1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt -type(codata_constant), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("electron volt-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("electron volt-atomic mass unit relationship", & 1.07354410233e-9_dp, 0.00000000032e-9_dp, & "u") !! electron volt-atomic mass unit relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & -codata_constant("electron volt-hartree relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & +codata_constant_type("electron volt-hartree relationship", & 3.6749322175655e-2_dp, 0.0000000000071e-2_dp, & "E_h") !! electron volt-hartree relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & -codata_constant("electron volt-hertz relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & +codata_constant_type("electron volt-hertz relationship", & 2.417989242e14_dp, 0.0_dp, & "Hz") !! electron volt-hertz relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & -codata_constant("electron volt-inverse meter relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("electron volt-inverse meter relationship", & 8.065543937e5_dp, 0.0_dp, & "m^-1") !! electron volt-inverse meter relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & -codata_constant("electron volt-joule relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & +codata_constant_type("electron volt-joule relationship", & 1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt-joule relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & -codata_constant("electron volt-kelvin relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & +codata_constant_type("electron volt-kelvin relationship", & 1.160451812e4_dp, 0.0_dp, & "K") !! electron volt-kelvin relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & -codata_constant("electron volt-kilogram relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & +codata_constant_type("electron volt-kilogram relationship", & 1.782661921e-36_dp, 0.0_dp, & "kg") !! electron volt-kilogram relationship -type(codata_constant), parameter, public :: ELEMENTARY_CHARGE = & -codata_constant("elementary charge", & +type(codata_constant_type), parameter, public :: ELEMENTARY_CHARGE = & +codata_constant_type("elementary charge", & 1.602176634e-19_dp, 0.0_dp, & "C") !! elementary charge -type(codata_constant), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & -codata_constant("elementary charge over h-bar", & +type(codata_constant_type), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & +codata_constant_type("elementary charge over h-bar", & 1.519267447e15_dp, 0.0_dp, & "A J^-1") !! elementary charge over h-bar -type(codata_constant), parameter, public :: FARADAY_CONSTANT = & -codata_constant("Faraday constant", & +type(codata_constant_type), parameter, public :: FARADAY_CONSTANT = & +codata_constant_type("Faraday constant", & 96485.33212_dp, 0.0_dp, & "C mol^-1") !! Faraday constant -type(codata_constant), parameter, public :: FERMI_COUPLING_CONSTANT = & -codata_constant("Fermi coupling constant", & +type(codata_constant_type), parameter, public :: FERMI_COUPLING_CONSTANT = & +codata_constant_type("Fermi coupling constant", & 1.1663787e-5_dp, 0.0000006e-5_dp, & "GeV^-2") !! Fermi coupling constant -type(codata_constant), parameter, public :: FINE_STRUCTURE_CONSTANT = & -codata_constant("fine-structure constant", & +type(codata_constant_type), parameter, public :: FINE_STRUCTURE_CONSTANT = & +codata_constant_type("fine-structure constant", & 7.2973525693e-3_dp, 0.0000000011e-3_dp, & "") !! fine-structure constant -type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT = & -codata_constant("first radiation constant", & +type(codata_constant_type), parameter, public :: FIRST_RADIATION_CONSTANT = & +codata_constant_type("first radiation constant", & 3.741771852e-16_dp, 0.0_dp, & "W m^2") !! first radiation constant -type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & -codata_constant("first radiation constant for spectral radiance", & +type(codata_constant_type), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & +codata_constant_type("first radiation constant for spectral radiance", & 1.191042972e-16_dp, 0.0_dp, & "W m^2 sr^-1") !! first radiation constant for spectral radiance -type(codata_constant), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("hartree-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("hartree-atomic mass unit relationship", & 2.92126232205e-8_dp, 0.00000000088e-8_dp, & "u") !! hartree-atomic mass unit relationship -type(codata_constant), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("hartree-electron volt relationship", & +type(codata_constant_type), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("hartree-electron volt relationship", & 27.211386245988_dp, 0.000000000053_dp, & "eV") !! hartree-electron volt relationship -type(codata_constant), parameter, public :: HARTREE_ENERGY = & -codata_constant("Hartree energy", & +type(codata_constant_type), parameter, public :: HARTREE_ENERGY = & +codata_constant_type("Hartree energy", & 4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! Hartree energy -type(codata_constant), parameter, public :: HARTREE_ENERGY_IN_EV = & -codata_constant("Hartree energy in eV", & +type(codata_constant_type), parameter, public :: HARTREE_ENERGY_IN_EV = & +codata_constant_type("Hartree energy in eV", & 27.211386245988_dp, 0.000000000053_dp, & "eV") !! Hartree energy in eV -type(codata_constant), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & -codata_constant("hartree-hertz relationship", & +type(codata_constant_type), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & +codata_constant_type("hartree-hertz relationship", & 6.579683920502e15_dp, 0.000000000013e15_dp, & "Hz") !! hartree-hertz relationship -type(codata_constant), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & -codata_constant("hartree-inverse meter relationship", & +type(codata_constant_type), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("hartree-inverse meter relationship", & 2.1947463136320e7_dp, 0.0000000000043e7_dp, & "m^-1") !! hartree-inverse meter relationship -type(codata_constant), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & -codata_constant("hartree-joule relationship", & +type(codata_constant_type), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & +codata_constant_type("hartree-joule relationship", & 4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! hartree-joule relationship -type(codata_constant), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & -codata_constant("hartree-kelvin relationship", & +type(codata_constant_type), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & +codata_constant_type("hartree-kelvin relationship", & 3.1577502480407e5_dp, 0.0000000000061e5_dp, & "K") !! hartree-kelvin relationship -type(codata_constant), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & -codata_constant("hartree-kilogram relationship", & +type(codata_constant_type), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & +codata_constant_type("hartree-kilogram relationship", & 4.8508702095432e-35_dp, 0.0000000000094e-35_dp, & "kg") !! hartree-kilogram relationship -type(codata_constant), parameter, public :: HELION_ELECTRON_MASS_RATIO = & -codata_constant("helion-electron mass ratio", & +type(codata_constant_type), parameter, public :: HELION_ELECTRON_MASS_RATIO = & +codata_constant_type("helion-electron mass ratio", & 5495.88528007_dp, 0.00000024_dp, & "") !! helion-electron mass ratio -type(codata_constant), parameter, public :: HELION_G_FACTOR = & -codata_constant("helion g factor", & +type(codata_constant_type), parameter, public :: HELION_G_FACTOR = & +codata_constant_type("helion g factor", & -4.255250615_dp, 0.000000050_dp, & "") !! helion g factor -type(codata_constant), parameter, public :: HELION_MAG_MOM = & -codata_constant("helion mag. mom.", & +type(codata_constant_type), parameter, public :: HELION_MAG_MOM = & +codata_constant_type("helion mag. mom.", & -1.074617532e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! helion mag. mom. -type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("helion mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("helion mag. mom. to Bohr magneton ratio", & -1.158740958e-3_dp, 0.000000014e-3_dp, & "") !! helion mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("helion mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("helion mag. mom. to nuclear magneton ratio", & -2.127625307_dp, 0.000000025_dp, & "") !! helion mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: HELION_MASS = & -codata_constant("helion mass", & +type(codata_constant_type), parameter, public :: HELION_MASS = & +codata_constant_type("helion mass", & 5.0064127796e-27_dp, 0.0000000015e-27_dp, & "kg") !! helion mass -type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & -codata_constant("helion mass energy equivalent", & +type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("helion mass energy equivalent", & 4.4995394125e-10_dp, 0.0000000014e-10_dp, & "J") !! helion mass energy equivalent -type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("helion mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("helion mass energy equivalent in MeV", & 2808.39160743_dp, 0.00000085_dp, & "MeV") !! helion mass energy equivalent in MeV -type(codata_constant), parameter, public :: HELION_MASS_IN_U = & -codata_constant("helion mass in u", & +type(codata_constant_type), parameter, public :: HELION_MASS_IN_U = & +codata_constant_type("helion mass in u", & 3.014932247175_dp, 0.000000000097_dp, & "u") !! helion mass in u -type(codata_constant), parameter, public :: HELION_MOLAR_MASS = & -codata_constant("helion molar mass", & +type(codata_constant_type), parameter, public :: HELION_MOLAR_MASS = & +codata_constant_type("helion molar mass", & 3.01493224613e-3_dp, 0.00000000091e-3_dp, & "kg mol^-1") !! helion molar mass -type(codata_constant), parameter, public :: HELION_PROTON_MASS_RATIO = & -codata_constant("helion-proton mass ratio", & +type(codata_constant_type), parameter, public :: HELION_PROTON_MASS_RATIO = & +codata_constant_type("helion-proton mass ratio", & 2.99315267167_dp, 0.00000000013_dp, & "") !! helion-proton mass ratio -type(codata_constant), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & -codata_constant("helion relative atomic mass", & +type(codata_constant_type), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & +codata_constant_type("helion relative atomic mass", & 3.014932247175_dp, 0.000000000097_dp, & "") !! helion relative atomic mass -type(codata_constant), parameter, public :: HELION_SHIELDING_SHIFT = & -codata_constant("helion shielding shift", & +type(codata_constant_type), parameter, public :: HELION_SHIELDING_SHIFT = & +codata_constant_type("helion shielding shift", & 5.996743e-5_dp, 0.000010e-5_dp, & "") !! helion shielding shift -type(codata_constant), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("hertz-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("hertz-atomic mass unit relationship", & 4.4398216652e-24_dp, 0.0000000013e-24_dp, & "u") !! hertz-atomic mass unit relationship -type(codata_constant), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("hertz-electron volt relationship", & +type(codata_constant_type), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("hertz-electron volt relationship", & 4.135667696e-15_dp, 0.0_dp, & "eV") !! hertz-electron volt relationship -type(codata_constant), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & -codata_constant("hertz-hartree relationship", & +type(codata_constant_type), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & +codata_constant_type("hertz-hartree relationship", & 1.5198298460570e-16_dp, 0.0000000000029e-16_dp, & "E_h") !! hertz-hartree relationship -type(codata_constant), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & -codata_constant("hertz-inverse meter relationship", & +type(codata_constant_type), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("hertz-inverse meter relationship", & 3.335640951e-9_dp, 0.0_dp, & "m^-1") !! hertz-inverse meter relationship -type(codata_constant), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & -codata_constant("hertz-joule relationship", & +type(codata_constant_type), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & +codata_constant_type("hertz-joule relationship", & 6.62607015e-34_dp, 0.0_dp, & "J") !! hertz-joule relationship -type(codata_constant), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & -codata_constant("hertz-kelvin relationship", & +type(codata_constant_type), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & +codata_constant_type("hertz-kelvin relationship", & 4.799243073e-11_dp, 0.0_dp, & "K") !! hertz-kelvin relationship -type(codata_constant), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & -codata_constant("hertz-kilogram relationship", & +type(codata_constant_type), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & +codata_constant_type("hertz-kilogram relationship", & 7.372497323e-51_dp, 0.0_dp, & "kg") !! hertz-kilogram relationship -type(codata_constant), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & -codata_constant("hyperfine transition frequency of Cs-133", & +type(codata_constant_type), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & +codata_constant_type("hyperfine transition frequency of Cs-133", & 9192631770_dp, 0.0_dp, & "Hz") !! hyperfine transition frequency of Cs-133 -type(codata_constant), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & -codata_constant("inverse fine-structure constant", & +type(codata_constant_type), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & +codata_constant_type("inverse fine-structure constant", & 137.035999084_dp, 0.000000021_dp, & "") !! inverse fine-structure constant -type(codata_constant), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("inverse meter-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("inverse meter-atomic mass unit relationship", & 1.33102505010e-15_dp, 0.00000000040e-15_dp, & "u") !! inverse meter-atomic mass unit relationship -type(codata_constant), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("inverse meter-electron volt relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("inverse meter-electron volt relationship", & 1.239841984e-6_dp, 0.0_dp, & "eV") !! inverse meter-electron volt relationship -type(codata_constant), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & -codata_constant("inverse meter-hartree relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & +codata_constant_type("inverse meter-hartree relationship", & 4.5563352529120e-8_dp, 0.0000000000088e-8_dp, & "E_h") !! inverse meter-hartree relationship -type(codata_constant), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & -codata_constant("inverse meter-hertz relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & +codata_constant_type("inverse meter-hertz relationship", & 299792458_dp, 0.0_dp, & "Hz") !! inverse meter-hertz relationship -type(codata_constant), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & -codata_constant("inverse meter-joule relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & +codata_constant_type("inverse meter-joule relationship", & 1.986445857e-25_dp, 0.0_dp, & "J") !! inverse meter-joule relationship -type(codata_constant), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & -codata_constant("inverse meter-kelvin relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & +codata_constant_type("inverse meter-kelvin relationship", & 1.438776877e-2_dp, 0.0_dp, & "K") !! inverse meter-kelvin relationship -type(codata_constant), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & -codata_constant("inverse meter-kilogram relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & +codata_constant_type("inverse meter-kilogram relationship", & 2.210219094e-42_dp, 0.0_dp, & "kg") !! inverse meter-kilogram relationship -type(codata_constant), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & -codata_constant("inverse of conductance quantum", & +type(codata_constant_type), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & +codata_constant_type("inverse of conductance quantum", & 12906.40372_dp, 0.0_dp, & "ohm") !! inverse of conductance quantum -type(codata_constant), parameter, public :: JOSEPHSON_CONSTANT = & -codata_constant("Josephson constant", & +type(codata_constant_type), parameter, public :: JOSEPHSON_CONSTANT = & +codata_constant_type("Josephson constant", & 483597.8484e9_dp, 0.0_dp, & "Hz V^-1") !! Josephson constant -type(codata_constant), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("joule-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("joule-atomic mass unit relationship", & 6.7005352565e9_dp, 0.0000000020e9_dp, & "u") !! joule-atomic mass unit relationship -type(codata_constant), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("joule-electron volt relationship", & +type(codata_constant_type), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("joule-electron volt relationship", & 6.241509074e18_dp, 0.0_dp, & "eV") !! joule-electron volt relationship -type(codata_constant), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & -codata_constant("joule-hartree relationship", & +type(codata_constant_type), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & +codata_constant_type("joule-hartree relationship", & 2.2937122783963e17_dp, 0.0000000000045e17_dp, & "E_h") !! joule-hartree relationship -type(codata_constant), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & -codata_constant("joule-hertz relationship", & +type(codata_constant_type), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & +codata_constant_type("joule-hertz relationship", & 1.509190179e33_dp, 0.0_dp, & "Hz") !! joule-hertz relationship -type(codata_constant), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & -codata_constant("joule-inverse meter relationship", & +type(codata_constant_type), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("joule-inverse meter relationship", & 5.034116567e24_dp, 0.0_dp, & "m^-1") !! joule-inverse meter relationship -type(codata_constant), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & -codata_constant("joule-kelvin relationship", & +type(codata_constant_type), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & +codata_constant_type("joule-kelvin relationship", & 7.242970516e22_dp, 0.0_dp, & "K") !! joule-kelvin relationship -type(codata_constant), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & -codata_constant("joule-kilogram relationship", & +type(codata_constant_type), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & +codata_constant_type("joule-kilogram relationship", & 1.112650056e-17_dp, 0.0_dp, & "kg") !! joule-kilogram relationship -type(codata_constant), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("kelvin-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("kelvin-atomic mass unit relationship", & 9.2510873014e-14_dp, 0.0000000028e-14_dp, & "u") !! kelvin-atomic mass unit relationship -type(codata_constant), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("kelvin-electron volt relationship", & +type(codata_constant_type), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("kelvin-electron volt relationship", & 8.617333262e-5_dp, 0.0_dp, & "eV") !! kelvin-electron volt relationship -type(codata_constant), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & -codata_constant("kelvin-hartree relationship", & +type(codata_constant_type), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & +codata_constant_type("kelvin-hartree relationship", & 3.1668115634556e-6_dp, 0.0000000000061e-6_dp, & "E_h") !! kelvin-hartree relationship -type(codata_constant), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & -codata_constant("kelvin-hertz relationship", & +type(codata_constant_type), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & +codata_constant_type("kelvin-hertz relationship", & 2.083661912e10_dp, 0.0_dp, & "Hz") !! kelvin-hertz relationship -type(codata_constant), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & -codata_constant("kelvin-inverse meter relationship", & +type(codata_constant_type), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("kelvin-inverse meter relationship", & 69.50348004_dp, 0.0_dp, & "m^-1") !! kelvin-inverse meter relationship -type(codata_constant), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & -codata_constant("kelvin-joule relationship", & +type(codata_constant_type), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & +codata_constant_type("kelvin-joule relationship", & 1.380649e-23_dp, 0.0_dp, & "J") !! kelvin-joule relationship -type(codata_constant), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & -codata_constant("kelvin-kilogram relationship", & +type(codata_constant_type), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & +codata_constant_type("kelvin-kilogram relationship", & 1.536179187e-40_dp, 0.0_dp, & "kg") !! kelvin-kilogram relationship -type(codata_constant), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("kilogram-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("kilogram-atomic mass unit relationship", & 6.0221407621e26_dp, 0.0000000018e26_dp, & "u") !! kilogram-atomic mass unit relationship -type(codata_constant), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("kilogram-electron volt relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("kilogram-electron volt relationship", & 5.609588603e35_dp, 0.0_dp, & "eV") !! kilogram-electron volt relationship -type(codata_constant), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & -codata_constant("kilogram-hartree relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & +codata_constant_type("kilogram-hartree relationship", & 2.0614857887409e34_dp, 0.0000000000040e34_dp, & "E_h") !! kilogram-hartree relationship -type(codata_constant), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & -codata_constant("kilogram-hertz relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & +codata_constant_type("kilogram-hertz relationship", & 1.356392489e50_dp, 0.0_dp, & "Hz") !! kilogram-hertz relationship -type(codata_constant), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & -codata_constant("kilogram-inverse meter relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("kilogram-inverse meter relationship", & 4.524438335e41_dp, 0.0_dp, & "m^-1") !! kilogram-inverse meter relationship -type(codata_constant), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & -codata_constant("kilogram-joule relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & +codata_constant_type("kilogram-joule relationship", & 8.987551787e16_dp, 0.0_dp, & "J") !! kilogram-joule relationship -type(codata_constant), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & -codata_constant("kilogram-kelvin relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & +codata_constant_type("kilogram-kelvin relationship", & 6.509657260e39_dp, 0.0_dp, & "K") !! kilogram-kelvin relationship -type(codata_constant), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & -codata_constant("lattice parameter of silicon", & +type(codata_constant_type), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & +codata_constant_type("lattice parameter of silicon", & 5.431020511e-10_dp, 0.000000089e-10_dp, & "m") !! lattice parameter of silicon -type(codata_constant), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & -codata_constant("lattice spacing of ideal Si (220)", & +type(codata_constant_type), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & +codata_constant_type("lattice spacing of ideal Si (220)", & 1.920155716e-10_dp, 0.000000032e-10_dp, & "m") !! lattice spacing of ideal Si (220) -type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & -codata_constant("Loschmidt constant (273.15 K, 100 kPa)", & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & +codata_constant_type("Loschmidt constant (273.15 K, 100 kPa)", & 2.651645804e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 100 kPa) -type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & -codata_constant("Loschmidt constant (273.15 K, 101.325 kPa)", & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & +codata_constant_type("Loschmidt constant (273.15 K, 101.325 kPa)", & 2.686780111e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) -type(codata_constant), parameter, public :: LUMINOUS_EFFICACY = & -codata_constant("luminous efficacy", & +type(codata_constant_type), parameter, public :: LUMINOUS_EFFICACY = & +codata_constant_type("luminous efficacy", & 683_dp, 0.0_dp, & "lm W^-1") !! luminous efficacy -type(codata_constant), parameter, public :: MAG_FLUX_QUANTUM = & -codata_constant("mag. flux quantum", & +type(codata_constant_type), parameter, public :: MAG_FLUX_QUANTUM = & +codata_constant_type("mag. flux quantum", & 2.067833848e-15_dp, 0.0_dp, & "Wb") !! mag. flux quantum -type(codata_constant), parameter, public :: MOLAR_GAS_CONSTANT = & -codata_constant("molar gas constant", & +type(codata_constant_type), parameter, public :: MOLAR_GAS_CONSTANT = & +codata_constant_type("molar gas constant", & 8.314462618_dp, 0.0_dp, & "J mol^-1 K^-1") !! molar gas constant -type(codata_constant), parameter, public :: MOLAR_MASS_CONSTANT = & -codata_constant("molar mass constant", & +type(codata_constant_type), parameter, public :: MOLAR_MASS_CONSTANT = & +codata_constant_type("molar mass constant", & 0.99999999965e-3_dp, 0.00000000030e-3_dp, & "kg mol^-1") !! molar mass constant -type(codata_constant), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & -codata_constant("molar mass of carbon-12", & +type(codata_constant_type), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & +codata_constant_type("molar mass of carbon-12", & 11.9999999958e-3_dp, 0.0000000036e-3_dp, & "kg mol^-1") !! molar mass of carbon-12 -type(codata_constant), parameter, public :: MOLAR_PLANCK_CONSTANT = & -codata_constant("molar Planck constant", & +type(codata_constant_type), parameter, public :: MOLAR_PLANCK_CONSTANT = & +codata_constant_type("molar Planck constant", & 3.990312712e-10_dp, 0.0_dp, & "J Hz^-1 mol^-1") !! molar Planck constant -type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & -codata_constant("molar volume of ideal gas (273.15 K, 100 kPa)", & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & +codata_constant_type("molar volume of ideal gas (273.15 K, 100 kPa)", & 22.71095464e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) -type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & -codata_constant("molar volume of ideal gas (273.15 K, 101.325 kPa)", & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & +codata_constant_type("molar volume of ideal gas (273.15 K, 101.325 kPa)", & 22.41396954e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) -type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_SILICON = & -codata_constant("molar volume of silicon", & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_SILICON = & +codata_constant_type("molar volume of silicon", & 1.205883199e-5_dp, 0.000000060e-5_dp, & "m^3 mol^-1") !! molar volume of silicon -type(codata_constant), parameter, public :: MOLYBDENUM_X_UNIT = & -codata_constant("Molybdenum x unit", & +type(codata_constant_type), parameter, public :: MOLYBDENUM_X_UNIT = & +codata_constant_type("Molybdenum x unit", & 1.00209952e-13_dp, 0.00000053e-13_dp, & "m") !! Molybdenum x unit -type(codata_constant), parameter, public :: MUON_COMPTON_WAVELENGTH = & -codata_constant("muon Compton wavelength", & +type(codata_constant_type), parameter, public :: MUON_COMPTON_WAVELENGTH = & +codata_constant_type("muon Compton wavelength", & 1.173444110e-14_dp, 0.000000026e-14_dp, & "m") !! muon Compton wavelength -type(codata_constant), parameter, public :: MUON_ELECTRON_MASS_RATIO = & -codata_constant("muon-electron mass ratio", & +type(codata_constant_type), parameter, public :: MUON_ELECTRON_MASS_RATIO = & +codata_constant_type("muon-electron mass ratio", & 206.7682830_dp, 0.0000046_dp, & "") !! muon-electron mass ratio -type(codata_constant), parameter, public :: MUON_G_FACTOR = & -codata_constant("muon g factor", & +type(codata_constant_type), parameter, public :: MUON_G_FACTOR = & +codata_constant_type("muon g factor", & -2.0023318418_dp, 0.0000000013_dp, & "") !! muon g factor -type(codata_constant), parameter, public :: MUON_MAG_MOM = & -codata_constant("muon mag. mom.", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM = & +codata_constant_type("muon mag. mom.", & -4.49044830e-26_dp, 0.00000010e-26_dp, & "J T^-1") !! muon mag. mom. -type(codata_constant), parameter, public :: MUON_MAG_MOM_ANOMALY = & -codata_constant("muon mag. mom. anomaly", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM_ANOMALY = & +codata_constant_type("muon mag. mom. anomaly", & 1.16592089e-3_dp, 0.00000063e-3_dp, & "") !! muon mag. mom. anomaly -type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("muon mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("muon mag. mom. to Bohr magneton ratio", & -4.84197047e-3_dp, 0.00000011e-3_dp, & "") !! muon mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("muon mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("muon mag. mom. to nuclear magneton ratio", & -8.89059703_dp, 0.00000020_dp, & "") !! muon mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: MUON_MASS = & -codata_constant("muon mass", & +type(codata_constant_type), parameter, public :: MUON_MASS = & +codata_constant_type("muon mass", & 1.883531627e-28_dp, 0.000000042e-28_dp, & "kg") !! muon mass -type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & -codata_constant("muon mass energy equivalent", & +type(codata_constant_type), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("muon mass energy equivalent", & 1.692833804e-11_dp, 0.000000038e-11_dp, & "J") !! muon mass energy equivalent -type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("muon mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("muon mass energy equivalent in MeV", & 105.6583755_dp, 0.0000023_dp, & "MeV") !! muon mass energy equivalent in MeV -type(codata_constant), parameter, public :: MUON_MASS_IN_U = & -codata_constant("muon mass in u", & +type(codata_constant_type), parameter, public :: MUON_MASS_IN_U = & +codata_constant_type("muon mass in u", & 0.1134289259_dp, 0.0000000025_dp, & "u") !! muon mass in u -type(codata_constant), parameter, public :: MUON_MOLAR_MASS = & -codata_constant("muon molar mass", & +type(codata_constant_type), parameter, public :: MUON_MOLAR_MASS = & +codata_constant_type("muon molar mass", & 1.134289259e-4_dp, 0.000000025e-4_dp, & "kg mol^-1") !! muon molar mass -type(codata_constant), parameter, public :: MUON_NEUTRON_MASS_RATIO = & -codata_constant("muon-neutron mass ratio", & +type(codata_constant_type), parameter, public :: MUON_NEUTRON_MASS_RATIO = & +codata_constant_type("muon-neutron mass ratio", & 0.1124545170_dp, 0.0000000025_dp, & "") !! muon-neutron mass ratio -type(codata_constant), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & -codata_constant("muon-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("muon-proton mag. mom. ratio", & -3.183345142_dp, 0.000000071_dp, & "") !! muon-proton mag. mom. ratio -type(codata_constant), parameter, public :: MUON_PROTON_MASS_RATIO = & -codata_constant("muon-proton mass ratio", & +type(codata_constant_type), parameter, public :: MUON_PROTON_MASS_RATIO = & +codata_constant_type("muon-proton mass ratio", & 0.1126095264_dp, 0.0000000025_dp, & "") !! muon-proton mass ratio -type(codata_constant), parameter, public :: MUON_TAU_MASS_RATIO = & -codata_constant("muon-tau mass ratio", & +type(codata_constant_type), parameter, public :: MUON_TAU_MASS_RATIO = & +codata_constant_type("muon-tau mass ratio", & 5.94635e-2_dp, 0.00040e-2_dp, & "") !! muon-tau mass ratio -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION = & -codata_constant("natural unit of action", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ACTION = & +codata_constant_type("natural unit of action", & 1.054571817e-34_dp, 0.0_dp, & "J s") !! natural unit of action -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & -codata_constant("natural unit of action in eV s", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & +codata_constant_type("natural unit of action in eV s", & 6.582119569e-16_dp, 0.0_dp, & "eV s") !! natural unit of action in eV s -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY = & -codata_constant("natural unit of energy", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY = & +codata_constant_type("natural unit of energy", & 8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! natural unit of energy -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & -codata_constant("natural unit of energy in MeV", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & +codata_constant_type("natural unit of energy in MeV", & 0.51099895000_dp, 0.00000000015_dp, & "MeV") !! natural unit of energy in MeV -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_LENGTH = & -codata_constant("natural unit of length", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_LENGTH = & +codata_constant_type("natural unit of length", & 3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! natural unit of length -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MASS = & -codata_constant("natural unit of mass", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MASS = & +codata_constant_type("natural unit of mass", & 9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! natural unit of mass -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & -codata_constant("natural unit of momentum", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & +codata_constant_type("natural unit of momentum", & 2.73092453075e-22_dp, 0.00000000082e-22_dp, & "kg m s^-1") !! natural unit of momentum -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & -codata_constant("natural unit of momentum in MeV/c", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & +codata_constant_type("natural unit of momentum in MeV/c", & 0.51099895000_dp, 0.00000000015_dp, & "MeV/c") !! natural unit of momentum in MeV/c -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_TIME = & -codata_constant("natural unit of time", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_TIME = & +codata_constant_type("natural unit of time", & 1.28808866819e-21_dp, 0.00000000039e-21_dp, & "s") !! natural unit of time -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & -codata_constant("natural unit of velocity", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & +codata_constant_type("natural unit of velocity", & 299792458_dp, 0.0_dp, & "m s^-1") !! natural unit of velocity -type(codata_constant), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & -codata_constant("neutron Compton wavelength", & +type(codata_constant_type), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & +codata_constant_type("neutron Compton wavelength", & 1.31959090581e-15_dp, 0.00000000075e-15_dp, & "m") !! neutron Compton wavelength -type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & -codata_constant("neutron-electron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & +codata_constant_type("neutron-electron mag. mom. ratio", & 1.04066882e-3_dp, 0.00000025e-3_dp, & "") !! neutron-electron mag. mom. ratio -type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & -codata_constant("neutron-electron mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & +codata_constant_type("neutron-electron mass ratio", & 1838.68366173_dp, 0.00000089_dp, & "") !! neutron-electron mass ratio -type(codata_constant), parameter, public :: NEUTRON_G_FACTOR = & -codata_constant("neutron g factor", & +type(codata_constant_type), parameter, public :: NEUTRON_G_FACTOR = & +codata_constant_type("neutron g factor", & -3.82608545_dp, 0.00000090_dp, & "") !! neutron g factor -type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO = & -codata_constant("neutron gyromag. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO = & +codata_constant_type("neutron gyromag. ratio", & 1.83247171e8_dp, 0.00000043e8_dp, & "s^-1 T^-1") !! neutron gyromag. ratio -type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("neutron gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("neutron gyromag. ratio in MHz/T", & 29.1646931_dp, 0.0000069_dp, & "MHz T^-1") !! neutron gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: NEUTRON_MAG_MOM = & -codata_constant("neutron mag. mom.", & +type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM = & +codata_constant_type("neutron mag. mom.", & -9.6623651e-27_dp, 0.0000023e-27_dp, & "J T^-1") !! neutron mag. mom. -type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("neutron mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("neutron mag. mom. to Bohr magneton ratio", & -1.04187563e-3_dp, 0.00000025e-3_dp, & "") !! neutron mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("neutron mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("neutron mag. mom. to nuclear magneton ratio", & -1.91304273_dp, 0.00000045_dp, & "") !! neutron mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: NEUTRON_MASS = & -codata_constant("neutron mass", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS = & +codata_constant_type("neutron mass", & 1.67492749804e-27_dp, 0.00000000095e-27_dp, & "kg") !! neutron mass -type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & -codata_constant("neutron mass energy equivalent", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("neutron mass energy equivalent", & 1.50534976287e-10_dp, 0.00000000086e-10_dp, & "J") !! neutron mass energy equivalent -type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("neutron mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("neutron mass energy equivalent in MeV", & 939.56542052_dp, 0.00000054_dp, & "MeV") !! neutron mass energy equivalent in MeV -type(codata_constant), parameter, public :: NEUTRON_MASS_IN_U = & -codata_constant("neutron mass in u", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS_IN_U = & +codata_constant_type("neutron mass in u", & 1.00866491595_dp, 0.00000000049_dp, & "u") !! neutron mass in u -type(codata_constant), parameter, public :: NEUTRON_MOLAR_MASS = & -codata_constant("neutron molar mass", & +type(codata_constant_type), parameter, public :: NEUTRON_MOLAR_MASS = & +codata_constant_type("neutron molar mass", & 1.00866491560e-3_dp, 0.00000000057e-3_dp, & "kg mol^-1") !! neutron molar mass -type(codata_constant), parameter, public :: NEUTRON_MUON_MASS_RATIO = & -codata_constant("neutron-muon mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_MUON_MASS_RATIO = & +codata_constant_type("neutron-muon mass ratio", & 8.89248406_dp, 0.00000020_dp, & "") !! neutron-muon mass ratio -type(codata_constant), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & -codata_constant("neutron-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("neutron-proton mag. mom. ratio", & -0.68497934_dp, 0.00000016_dp, & "") !! neutron-proton mag. mom. ratio -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & -codata_constant("neutron-proton mass difference", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & +codata_constant_type("neutron-proton mass difference", & 2.30557435e-30_dp, 0.00000082e-30_dp, & "kg") !! neutron-proton mass difference -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & -codata_constant("neutron-proton mass difference energy equivalent", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & +codata_constant_type("neutron-proton mass difference energy equivalent", & 2.07214689e-13_dp, 0.00000074e-13_dp, & "J") !! neutron-proton mass difference energy equivalent -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("neutron-proton mass difference energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("neutron-proton mass difference energy equivalent in MeV", & 1.29333236_dp, 0.00000046_dp, & "MeV") !! neutron-proton mass difference energy equivalent in MeV -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & -codata_constant("neutron-proton mass difference in u", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & +codata_constant_type("neutron-proton mass difference in u", & 1.38844933e-3_dp, 0.00000049e-3_dp, & "u") !! neutron-proton mass difference in u -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & -codata_constant("neutron-proton mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & +codata_constant_type("neutron-proton mass ratio", & 1.00137841931_dp, 0.00000000049_dp, & "") !! neutron-proton mass ratio -type(codata_constant), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & -codata_constant("neutron relative atomic mass", & +type(codata_constant_type), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("neutron relative atomic mass", & 1.00866491595_dp, 0.00000000049_dp, & "") !! neutron relative atomic mass -type(codata_constant), parameter, public :: NEUTRON_TAU_MASS_RATIO = & -codata_constant("neutron-tau mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_TAU_MASS_RATIO = & +codata_constant_type("neutron-tau mass ratio", & 0.528779_dp, 0.000036_dp, & "") !! neutron-tau mass ratio -type(codata_constant), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & -codata_constant("neutron to shielded proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant_type("neutron to shielded proton mag. mom. ratio", & -0.68499694_dp, 0.00000016_dp, & "") !! neutron to shielded proton mag. mom. ratio -type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & -codata_constant("Newtonian constant of gravitation", & +type(codata_constant_type), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & +codata_constant_type("Newtonian constant of gravitation", & 6.67430e-11_dp, 0.00015e-11_dp, & "m^3 kg^-1 s^-2") !! Newtonian constant of gravitation -type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & -codata_constant("Newtonian constant of gravitation over h-bar c", & +type(codata_constant_type), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & +codata_constant_type("Newtonian constant of gravitation over h-bar c", & 6.70883e-39_dp, 0.00015e-39_dp, & "(GeV/c^2)^-2") !! Newtonian constant of gravitation over h-bar c -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON = & -codata_constant("nuclear magneton", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON = & +codata_constant_type("nuclear magneton", & 5.0507837461e-27_dp, 0.0000000015e-27_dp, & "J T^-1") !! nuclear magneton -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & -codata_constant("nuclear magneton in eV/T", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & +codata_constant_type("nuclear magneton in eV/T", & 3.15245125844e-8_dp, 0.00000000096e-8_dp, & "eV T^-1") !! nuclear magneton in eV/T -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & -codata_constant("nuclear magneton in inverse meter per tesla", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant_type("nuclear magneton in inverse meter per tesla", & 2.54262341353e-2_dp, 0.00000000078e-2_dp, & "m^-1 T^-1") !! nuclear magneton in inverse meter per tesla -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & -codata_constant("nuclear magneton in K/T", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & +codata_constant_type("nuclear magneton in K/T", & 3.6582677756e-4_dp, 0.0000000011e-4_dp, & "K T^-1") !! nuclear magneton in K/T -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & -codata_constant("nuclear magneton in MHz/T", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & +codata_constant_type("nuclear magneton in MHz/T", & 7.6225932291_dp, 0.0000000023_dp, & "MHz T^-1") !! nuclear magneton in MHz/T -type(codata_constant), parameter, public :: PLANCK_CONSTANT = & -codata_constant("Planck constant", & +type(codata_constant_type), parameter, public :: PLANCK_CONSTANT = & +codata_constant_type("Planck constant", & 6.62607015e-34_dp, 0.0_dp, & "J Hz^-1") !! Planck constant -type(codata_constant), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & -codata_constant("Planck constant in eV/Hz", & +type(codata_constant_type), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & +codata_constant_type("Planck constant in eV/Hz", & 4.135667696e-15_dp, 0.0_dp, & "eV Hz^-1") !! Planck constant in eV/Hz -type(codata_constant), parameter, public :: PLANCK_LENGTH = & -codata_constant("Planck length", & +type(codata_constant_type), parameter, public :: PLANCK_LENGTH = & +codata_constant_type("Planck length", & 1.616255e-35_dp, 0.000018e-35_dp, & "m") !! Planck length -type(codata_constant), parameter, public :: PLANCK_MASS = & -codata_constant("Planck mass", & +type(codata_constant_type), parameter, public :: PLANCK_MASS = & +codata_constant_type("Planck mass", & 2.176434e-8_dp, 0.000024e-8_dp, & "kg") !! Planck mass -type(codata_constant), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & -codata_constant("Planck mass energy equivalent in GeV", & +type(codata_constant_type), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & +codata_constant_type("Planck mass energy equivalent in GeV", & 1.220890e19_dp, 0.000014e19_dp, & "GeV") !! Planck mass energy equivalent in GeV -type(codata_constant), parameter, public :: PLANCK_TEMPERATURE = & -codata_constant("Planck temperature", & +type(codata_constant_type), parameter, public :: PLANCK_TEMPERATURE = & +codata_constant_type("Planck temperature", & 1.416784e32_dp, 0.000016e32_dp, & "K") !! Planck temperature -type(codata_constant), parameter, public :: PLANCK_TIME = & -codata_constant("Planck time", & +type(codata_constant_type), parameter, public :: PLANCK_TIME = & +codata_constant_type("Planck time", & 5.391247e-44_dp, 0.000060e-44_dp, & "s") !! Planck time -type(codata_constant), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & -codata_constant("proton charge to mass quotient", & +type(codata_constant_type), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant_type("proton charge to mass quotient", & 9.5788331560e7_dp, 0.0000000029e7_dp, & "C kg^-1") !! proton charge to mass quotient -type(codata_constant), parameter, public :: PROTON_COMPTON_WAVELENGTH = & -codata_constant("proton Compton wavelength", & +type(codata_constant_type), parameter, public :: PROTON_COMPTON_WAVELENGTH = & +codata_constant_type("proton Compton wavelength", & 1.32140985539e-15_dp, 0.00000000040e-15_dp, & "m") !! proton Compton wavelength -type(codata_constant), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & -codata_constant("proton-electron mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & +codata_constant_type("proton-electron mass ratio", & 1836.15267343_dp, 0.00000011_dp, & "") !! proton-electron mass ratio -type(codata_constant), parameter, public :: PROTON_G_FACTOR = & -codata_constant("proton g factor", & +type(codata_constant_type), parameter, public :: PROTON_G_FACTOR = & +codata_constant_type("proton g factor", & 5.5856946893_dp, 0.0000000016_dp, & "") !! proton g factor -type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO = & -codata_constant("proton gyromag. ratio", & +type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO = & +codata_constant_type("proton gyromag. ratio", & 2.6752218744e8_dp, 0.0000000011e8_dp, & "s^-1 T^-1") !! proton gyromag. ratio -type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("proton gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("proton gyromag. ratio in MHz/T", & 42.577478518_dp, 0.000000018_dp, & "MHz T^-1") !! proton gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: PROTON_MAG_MOM = & -codata_constant("proton mag. mom.", & +type(codata_constant_type), parameter, public :: PROTON_MAG_MOM = & +codata_constant_type("proton mag. mom.", & 1.41060679736e-26_dp, 0.00000000060e-26_dp, & "J T^-1") !! proton mag. mom. -type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("proton mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("proton mag. mom. to Bohr magneton ratio", & 1.52103220230e-3_dp, 0.00000000046e-3_dp, & "") !! proton mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("proton mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("proton mag. mom. to nuclear magneton ratio", & 2.79284734463_dp, 0.00000000082_dp, & "") !! proton mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & -codata_constant("proton mag. shielding correction", & +type(codata_constant_type), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & +codata_constant_type("proton mag. shielding correction", & 2.5689e-5_dp, 0.0011e-5_dp, & "") !! proton mag. shielding correction -type(codata_constant), parameter, public :: PROTON_MASS = & -codata_constant("proton mass", & +type(codata_constant_type), parameter, public :: PROTON_MASS = & +codata_constant_type("proton mass", & 1.67262192369e-27_dp, 0.00000000051e-27_dp, & "kg") !! proton mass -type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & -codata_constant("proton mass energy equivalent", & +type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("proton mass energy equivalent", & 1.50327761598e-10_dp, 0.00000000046e-10_dp, & "J") !! proton mass energy equivalent -type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("proton mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("proton mass energy equivalent in MeV", & 938.27208816_dp, 0.00000029_dp, & "MeV") !! proton mass energy equivalent in MeV -type(codata_constant), parameter, public :: PROTON_MASS_IN_U = & -codata_constant("proton mass in u", & +type(codata_constant_type), parameter, public :: PROTON_MASS_IN_U = & +codata_constant_type("proton mass in u", & 1.007276466621_dp, 0.000000000053_dp, & "u") !! proton mass in u -type(codata_constant), parameter, public :: PROTON_MOLAR_MASS = & -codata_constant("proton molar mass", & +type(codata_constant_type), parameter, public :: PROTON_MOLAR_MASS = & +codata_constant_type("proton molar mass", & 1.00727646627e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! proton molar mass -type(codata_constant), parameter, public :: PROTON_MUON_MASS_RATIO = & -codata_constant("proton-muon mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_MUON_MASS_RATIO = & +codata_constant_type("proton-muon mass ratio", & 8.88024337_dp, 0.00000020_dp, & "") !! proton-muon mass ratio -type(codata_constant), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & -codata_constant("proton-neutron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & +codata_constant_type("proton-neutron mag. mom. ratio", & -1.45989805_dp, 0.00000034_dp, & "") !! proton-neutron mag. mom. ratio -type(codata_constant), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & -codata_constant("proton-neutron mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & +codata_constant_type("proton-neutron mass ratio", & 0.99862347812_dp, 0.00000000049_dp, & "") !! proton-neutron mass ratio -type(codata_constant), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & -codata_constant("proton relative atomic mass", & +type(codata_constant_type), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("proton relative atomic mass", & 1.007276466621_dp, 0.000000000053_dp, & "") !! proton relative atomic mass -type(codata_constant), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & -codata_constant("proton rms charge radius", & +type(codata_constant_type), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & +codata_constant_type("proton rms charge radius", & 8.414e-16_dp, 0.019e-16_dp, & "m") !! proton rms charge radius -type(codata_constant), parameter, public :: PROTON_TAU_MASS_RATIO = & -codata_constant("proton-tau mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_TAU_MASS_RATIO = & +codata_constant_type("proton-tau mass ratio", & 0.528051_dp, 0.000036_dp, & "") !! proton-tau mass ratio -type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION = & -codata_constant("quantum of circulation", & +type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION = & +codata_constant_type("quantum of circulation", & 3.6369475516e-4_dp, 0.0000000011e-4_dp, & "m^2 s^-1") !! quantum of circulation -type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & -codata_constant("quantum of circulation times 2", & +type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & +codata_constant_type("quantum of circulation times 2", & 7.2738951032e-4_dp, 0.0000000022e-4_dp, & "m^2 s^-1") !! quantum of circulation times 2 -type(codata_constant), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & -codata_constant("reduced Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & +codata_constant_type("reduced Compton wavelength", & 3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! reduced Compton wavelength -type(codata_constant), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & -codata_constant("reduced muon Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & +codata_constant_type("reduced muon Compton wavelength", & 1.867594306e-15_dp, 0.000000042e-15_dp, & "m") !! reduced muon Compton wavelength -type(codata_constant), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & -codata_constant("reduced neutron Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & +codata_constant_type("reduced neutron Compton wavelength", & 2.1001941552e-16_dp, 0.0000000012e-16_dp, & "m") !! reduced neutron Compton wavelength -type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT = & -codata_constant("reduced Planck constant", & +type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT = & +codata_constant_type("reduced Planck constant", & 1.054571817e-34_dp, 0.0_dp, & "J s") !! reduced Planck constant -type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & -codata_constant("reduced Planck constant in eV s", & +type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & +codata_constant_type("reduced Planck constant in eV s", & 6.582119569e-16_dp, 0.0_dp, & "eV s") !! reduced Planck constant in eV s -type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & -codata_constant("reduced Planck constant times c in MeV fm", & +type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & +codata_constant_type("reduced Planck constant times c in MeV fm", & 197.3269804_dp, 0.0_dp, & "MeV fm") !! reduced Planck constant times c in MeV fm -type(codata_constant), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & -codata_constant("reduced proton Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & +codata_constant_type("reduced proton Compton wavelength", & 2.10308910336e-16_dp, 0.00000000064e-16_dp, & "m") !! reduced proton Compton wavelength -type(codata_constant), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & -codata_constant("reduced tau Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & +codata_constant_type("reduced tau Compton wavelength", & 1.110538e-16_dp, 0.000075e-16_dp, & "m") !! reduced tau Compton wavelength -type(codata_constant), parameter, public :: RYDBERG_CONSTANT = & -codata_constant("Rydberg constant", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT = & +codata_constant_type("Rydberg constant", & 10973731.568160_dp, 0.000021_dp, & "m^-1") !! Rydberg constant -type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & -codata_constant("Rydberg constant times c in Hz", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & +codata_constant_type("Rydberg constant times c in Hz", & 3.2898419602508e15_dp, 0.0000000000064e15_dp, & "Hz") !! Rydberg constant times c in Hz -type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & -codata_constant("Rydberg constant times hc in eV", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & +codata_constant_type("Rydberg constant times hc in eV", & 13.605693122994_dp, 0.000000000026_dp, & "eV") !! Rydberg constant times hc in eV -type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & -codata_constant("Rydberg constant times hc in J", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & +codata_constant_type("Rydberg constant times hc in J", & 2.1798723611035e-18_dp, 0.0000000000042e-18_dp, & "J") !! Rydberg constant times hc in J -type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & -codata_constant("Sackur-Tetrode constant (1 K, 100 kPa)", & +type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & +codata_constant_type("Sackur-Tetrode constant (1 K, 100 kPa)", & -1.15170753706_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) -type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & -codata_constant("Sackur-Tetrode constant (1 K, 101.325 kPa)", & +type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & +codata_constant_type("Sackur-Tetrode constant (1 K, 101.325 kPa)", & -1.16487052358_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) -type(codata_constant), parameter, public :: SECOND_RADIATION_CONSTANT = & -codata_constant("second radiation constant", & +type(codata_constant_type), parameter, public :: SECOND_RADIATION_CONSTANT = & +codata_constant_type("second radiation constant", & 1.438776877e-2_dp, 0.0_dp, & "m K") !! second radiation constant -type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & -codata_constant("shielded helion gyromag. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & +codata_constant_type("shielded helion gyromag. ratio", & 2.037894569e8_dp, 0.000000024e8_dp, & "s^-1 T^-1") !! shielded helion gyromag. ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("shielded helion gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("shielded helion gyromag. ratio in MHz/T", & 32.43409942_dp, 0.00000038_dp, & "MHz T^-1") !! shielded helion gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM = & -codata_constant("shielded helion mag. mom.", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM = & +codata_constant_type("shielded helion mag. mom.", & -1.074553090e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! shielded helion mag. mom. -type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("shielded helion mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("shielded helion mag. mom. to Bohr magneton ratio", & -1.158671471e-3_dp, 0.000000014e-3_dp, & "") !! shielded helion mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("shielded helion mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("shielded helion mag. mom. to nuclear magneton ratio", & -2.127497719_dp, 0.000000025_dp, & "") !! shielded helion mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & -codata_constant("shielded helion to proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & +codata_constant_type("shielded helion to proton mag. mom. ratio", & -0.7617665618_dp, 0.0000000089_dp, & "") !! shielded helion to proton mag. mom. ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & -codata_constant("shielded helion to shielded proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant_type("shielded helion to shielded proton mag. mom. ratio", & -0.7617861313_dp, 0.0000000033_dp, & "") !! shielded helion to shielded proton mag. mom. ratio -type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & -codata_constant("shielded proton gyromag. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & +codata_constant_type("shielded proton gyromag. ratio", & 2.675153151e8_dp, 0.000000029e8_dp, & "s^-1 T^-1") !! shielded proton gyromag. ratio -type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("shielded proton gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("shielded proton gyromag. ratio in MHz/T", & 42.57638474_dp, 0.00000046_dp, & "MHz T^-1") !! shielded proton gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM = & -codata_constant("shielded proton mag. mom.", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM = & +codata_constant_type("shielded proton mag. mom.", & 1.410570560e-26_dp, 0.000000015e-26_dp, & "J T^-1") !! shielded proton mag. mom. -type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("shielded proton mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("shielded proton mag. mom. to Bohr magneton ratio", & 1.520993128e-3_dp, 0.000000017e-3_dp, & "") !! shielded proton mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("shielded proton mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("shielded proton mag. mom. to nuclear magneton ratio", & 2.792775599_dp, 0.000000030_dp, & "") !! shielded proton mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & -codata_constant("shielding difference of d and p in HD", & +type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & +codata_constant_type("shielding difference of d and p in HD", & 2.0200e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of d and p in HD -type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & -codata_constant("shielding difference of t and p in HT", & +type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & +codata_constant_type("shielding difference of t and p in HT", & 2.4140e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of t and p in HT -type(codata_constant), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & -codata_constant("speed of light in vacuum", & +type(codata_constant_type), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & +codata_constant_type("speed of light in vacuum", & 299792458_dp, 0.0_dp, & "m s^-1") !! speed of light in vacuum -type(codata_constant), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & -codata_constant("standard acceleration of gravity", & +type(codata_constant_type), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & +codata_constant_type("standard acceleration of gravity", & 9.80665_dp, 0.0_dp, & "m s^-2") !! standard acceleration of gravity -type(codata_constant), parameter, public :: STANDARD_ATMOSPHERE = & -codata_constant("standard atmosphere", & +type(codata_constant_type), parameter, public :: STANDARD_ATMOSPHERE = & +codata_constant_type("standard atmosphere", & 101325_dp, 0.0_dp, & "Pa") !! standard atmosphere -type(codata_constant), parameter, public :: STANDARD_STATE_PRESSURE = & -codata_constant("standard-state pressure", & +type(codata_constant_type), parameter, public :: STANDARD_STATE_PRESSURE = & +codata_constant_type("standard-state pressure", & 100000_dp, 0.0_dp, & "Pa") !! standard-state pressure -type(codata_constant), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & -codata_constant("Stefan-Boltzmann constant", & +type(codata_constant_type), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & +codata_constant_type("Stefan-Boltzmann constant", & 5.670374419e-8_dp, 0.0_dp, & "W m^-2 K^-4") !! Stefan-Boltzmann constant -type(codata_constant), parameter, public :: TAU_COMPTON_WAVELENGTH = & -codata_constant("tau Compton wavelength", & +type(codata_constant_type), parameter, public :: TAU_COMPTON_WAVELENGTH = & +codata_constant_type("tau Compton wavelength", & 6.97771e-16_dp, 0.00047e-16_dp, & "m") !! tau Compton wavelength -type(codata_constant), parameter, public :: TAU_ELECTRON_MASS_RATIO = & -codata_constant("tau-electron mass ratio", & +type(codata_constant_type), parameter, public :: TAU_ELECTRON_MASS_RATIO = & +codata_constant_type("tau-electron mass ratio", & 3477.23_dp, 0.23_dp, & "") !! tau-electron mass ratio -type(codata_constant), parameter, public :: TAU_ENERGY_EQUIVALENT = & -codata_constant("tau energy equivalent", & +type(codata_constant_type), parameter, public :: TAU_ENERGY_EQUIVALENT = & +codata_constant_type("tau energy equivalent", & 1776.86_dp, 0.12_dp, & "MeV") !! tau energy equivalent -type(codata_constant), parameter, public :: TAU_MASS = & -codata_constant("tau mass", & +type(codata_constant_type), parameter, public :: TAU_MASS = & +codata_constant_type("tau mass", & 3.16754e-27_dp, 0.00021e-27_dp, & "kg") !! tau mass -type(codata_constant), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & -codata_constant("tau mass energy equivalent", & +type(codata_constant_type), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("tau mass energy equivalent", & 2.84684e-10_dp, 0.00019e-10_dp, & "J") !! tau mass energy equivalent -type(codata_constant), parameter, public :: TAU_MASS_IN_U = & -codata_constant("tau mass in u", & +type(codata_constant_type), parameter, public :: TAU_MASS_IN_U = & +codata_constant_type("tau mass in u", & 1.90754_dp, 0.00013_dp, & "u") !! tau mass in u -type(codata_constant), parameter, public :: TAU_MOLAR_MASS = & -codata_constant("tau molar mass", & +type(codata_constant_type), parameter, public :: TAU_MOLAR_MASS = & +codata_constant_type("tau molar mass", & 1.90754e-3_dp, 0.00013e-3_dp, & "kg mol^-1") !! tau molar mass -type(codata_constant), parameter, public :: TAU_MUON_MASS_RATIO = & -codata_constant("tau-muon mass ratio", & +type(codata_constant_type), parameter, public :: TAU_MUON_MASS_RATIO = & +codata_constant_type("tau-muon mass ratio", & 16.8170_dp, 0.0011_dp, & "") !! tau-muon mass ratio -type(codata_constant), parameter, public :: TAU_NEUTRON_MASS_RATIO = & -codata_constant("tau-neutron mass ratio", & +type(codata_constant_type), parameter, public :: TAU_NEUTRON_MASS_RATIO = & +codata_constant_type("tau-neutron mass ratio", & 1.89115_dp, 0.00013_dp, & "") !! tau-neutron mass ratio -type(codata_constant), parameter, public :: TAU_PROTON_MASS_RATIO = & -codata_constant("tau-proton mass ratio", & +type(codata_constant_type), parameter, public :: TAU_PROTON_MASS_RATIO = & +codata_constant_type("tau-proton mass ratio", & 1.89376_dp, 0.00013_dp, & "") !! tau-proton mass ratio -type(codata_constant), parameter, public :: THOMSON_CROSS_SECTION = & -codata_constant("Thomson cross section", & +type(codata_constant_type), parameter, public :: THOMSON_CROSS_SECTION = & +codata_constant_type("Thomson cross section", & 6.6524587321e-29_dp, 0.0000000060e-29_dp, & "m^2") !! Thomson cross section -type(codata_constant), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & -codata_constant("triton-electron mass ratio", & +type(codata_constant_type), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & +codata_constant_type("triton-electron mass ratio", & 5496.92153573_dp, 0.00000027_dp, & "") !! triton-electron mass ratio -type(codata_constant), parameter, public :: TRITON_G_FACTOR = & -codata_constant("triton g factor", & +type(codata_constant_type), parameter, public :: TRITON_G_FACTOR = & +codata_constant_type("triton g factor", & 5.957924931_dp, 0.000000012_dp, & "") !! triton g factor -type(codata_constant), parameter, public :: TRITON_MAG_MOM = & -codata_constant("triton mag. mom.", & +type(codata_constant_type), parameter, public :: TRITON_MAG_MOM = & +codata_constant_type("triton mag. mom.", & 1.5046095202e-26_dp, 0.0000000030e-26_dp, & "J T^-1") !! triton mag. mom. -type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("triton mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("triton mag. mom. to Bohr magneton ratio", & 1.6223936651e-3_dp, 0.0000000032e-3_dp, & "") !! triton mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("triton mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("triton mag. mom. to nuclear magneton ratio", & 2.9789624656_dp, 0.0000000059_dp, & "") !! triton mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: TRITON_MASS = & -codata_constant("triton mass", & +type(codata_constant_type), parameter, public :: TRITON_MASS = & +codata_constant_type("triton mass", & 5.0073567446e-27_dp, 0.0000000015e-27_dp, & "kg") !! triton mass -type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & -codata_constant("triton mass energy equivalent", & +type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("triton mass energy equivalent", & 4.5003878060e-10_dp, 0.0000000014e-10_dp, & "J") !! triton mass energy equivalent -type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("triton mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("triton mass energy equivalent in MeV", & 2808.92113298_dp, 0.00000085_dp, & "MeV") !! triton mass energy equivalent in MeV -type(codata_constant), parameter, public :: TRITON_MASS_IN_U = & -codata_constant("triton mass in u", & +type(codata_constant_type), parameter, public :: TRITON_MASS_IN_U = & +codata_constant_type("triton mass in u", & 3.01550071621_dp, 0.00000000012_dp, & "u") !! triton mass in u -type(codata_constant), parameter, public :: TRITON_MOLAR_MASS = & -codata_constant("triton molar mass", & +type(codata_constant_type), parameter, public :: TRITON_MOLAR_MASS = & +codata_constant_type("triton molar mass", & 3.01550071517e-3_dp, 0.00000000092e-3_dp, & "kg mol^-1") !! triton molar mass -type(codata_constant), parameter, public :: TRITON_PROTON_MASS_RATIO = & -codata_constant("triton-proton mass ratio", & +type(codata_constant_type), parameter, public :: TRITON_PROTON_MASS_RATIO = & +codata_constant_type("triton-proton mass ratio", & 2.99371703414_dp, 0.00000000015_dp, & "") !! triton-proton mass ratio -type(codata_constant), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & -codata_constant("triton relative atomic mass", & +type(codata_constant_type), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("triton relative atomic mass", & 3.01550071621_dp, 0.00000000012_dp, & "") !! triton relative atomic mass -type(codata_constant), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & -codata_constant("triton to proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & +codata_constant_type("triton to proton mag. mom. ratio", & 1.0666399191_dp, 0.0000000021_dp, & "") !! triton to proton mag. mom. ratio -type(codata_constant), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & -codata_constant("unified atomic mass unit", & +type(codata_constant_type), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & +codata_constant_type("unified atomic mass unit", & 1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! unified atomic mass unit -type(codata_constant), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & -codata_constant("vacuum electric permittivity", & +type(codata_constant_type), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & +codata_constant_type("vacuum electric permittivity", & 8.8541878128e-12_dp, 0.0000000013e-12_dp, & "F m^-1") !! vacuum electric permittivity -type(codata_constant), parameter, public :: VACUUM_MAG_PERMEABILITY = & -codata_constant("vacuum mag. permeability", & +type(codata_constant_type), parameter, public :: VACUUM_MAG_PERMEABILITY = & +codata_constant_type("vacuum mag. permeability", & 1.25663706212e-6_dp, 0.00000000019e-6_dp, & "N A^-2") !! vacuum mag. permeability -type(codata_constant), parameter, public :: VON_KLITZING_CONSTANT = & -codata_constant("von Klitzing constant", & +type(codata_constant_type), parameter, public :: VON_KLITZING_CONSTANT = & +codata_constant_type("von Klitzing constant", & 25812.80745_dp, 0.0_dp, & "ohm") !! von Klitzing constant -type(codata_constant), parameter, public :: WEAK_MIXING_ANGLE = & -codata_constant("weak mixing angle", & +type(codata_constant_type), parameter, public :: WEAK_MIXING_ANGLE = & +codata_constant_type("weak mixing angle", & 0.22290_dp, 0.00030_dp, & "") !! weak mixing angle -type(codata_constant), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & -codata_constant("Wien frequency displacement law constant", & +type(codata_constant_type), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & +codata_constant_type("Wien frequency displacement law constant", & 5.878925757e10_dp, 0.0_dp, & "Hz K^-1") !! Wien frequency displacement law constant -type(codata_constant), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & -codata_constant("Wien wavelength displacement law constant", & +type(codata_constant_type), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & +codata_constant_type("Wien wavelength displacement law constant", & 2.897771955e-3_dp, 0.0_dp, & "m K") !! Wien wavelength displacement law constant -type(codata_constant), parameter, public :: W_TO_Z_MASS_RATIO = & -codata_constant("W to Z mass ratio", & +type(codata_constant_type), parameter, public :: W_TO_Z_MASS_RATIO = & +codata_constant_type("W to Z mass ratio", & 0.88153_dp, 0.00017_dp, & "") !! W to Z mass ratio diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 62ae4628f..de0fbc9ad 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -37,7 +37,7 @@ contains subroutine print(self) !! Print out the constant's name, value, uncertainty and unit. - class(codata_constant), intent(in) :: self + class(codata_constant_type), intent(in) :: self print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit end subroutine @@ -48,7 +48,7 @@ elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) resul !! Get the constant value or uncertainty for the kind ${k}$ !! [Specification](TO_BE_COMPLETED) - class(codata_constant), intent(in) :: self !! Codata constant + class(codata_constant_type), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required !! From c74828e3c30350406e0be46ee4c46bb2aa4e0f13 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Fri, 10 May 2024 06:42:51 +0200 Subject: [PATCH 023/144] Update doc/specs/stdlib_constants. --- doc/specs/stdlib_constants.md | 27 +++++++++++++++++++++++++-- src/stdlib_codata_type.fypp | 5 +++-- src/stdlib_constants.fypp | 1 + 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index cda4d2741..004052066 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -9,10 +9,33 @@ title: constants The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. -The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant_type]]. -The latest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) + +## Codata + +The [[stdlib_codata(module)]] module defines all codata (physical) constants as derived +type. The latest codata constants +were released in 2018 by the [NIST](http://physics.nist.gov/constants) +All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. +The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defines: +procedures. + +* 4 members: + + * `name` (string) + * `value` (double precision real) + * `uncertainty` (double precision real) + * `unit` (string) + +* 2 type-bound procedures: + + * `print` for print the values of the constant members. + * `to_real` for converting the value or the uncertainty to the desired precision. + +A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for converting the constant value +or uncertainty. + ## Example diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index de0fbc9ad..fdbd71140 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -2,6 +2,7 @@ #:set KINDS = REAL_KINDS module stdlib_codata_type !! Codata constant type + !! ([Specification](../page/specs/stdlib_constants.html)) use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_io, only: FMT_REAL_DP use stdlib_optval, only: optval @@ -11,7 +12,7 @@ module stdlib_codata_type !! version: experimental !! !! Derived type for representing a Codata constant. - !! [Specification](TOBECOMPLETED) + !! ([Specification](../page/specs/stdlib_constants.html)) character(len=64) :: name real(dp) :: value real(dp) :: uncertainty @@ -46,7 +47,7 @@ elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) resul !! version: experimental !! !! Get the constant value or uncertainty for the kind ${k}$ - !! [Specification](TO_BE_COMPLETED) + !! ([Specification](../page/specs/stdlib_constants.html)) class(codata_constant_type), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index 484327c5c..e169dbb3b 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -2,6 +2,7 @@ #:set KINDS = REAL_KINDS module stdlib_constants !! Constants + !! ([Specification](../page/specs/stdlib_constants.html)) use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_codata, only: SPEED_OF_LIGHT_IN_VACUUM, & VACUUM_ELECTRIC_PERMITTIVITY, & From dcb52fea143780a34c30c87322a850b85b894bb0 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 05:29:16 +0200 Subject: [PATCH 024/144] Update codata constants with the 2022 release. --- src/stdlib_codata.f90 | 477 +++++++++++++++++++++--------------------- 1 file changed, 241 insertions(+), 236 deletions(-) diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index 5920197bb..050c68b52 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -4,48 +4,53 @@ module stdlib_codata use stdlib_codata_type private -integer(int32), parameter, public :: YEAR = 2018 !! Year of release. +integer(int32), parameter, public :: YEAR = 2022 !! Year of release. type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & codata_constant_type("alpha particle-electron mass ratio", & -7294.29954142_dp, 0.00000024_dp, & +7294.29954171_dp, 0.00000017_dp, & "") !! alpha particle-electron mass ratio type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS = & codata_constant_type("alpha particle mass", & -6.6446573357e-27_dp, 0.0000000020e-27_dp, & +6.6446573450e-27_dp, 0.0000000021e-27_dp, & "kg") !! alpha particle mass type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & codata_constant_type("alpha particle mass energy equivalent", & -5.9719201914e-10_dp, 0.0000000018e-10_dp, & +5.9719201997e-10_dp, 0.0000000019e-10_dp, & "J") !! alpha particle mass energy equivalent type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("alpha particle mass energy equivalent in MeV", & -3727.3794066_dp, 0.0000011_dp, & +3727.3794118_dp, 0.0000012_dp, & "MeV") !! alpha particle mass energy equivalent in MeV type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & codata_constant_type("alpha particle mass in u", & -4.001506179127_dp, 0.000000000063_dp, & +4.001506179129_dp, 0.000000000062_dp, & "u") !! alpha particle mass in u type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & codata_constant_type("alpha particle molar mass", & -4.0015061777e-3_dp, 0.0000000012e-3_dp, & +4.0015061833e-3_dp, 0.0000000012e-3_dp, & "kg mol^-1") !! alpha particle molar mass type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & codata_constant_type("alpha particle-proton mass ratio", & -3.97259969009_dp, 0.00000000022_dp, & +3.972599690252_dp, 0.000000000070_dp, & "") !! alpha particle-proton mass ratio type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & codata_constant_type("alpha particle relative atomic mass", & -4.001506179127_dp, 0.000000000063_dp, & +4.001506179129_dp, 0.000000000062_dp, & "") !! alpha particle relative atomic mass +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_RMS_CHARGE_RADIUS = & +codata_constant_type("alpha particle rms charge radius", & +1.6785e-15_dp, 0.0021e-15_dp, & +"m") !! alpha particle rms charge radius + type(codata_constant_type), parameter, public :: ANGSTROM_STAR = & codata_constant_type("Angstrom star", & 1.00001495e-10_dp, 0.00000090e-10_dp, & @@ -53,62 +58,62 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT = & codata_constant_type("atomic mass constant", & -1.66053906660e-27_dp, 0.00000000050e-27_dp, & +1.66053906892e-27_dp, 0.00000000052e-27_dp, & "kg") !! atomic mass constant type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & codata_constant_type("atomic mass constant energy equivalent", & -1.49241808560e-10_dp, 0.00000000045e-10_dp, & +1.49241808768e-10_dp, 0.00000000046e-10_dp, & "J") !! atomic mass constant energy equivalent type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("atomic mass constant energy equivalent in MeV", & -931.49410242_dp, 0.00000028_dp, & +931.49410372_dp, 0.00000029_dp, & "MeV") !! atomic mass constant energy equivalent in MeV type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & codata_constant_type("atomic mass unit-electron volt relationship", & -9.3149410242e8_dp, 0.0000000028e8_dp, & +9.3149410372e8_dp, 0.0000000029e8_dp, & "eV") !! atomic mass unit-electron volt relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & codata_constant_type("atomic mass unit-hartree relationship", & -3.4231776874e7_dp, 0.0000000010e7_dp, & +3.4231776922e7_dp, 0.0000000011e7_dp, & "E_h") !! atomic mass unit-hartree relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & codata_constant_type("atomic mass unit-hertz relationship", & -2.25234271871e23_dp, 0.00000000068e23_dp, & +2.25234272185e23_dp, 0.00000000070e23_dp, & "Hz") !! atomic mass unit-hertz relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & codata_constant_type("atomic mass unit-inverse meter relationship", & -7.5130066104e14_dp, 0.0000000023e14_dp, & +7.5130066209e14_dp, 0.0000000023e14_dp, & "m^-1") !! atomic mass unit-inverse meter relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & codata_constant_type("atomic mass unit-joule relationship", & -1.49241808560e-10_dp, 0.00000000045e-10_dp, & +1.49241808768e-10_dp, 0.00000000046e-10_dp, & "J") !! atomic mass unit-joule relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & codata_constant_type("atomic mass unit-kelvin relationship", & -1.08095401916e13_dp, 0.00000000033e13_dp, & +1.08095402067e13_dp, 0.00000000034e13_dp, & "K") !! atomic mass unit-kelvin relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & codata_constant_type("atomic mass unit-kilogram relationship", & -1.66053906660e-27_dp, 0.00000000050e-27_dp, & +1.66053906892e-27_dp, 0.00000000052e-27_dp, & "kg") !! atomic mass unit-kilogram relationship type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & codata_constant_type("atomic unit of 1st hyperpolarizability", & -3.2063613061e-53_dp, 0.0000000015e-53_dp, & +3.2063612996e-53_dp, 0.0000000015e-53_dp, & "C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & codata_constant_type("atomic unit of 2nd hyperpolarizability", & -6.2353799905e-65_dp, 0.0000000038e-65_dp, & +6.2353799735e-65_dp, 0.0000000039e-65_dp, & "C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ACTION = & @@ -123,97 +128,97 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & codata_constant_type("atomic unit of charge density", & -1.08120238457e12_dp, 0.00000000049e12_dp, & +1.08120238677e12_dp, 0.00000000051e12_dp, & "C m^-3") !! atomic unit of charge density type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & codata_constant_type("atomic unit of current", & -6.623618237510e-3_dp, 0.000000000013e-3_dp, & +6.6236182375082e-3_dp, 0.0000000000072e-3_dp, & "A") !! atomic unit of current type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & codata_constant_type("atomic unit of electric dipole mom.", & -8.4783536255e-30_dp, 0.0000000013e-30_dp, & +8.4783536198e-30_dp, 0.0000000013e-30_dp, & "C m") !! atomic unit of electric dipole mom. type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & codata_constant_type("atomic unit of electric field", & -5.14220674763e11_dp, 0.00000000078e11_dp, & +5.14220675112e11_dp, 0.00000000080e11_dp, & "V m^-1") !! atomic unit of electric field type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & codata_constant_type("atomic unit of electric field gradient", & -9.7173624292e21_dp, 0.0000000029e21_dp, & +9.7173624424e21_dp, 0.0000000030e21_dp, & "V m^-2") !! atomic unit of electric field gradient type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & codata_constant_type("atomic unit of electric polarizability", & -1.64877727436e-41_dp, 0.00000000050e-41_dp, & +1.64877727212e-41_dp, 0.00000000051e-41_dp, & "C^2 m^2 J^-1") !! atomic unit of electric polarizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & codata_constant_type("atomic unit of electric potential", & -27.211386245988_dp, 0.000000000053_dp, & +27.211386245981_dp, 0.000000000030_dp, & "V") !! atomic unit of electric potential type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & codata_constant_type("atomic unit of electric quadrupole mom.", & -4.4865515246e-40_dp, 0.0000000014e-40_dp, & +4.4865515185e-40_dp, 0.0000000014e-40_dp, & "C m^2") !! atomic unit of electric quadrupole mom. type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & codata_constant_type("atomic unit of energy", & -4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & +4.3597447222060e-18_dp, 0.0000000000048e-18_dp, & "J") !! atomic unit of energy type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_FORCE = & codata_constant_type("atomic unit of force", & -8.2387234983e-8_dp, 0.0000000012e-8_dp, & +8.2387235038e-8_dp, 0.0000000013e-8_dp, & "N") !! atomic unit of force type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & codata_constant_type("atomic unit of length", & -5.29177210903e-11_dp, 0.00000000080e-11_dp, & +5.29177210544e-11_dp, 0.00000000082e-11_dp, & "m") !! atomic unit of length type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & codata_constant_type("atomic unit of mag. dipole mom.", & -1.85480201566e-23_dp, 0.00000000056e-23_dp, & +1.85480201315e-23_dp, 0.00000000058e-23_dp, & "J T^-1") !! atomic unit of mag. dipole mom. type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & codata_constant_type("atomic unit of mag. flux density", & -2.35051756758e5_dp, 0.00000000071e5_dp, & +2.35051757077e5_dp, 0.00000000073e5_dp, & "T") !! atomic unit of mag. flux density type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & codata_constant_type("atomic unit of magnetizability", & -7.8910366008e-29_dp, 0.0000000048e-29_dp, & +7.8910365794e-29_dp, 0.0000000049e-29_dp, & "J T^-2") !! atomic unit of magnetizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MASS = & codata_constant_type("atomic unit of mass", & -9.1093837015e-31_dp, 0.0000000028e-31_dp, & +9.1093837139e-31_dp, 0.0000000028e-31_dp, & "kg") !! atomic unit of mass type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & codata_constant_type("atomic unit of momentum", & -1.99285191410e-24_dp, 0.00000000030e-24_dp, & +1.99285191545e-24_dp, 0.00000000031e-24_dp, & "kg m s^-1") !! atomic unit of momentum type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & codata_constant_type("atomic unit of permittivity", & -1.11265005545e-10_dp, 0.00000000017e-10_dp, & +1.11265005620e-10_dp, 0.00000000017e-10_dp, & "F m^-1") !! atomic unit of permittivity type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_TIME = & codata_constant_type("atomic unit of time", & -2.4188843265857e-17_dp, 0.0000000000047e-17_dp, & +2.4188843265864e-17_dp, 0.0000000000026e-17_dp, & "s") !! atomic unit of time type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & codata_constant_type("atomic unit of velocity", & -2.18769126364e6_dp, 0.00000000033e6_dp, & +2.18769126216e6_dp, 0.00000000034e6_dp, & "m s^-1") !! atomic unit of velocity type(codata_constant_type), parameter, public :: AVOGADRO_CONSTANT = & @@ -223,32 +228,32 @@ module stdlib_codata type(codata_constant_type), parameter, public :: BOHR_MAGNETON = & codata_constant_type("Bohr magneton", & -9.2740100783e-24_dp, 0.0000000028e-24_dp, & +9.2740100657e-24_dp, 0.0000000029e-24_dp, & "J T^-1") !! Bohr magneton type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_EV_T = & codata_constant_type("Bohr magneton in eV/T", & -5.7883818060e-5_dp, 0.0000000017e-5_dp, & +5.7883817982e-5_dp, 0.0000000018e-5_dp, & "eV T^-1") !! Bohr magneton in eV/T type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & codata_constant_type("Bohr magneton in Hz/T", & -1.39962449361e10_dp, 0.00000000042e10_dp, & +1.39962449171e10_dp, 0.00000000044e10_dp, & "Hz T^-1") !! Bohr magneton in Hz/T type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant_type("Bohr magneton in inverse meter per tesla", & -46.686447783_dp, 0.000000014_dp, & +46.686447719_dp, 0.000000015_dp, & "m^-1 T^-1") !! Bohr magneton in inverse meter per tesla type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_K_T = & codata_constant_type("Bohr magneton in K/T", & -0.67171381563_dp, 0.00000000020_dp, & +0.67171381472_dp, 0.00000000021_dp, & "K T^-1") !! Bohr magneton in K/T type(codata_constant_type), parameter, public :: BOHR_RADIUS = & codata_constant_type("Bohr radius", & -5.29177210903e-11_dp, 0.00000000080e-11_dp, & +5.29177210544e-11_dp, 0.00000000082e-11_dp, & "m") !! Bohr radius type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT = & @@ -273,17 +278,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & codata_constant_type("characteristic impedance of vacuum", & -376.730313668_dp, 0.000000057_dp, & +376.730313412_dp, 0.000000059_dp, & "ohm") !! characteristic impedance of vacuum type(codata_constant_type), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & codata_constant_type("classical electron radius", & -2.8179403262e-15_dp, 0.0000000013e-15_dp, & +2.8179403205e-15_dp, 0.0000000013e-15_dp, & "m") !! classical electron radius type(codata_constant_type), parameter, public :: COMPTON_WAVELENGTH = & codata_constant_type("Compton wavelength", & -2.42631023867e-12_dp, 0.00000000073e-12_dp, & +2.42631023538e-12_dp, 0.00000000076e-12_dp, & "m") !! Compton wavelength type(codata_constant_type), parameter, public :: CONDUCTANCE_QUANTUM = & @@ -343,197 +348,197 @@ module stdlib_codata type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & codata_constant_type("deuteron-electron mag. mom. ratio", & --4.664345551e-4_dp, 0.000000012e-4_dp, & +-4.664345550e-4_dp, 0.000000012e-4_dp, & "") !! deuteron-electron mag. mom. ratio type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & codata_constant_type("deuteron-electron mass ratio", & -3670.48296788_dp, 0.00000013_dp, & +3670.482967655_dp, 0.000000063_dp, & "") !! deuteron-electron mass ratio type(codata_constant_type), parameter, public :: DEUTERON_G_FACTOR = & codata_constant_type("deuteron g factor", & -0.8574382338_dp, 0.0000000022_dp, & +0.8574382335_dp, 0.0000000022_dp, & "") !! deuteron g factor type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM = & codata_constant_type("deuteron mag. mom.", & -4.330735094e-27_dp, 0.000000011e-27_dp, & +4.330735087e-27_dp, 0.000000011e-27_dp, & "J T^-1") !! deuteron mag. mom. type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("deuteron mag. mom. to Bohr magneton ratio", & -4.669754570e-4_dp, 0.000000012e-4_dp, & +4.669754568e-4_dp, 0.000000012e-4_dp, & "") !! deuteron mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("deuteron mag. mom. to nuclear magneton ratio", & -0.8574382338_dp, 0.0000000022_dp, & +0.8574382335_dp, 0.0000000022_dp, & "") !! deuteron mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: DEUTERON_MASS = & codata_constant_type("deuteron mass", & -3.3435837724e-27_dp, 0.0000000010e-27_dp, & +3.3435837768e-27_dp, 0.0000000010e-27_dp, & "kg") !! deuteron mass type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("deuteron mass energy equivalent", & -3.00506323102e-10_dp, 0.00000000091e-10_dp, & +3.00506323491e-10_dp, 0.00000000094e-10_dp, & "J") !! deuteron mass energy equivalent type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("deuteron mass energy equivalent in MeV", & -1875.61294257_dp, 0.00000057_dp, & +1875.61294500_dp, 0.00000058_dp, & "MeV") !! deuteron mass energy equivalent in MeV type(codata_constant_type), parameter, public :: DEUTERON_MASS_IN_U = & codata_constant_type("deuteron mass in u", & -2.013553212745_dp, 0.000000000040_dp, & +2.013553212544_dp, 0.000000000015_dp, & "u") !! deuteron mass in u type(codata_constant_type), parameter, public :: DEUTERON_MOLAR_MASS = & codata_constant_type("deuteron molar mass", & -2.01355321205e-3_dp, 0.00000000061e-3_dp, & +2.01355321466e-3_dp, 0.00000000063e-3_dp, & "kg mol^-1") !! deuteron molar mass type(codata_constant_type), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & codata_constant_type("deuteron-neutron mag. mom. ratio", & --0.44820653_dp, 0.00000011_dp, & +-0.44820652_dp, 0.00000011_dp, & "") !! deuteron-neutron mag. mom. ratio type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & codata_constant_type("deuteron-proton mag. mom. ratio", & -0.30701220939_dp, 0.00000000079_dp, & +0.30701220930_dp, 0.00000000079_dp, & "") !! deuteron-proton mag. mom. ratio type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & codata_constant_type("deuteron-proton mass ratio", & -1.99900750139_dp, 0.00000000011_dp, & +1.9990075012699_dp, 0.0000000000084_dp, & "") !! deuteron-proton mass ratio type(codata_constant_type), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & codata_constant_type("deuteron relative atomic mass", & -2.013553212745_dp, 0.000000000040_dp, & +2.013553212544_dp, 0.000000000015_dp, & "") !! deuteron relative atomic mass type(codata_constant_type), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & codata_constant_type("deuteron rms charge radius", & -2.12799e-15_dp, 0.00074e-15_dp, & +2.12778e-15_dp, 0.00027e-15_dp, & "m") !! deuteron rms charge radius type(codata_constant_type), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & codata_constant_type("electron charge to mass quotient", & --1.75882001076e11_dp, 0.00000000053e11_dp, & +-1.75882000838e11_dp, 0.00000000055e11_dp, & "C kg^-1") !! electron charge to mass quotient type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & codata_constant_type("electron-deuteron mag. mom. ratio", & --2143.9234915_dp, 0.0000056_dp, & +-2143.9234921_dp, 0.0000056_dp, & "") !! electron-deuteron mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & codata_constant_type("electron-deuteron mass ratio", & -2.724437107462e-4_dp, 0.000000000096e-4_dp, & +2.724437107629e-4_dp, 0.000000000047e-4_dp, & "") !! electron-deuteron mass ratio type(codata_constant_type), parameter, public :: ELECTRON_G_FACTOR = & codata_constant_type("electron g factor", & --2.00231930436256_dp, 0.00000000000035_dp, & +-2.00231930436092_dp, 0.00000000000036_dp, & "") !! electron g factor type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO = & codata_constant_type("electron gyromag. ratio", & -1.76085963023e11_dp, 0.00000000053e11_dp, & +1.76085962784e11_dp, 0.00000000055e11_dp, & "s^-1 T^-1") !! electron gyromag. ratio type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("electron gyromag. ratio in MHz/T", & -28024.9514242_dp, 0.0000085_dp, & +28024.9513861_dp, 0.0000087_dp, & "MHz T^-1") !! electron gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: ELECTRON_HELION_MASS_RATIO = & codata_constant_type("electron-helion mass ratio", & -1.819543074573e-4_dp, 0.000000000079e-4_dp, & +1.819543074649e-4_dp, 0.000000000053e-4_dp, & "") !! electron-helion mass ratio type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM = & codata_constant_type("electron mag. mom.", & --9.2847647043e-24_dp, 0.0000000028e-24_dp, & +-9.2847646917e-24_dp, 0.0000000029e-24_dp, & "J T^-1") !! electron mag. mom. type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & codata_constant_type("electron mag. mom. anomaly", & -1.15965218128e-3_dp, 0.00000000018e-3_dp, & +1.15965218046e-3_dp, 0.00000000018e-3_dp, & "") !! electron mag. mom. anomaly type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("electron mag. mom. to Bohr magneton ratio", & --1.00115965218128_dp, 0.00000000000018_dp, & +-1.00115965218046_dp, 0.00000000000018_dp, & "") !! electron mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("electron mag. mom. to nuclear magneton ratio", & --1838.28197188_dp, 0.00000011_dp, & +-1838.281971877_dp, 0.000000032_dp, & "") !! electron mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: ELECTRON_MASS = & codata_constant_type("electron mass", & -9.1093837015e-31_dp, 0.0000000028e-31_dp, & +9.1093837139e-31_dp, 0.0000000028e-31_dp, & "kg") !! electron mass type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("electron mass energy equivalent", & -8.1871057769e-14_dp, 0.0000000025e-14_dp, & +8.1871057880e-14_dp, 0.0000000026e-14_dp, & "J") !! electron mass energy equivalent type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("electron mass energy equivalent in MeV", & -0.51099895000_dp, 0.00000000015_dp, & +0.51099895069_dp, 0.00000000016_dp, & "MeV") !! electron mass energy equivalent in MeV type(codata_constant_type), parameter, public :: ELECTRON_MASS_IN_U = & codata_constant_type("electron mass in u", & -5.48579909065e-4_dp, 0.00000000016e-4_dp, & +5.485799090441e-4_dp, 0.000000000097e-4_dp, & "u") !! electron mass in u type(codata_constant_type), parameter, public :: ELECTRON_MOLAR_MASS = & codata_constant_type("electron molar mass", & -5.4857990888e-7_dp, 0.0000000017e-7_dp, & +5.4857990962e-7_dp, 0.0000000017e-7_dp, & "kg mol^-1") !! electron molar mass type(codata_constant_type), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & codata_constant_type("electron-muon mag. mom. ratio", & -206.7669883_dp, 0.0000046_dp, & +206.7669881_dp, 0.0000046_dp, & "") !! electron-muon mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_MUON_MASS_RATIO = & codata_constant_type("electron-muon mass ratio", & -4.83633169e-3_dp, 0.00000011e-3_dp, & +4.83633170e-3_dp, 0.00000011e-3_dp, & "") !! electron-muon mass ratio type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & codata_constant_type("electron-neutron mag. mom. ratio", & -960.92050_dp, 0.00023_dp, & +960.92048_dp, 0.00023_dp, & "") !! electron-neutron mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & codata_constant_type("electron-neutron mass ratio", & -5.4386734424e-4_dp, 0.0000000026e-4_dp, & +5.4386734416e-4_dp, 0.0000000022e-4_dp, & "") !! electron-neutron mass ratio type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & codata_constant_type("electron-proton mag. mom. ratio", & --658.21068789_dp, 0.00000020_dp, & +-658.21068789_dp, 0.00000019_dp, & "") !! electron-proton mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & codata_constant_type("electron-proton mass ratio", & -5.44617021487e-4_dp, 0.00000000033e-4_dp, & +5.446170214889e-4_dp, 0.000000000094e-4_dp, & "") !! electron-proton mass ratio type(codata_constant_type), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & codata_constant_type("electron relative atomic mass", & -5.48579909065e-4_dp, 0.00000000016e-4_dp, & +5.485799090441e-4_dp, 0.000000000097e-4_dp, & "") !! electron relative atomic mass type(codata_constant_type), parameter, public :: ELECTRON_TAU_MASS_RATIO = & @@ -543,22 +548,22 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & codata_constant_type("electron to alpha particle mass ratio", & -1.370933554787e-4_dp, 0.000000000045e-4_dp, & +1.370933554733e-4_dp, 0.000000000032e-4_dp, & "") !! electron to alpha particle mass ratio type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & codata_constant_type("electron to shielded helion mag. mom. ratio", & -864.058257_dp, 0.000010_dp, & +864.05823986_dp, 0.00000070_dp, & "") !! electron to shielded helion mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant_type("electron to shielded proton mag. mom. ratio", & --658.2275971_dp, 0.0000072_dp, & +-658.2275856_dp, 0.0000027_dp, & "") !! electron to shielded proton mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & codata_constant_type("electron-triton mass ratio", & -1.819200062251e-4_dp, 0.000000000090e-4_dp, & +1.819200062327e-4_dp, 0.000000000068e-4_dp, & "") !! electron-triton mass ratio type(codata_constant_type), parameter, public :: ELECTRON_VOLT = & @@ -568,12 +573,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("electron volt-atomic mass unit relationship", & -1.07354410233e-9_dp, 0.00000000032e-9_dp, & +1.07354410083e-9_dp, 0.00000000033e-9_dp, & "u") !! electron volt-atomic mass unit relationship type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & codata_constant_type("electron volt-hartree relationship", & -3.6749322175655e-2_dp, 0.0000000000071e-2_dp, & +3.6749322175665e-2_dp, 0.0000000000040e-2_dp, & "E_h") !! electron volt-hartree relationship type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & @@ -623,7 +628,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: FINE_STRUCTURE_CONSTANT = & codata_constant_type("fine-structure constant", & -7.2973525693e-3_dp, 0.0000000011e-3_dp, & +7.2973525643e-3_dp, 0.0000000011e-3_dp, & "") !! fine-structure constant type(codata_constant_type), parameter, public :: FIRST_RADIATION_CONSTANT = & @@ -638,117 +643,117 @@ module stdlib_codata type(codata_constant_type), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("hartree-atomic mass unit relationship", & -2.92126232205e-8_dp, 0.00000000088e-8_dp, & +2.92126231797e-8_dp, 0.00000000091e-8_dp, & "u") !! hartree-atomic mass unit relationship type(codata_constant_type), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & codata_constant_type("hartree-electron volt relationship", & -27.211386245988_dp, 0.000000000053_dp, & +27.211386245981_dp, 0.000000000030_dp, & "eV") !! hartree-electron volt relationship type(codata_constant_type), parameter, public :: HARTREE_ENERGY = & codata_constant_type("Hartree energy", & -4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & +4.3597447222060e-18_dp, 0.0000000000048e-18_dp, & "J") !! Hartree energy type(codata_constant_type), parameter, public :: HARTREE_ENERGY_IN_EV = & codata_constant_type("Hartree energy in eV", & -27.211386245988_dp, 0.000000000053_dp, & +27.211386245981_dp, 0.000000000030_dp, & "eV") !! Hartree energy in eV type(codata_constant_type), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & codata_constant_type("hartree-hertz relationship", & -6.579683920502e15_dp, 0.000000000013e15_dp, & +6.5796839204999e15_dp, 0.0000000000072e15_dp, & "Hz") !! hartree-hertz relationship type(codata_constant_type), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & codata_constant_type("hartree-inverse meter relationship", & -2.1947463136320e7_dp, 0.0000000000043e7_dp, & +2.1947463136314e7_dp, 0.0000000000024e7_dp, & "m^-1") !! hartree-inverse meter relationship type(codata_constant_type), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & codata_constant_type("hartree-joule relationship", & -4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & +4.3597447222060e-18_dp, 0.0000000000048e-18_dp, & "J") !! hartree-joule relationship type(codata_constant_type), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & codata_constant_type("hartree-kelvin relationship", & -3.1577502480407e5_dp, 0.0000000000061e5_dp, & +3.1577502480398e5_dp, 0.0000000000034e5_dp, & "K") !! hartree-kelvin relationship type(codata_constant_type), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & codata_constant_type("hartree-kilogram relationship", & -4.8508702095432e-35_dp, 0.0000000000094e-35_dp, & +4.8508702095419e-35_dp, 0.0000000000053e-35_dp, & "kg") !! hartree-kilogram relationship type(codata_constant_type), parameter, public :: HELION_ELECTRON_MASS_RATIO = & codata_constant_type("helion-electron mass ratio", & -5495.88528007_dp, 0.00000024_dp, & +5495.88527984_dp, 0.00000016_dp, & "") !! helion-electron mass ratio type(codata_constant_type), parameter, public :: HELION_G_FACTOR = & codata_constant_type("helion g factor", & --4.255250615_dp, 0.000000050_dp, & +-4.2552506995_dp, 0.0000000034_dp, & "") !! helion g factor type(codata_constant_type), parameter, public :: HELION_MAG_MOM = & codata_constant_type("helion mag. mom.", & --1.074617532e-26_dp, 0.000000013e-26_dp, & +-1.07461755198e-26_dp, 0.00000000093e-26_dp, & "J T^-1") !! helion mag. mom. type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("helion mag. mom. to Bohr magneton ratio", & --1.158740958e-3_dp, 0.000000014e-3_dp, & +-1.15874098083e-3_dp, 0.00000000094e-3_dp, & "") !! helion mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("helion mag. mom. to nuclear magneton ratio", & --2.127625307_dp, 0.000000025_dp, & +-2.1276253498_dp, 0.0000000017_dp, & "") !! helion mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: HELION_MASS = & codata_constant_type("helion mass", & -5.0064127796e-27_dp, 0.0000000015e-27_dp, & +5.0064127862e-27_dp, 0.0000000016e-27_dp, & "kg") !! helion mass type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & codata_constant_type("helion mass energy equivalent", & -4.4995394125e-10_dp, 0.0000000014e-10_dp, & +4.4995394185e-10_dp, 0.0000000014e-10_dp, & "J") !! helion mass energy equivalent type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("helion mass energy equivalent in MeV", & -2808.39160743_dp, 0.00000085_dp, & +2808.39161112_dp, 0.00000088_dp, & "MeV") !! helion mass energy equivalent in MeV type(codata_constant_type), parameter, public :: HELION_MASS_IN_U = & codata_constant_type("helion mass in u", & -3.014932247175_dp, 0.000000000097_dp, & +3.014932246932_dp, 0.000000000074_dp, & "u") !! helion mass in u type(codata_constant_type), parameter, public :: HELION_MOLAR_MASS = & codata_constant_type("helion molar mass", & -3.01493224613e-3_dp, 0.00000000091e-3_dp, & +3.01493225010e-3_dp, 0.00000000094e-3_dp, & "kg mol^-1") !! helion molar mass type(codata_constant_type), parameter, public :: HELION_PROTON_MASS_RATIO = & codata_constant_type("helion-proton mass ratio", & -2.99315267167_dp, 0.00000000013_dp, & +2.993152671552_dp, 0.000000000070_dp, & "") !! helion-proton mass ratio type(codata_constant_type), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & codata_constant_type("helion relative atomic mass", & -3.014932247175_dp, 0.000000000097_dp, & +3.014932246932_dp, 0.000000000074_dp, & "") !! helion relative atomic mass type(codata_constant_type), parameter, public :: HELION_SHIELDING_SHIFT = & codata_constant_type("helion shielding shift", & -5.996743e-5_dp, 0.000010e-5_dp, & +5.9967029e-5_dp, 0.0000023e-5_dp, & "") !! helion shielding shift type(codata_constant_type), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("hertz-atomic mass unit relationship", & -4.4398216652e-24_dp, 0.0000000013e-24_dp, & +4.4398216590e-24_dp, 0.0000000014e-24_dp, & "u") !! hertz-atomic mass unit relationship type(codata_constant_type), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & @@ -758,7 +763,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & codata_constant_type("hertz-hartree relationship", & -1.5198298460570e-16_dp, 0.0000000000029e-16_dp, & +1.5198298460574e-16_dp, 0.0000000000017e-16_dp, & "E_h") !! hertz-hartree relationship type(codata_constant_type), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & @@ -788,12 +793,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & codata_constant_type("inverse fine-structure constant", & -137.035999084_dp, 0.000000021_dp, & +137.035999177_dp, 0.000000021_dp, & "") !! inverse fine-structure constant type(codata_constant_type), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("inverse meter-atomic mass unit relationship", & -1.33102505010e-15_dp, 0.00000000040e-15_dp, & +1.33102504824e-15_dp, 0.00000000041e-15_dp, & "u") !! inverse meter-atomic mass unit relationship type(codata_constant_type), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & @@ -803,7 +808,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & codata_constant_type("inverse meter-hartree relationship", & -4.5563352529120e-8_dp, 0.0000000000088e-8_dp, & +4.5563352529132e-8_dp, 0.0000000000050e-8_dp, & "E_h") !! inverse meter-hartree relationship type(codata_constant_type), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & @@ -838,7 +843,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("joule-atomic mass unit relationship", & -6.7005352565e9_dp, 0.0000000020e9_dp, & +6.7005352471e9_dp, 0.0000000021e9_dp, & "u") !! joule-atomic mass unit relationship type(codata_constant_type), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & @@ -848,7 +853,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & codata_constant_type("joule-hartree relationship", & -2.2937122783963e17_dp, 0.0000000000045e17_dp, & +2.2937122783969e17_dp, 0.0000000000025e17_dp, & "E_h") !! joule-hartree relationship type(codata_constant_type), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & @@ -873,7 +878,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("kelvin-atomic mass unit relationship", & -9.2510873014e-14_dp, 0.0000000028e-14_dp, & +9.2510872884e-14_dp, 0.0000000029e-14_dp, & "u") !! kelvin-atomic mass unit relationship type(codata_constant_type), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & @@ -883,7 +888,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & codata_constant_type("kelvin-hartree relationship", & -3.1668115634556e-6_dp, 0.0000000000061e-6_dp, & +3.1668115634564e-6_dp, 0.0000000000035e-6_dp, & "E_h") !! kelvin-hartree relationship type(codata_constant_type), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & @@ -908,7 +913,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("kilogram-atomic mass unit relationship", & -6.0221407621e26_dp, 0.0000000018e26_dp, & +6.0221407537e26_dp, 0.0000000019e26_dp, & "u") !! kilogram-atomic mass unit relationship type(codata_constant_type), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & @@ -918,7 +923,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & codata_constant_type("kilogram-hartree relationship", & -2.0614857887409e34_dp, 0.0000000000040e34_dp, & +2.0614857887415e34_dp, 0.0000000000022e34_dp, & "E_h") !! kilogram-hartree relationship type(codata_constant_type), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & @@ -978,12 +983,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MOLAR_MASS_CONSTANT = & codata_constant_type("molar mass constant", & -0.99999999965e-3_dp, 0.00000000030e-3_dp, & +1.00000000105e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! molar mass constant type(codata_constant_type), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & codata_constant_type("molar mass of carbon-12", & -11.9999999958e-3_dp, 0.0000000036e-3_dp, & +12.0000000126e-3_dp, 0.0000000037e-3_dp, & "kg mol^-1") !! molar mass of carbon-12 type(codata_constant_type), parameter, public :: MOLAR_PLANCK_CONSTANT = & @@ -1018,12 +1023,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MUON_ELECTRON_MASS_RATIO = & codata_constant_type("muon-electron mass ratio", & -206.7682830_dp, 0.0000046_dp, & +206.7682827_dp, 0.0000046_dp, & "") !! muon-electron mass ratio type(codata_constant_type), parameter, public :: MUON_G_FACTOR = & codata_constant_type("muon g factor", & --2.0023318418_dp, 0.0000000013_dp, & +-2.00233184123_dp, 0.00000000082_dp, & "") !! muon g factor type(codata_constant_type), parameter, public :: MUON_MAG_MOM = & @@ -1033,17 +1038,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MUON_MAG_MOM_ANOMALY = & codata_constant_type("muon mag. mom. anomaly", & -1.16592089e-3_dp, 0.00000063e-3_dp, & +1.16592062e-3_dp, 0.00000041e-3_dp, & "") !! muon mag. mom. anomaly type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("muon mag. mom. to Bohr magneton ratio", & --4.84197047e-3_dp, 0.00000011e-3_dp, & +-4.84197048e-3_dp, 0.00000011e-3_dp, & "") !! muon mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("muon mag. mom. to nuclear magneton ratio", & --8.89059703_dp, 0.00000020_dp, & +-8.89059704_dp, 0.00000020_dp, & "") !! muon mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: MUON_MASS = & @@ -1063,27 +1068,27 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MUON_MASS_IN_U = & codata_constant_type("muon mass in u", & -0.1134289259_dp, 0.0000000025_dp, & +0.1134289257_dp, 0.0000000025_dp, & "u") !! muon mass in u type(codata_constant_type), parameter, public :: MUON_MOLAR_MASS = & codata_constant_type("muon molar mass", & -1.134289259e-4_dp, 0.000000025e-4_dp, & +1.134289258e-4_dp, 0.000000025e-4_dp, & "kg mol^-1") !! muon molar mass type(codata_constant_type), parameter, public :: MUON_NEUTRON_MASS_RATIO = & codata_constant_type("muon-neutron mass ratio", & -0.1124545170_dp, 0.0000000025_dp, & +0.1124545168_dp, 0.0000000025_dp, & "") !! muon-neutron mass ratio type(codata_constant_type), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & codata_constant_type("muon-proton mag. mom. ratio", & --3.183345142_dp, 0.000000071_dp, & +-3.183345146_dp, 0.000000071_dp, & "") !! muon-proton mag. mom. ratio type(codata_constant_type), parameter, public :: MUON_PROTON_MASS_RATIO = & codata_constant_type("muon-proton mass ratio", & -0.1126095264_dp, 0.0000000025_dp, & +0.1126095262_dp, 0.0000000025_dp, & "") !! muon-proton mass ratio type(codata_constant_type), parameter, public :: MUON_TAU_MASS_RATIO = & @@ -1103,37 +1108,37 @@ module stdlib_codata type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY = & codata_constant_type("natural unit of energy", & -8.1871057769e-14_dp, 0.0000000025e-14_dp, & +8.1871057880e-14_dp, 0.0000000026e-14_dp, & "J") !! natural unit of energy type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & codata_constant_type("natural unit of energy in MeV", & -0.51099895000_dp, 0.00000000015_dp, & +0.51099895069_dp, 0.00000000016_dp, & "MeV") !! natural unit of energy in MeV type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_LENGTH = & codata_constant_type("natural unit of length", & -3.8615926796e-13_dp, 0.0000000012e-13_dp, & +3.8615926744e-13_dp, 0.0000000012e-13_dp, & "m") !! natural unit of length type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MASS = & codata_constant_type("natural unit of mass", & -9.1093837015e-31_dp, 0.0000000028e-31_dp, & +9.1093837139e-31_dp, 0.0000000028e-31_dp, & "kg") !! natural unit of mass type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & codata_constant_type("natural unit of momentum", & -2.73092453075e-22_dp, 0.00000000082e-22_dp, & +2.73092453446e-22_dp, 0.00000000085e-22_dp, & "kg m s^-1") !! natural unit of momentum type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & codata_constant_type("natural unit of momentum in MeV/c", & -0.51099895000_dp, 0.00000000015_dp, & +0.51099895069_dp, 0.00000000016_dp, & "MeV/c") !! natural unit of momentum in MeV/c type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_TIME = & codata_constant_type("natural unit of time", & -1.28808866819e-21_dp, 0.00000000039e-21_dp, & +1.28808866644e-21_dp, 0.00000000040e-21_dp, & "s") !! natural unit of time type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & @@ -1143,112 +1148,112 @@ module stdlib_codata type(codata_constant_type), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & codata_constant_type("neutron Compton wavelength", & -1.31959090581e-15_dp, 0.00000000075e-15_dp, & +1.31959090382e-15_dp, 0.00000000067e-15_dp, & "m") !! neutron Compton wavelength type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & codata_constant_type("neutron-electron mag. mom. ratio", & -1.04066882e-3_dp, 0.00000025e-3_dp, & +1.04066884e-3_dp, 0.00000024e-3_dp, & "") !! neutron-electron mag. mom. ratio type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & codata_constant_type("neutron-electron mass ratio", & -1838.68366173_dp, 0.00000089_dp, & +1838.68366200_dp, 0.00000074_dp, & "") !! neutron-electron mass ratio type(codata_constant_type), parameter, public :: NEUTRON_G_FACTOR = & codata_constant_type("neutron g factor", & --3.82608545_dp, 0.00000090_dp, & +-3.82608552_dp, 0.00000090_dp, & "") !! neutron g factor type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO = & codata_constant_type("neutron gyromag. ratio", & -1.83247171e8_dp, 0.00000043e8_dp, & +1.83247174e8_dp, 0.00000043e8_dp, & "s^-1 T^-1") !! neutron gyromag. ratio type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("neutron gyromag. ratio in MHz/T", & -29.1646931_dp, 0.0000069_dp, & +29.1646935_dp, 0.0000069_dp, & "MHz T^-1") !! neutron gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM = & codata_constant_type("neutron mag. mom.", & --9.6623651e-27_dp, 0.0000023e-27_dp, & +-9.6623653e-27_dp, 0.0000023e-27_dp, & "J T^-1") !! neutron mag. mom. type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("neutron mag. mom. to Bohr magneton ratio", & --1.04187563e-3_dp, 0.00000025e-3_dp, & +-1.04187565e-3_dp, 0.00000025e-3_dp, & "") !! neutron mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("neutron mag. mom. to nuclear magneton ratio", & --1.91304273_dp, 0.00000045_dp, & +-1.91304276_dp, 0.00000045_dp, & "") !! neutron mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: NEUTRON_MASS = & codata_constant_type("neutron mass", & -1.67492749804e-27_dp, 0.00000000095e-27_dp, & +1.67492750056e-27_dp, 0.00000000085e-27_dp, & "kg") !! neutron mass type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("neutron mass energy equivalent", & -1.50534976287e-10_dp, 0.00000000086e-10_dp, & +1.50534976514e-10_dp, 0.00000000076e-10_dp, & "J") !! neutron mass energy equivalent type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("neutron mass energy equivalent in MeV", & -939.56542052_dp, 0.00000054_dp, & +939.56542194_dp, 0.00000048_dp, & "MeV") !! neutron mass energy equivalent in MeV type(codata_constant_type), parameter, public :: NEUTRON_MASS_IN_U = & codata_constant_type("neutron mass in u", & -1.00866491595_dp, 0.00000000049_dp, & +1.00866491606_dp, 0.00000000040_dp, & "u") !! neutron mass in u type(codata_constant_type), parameter, public :: NEUTRON_MOLAR_MASS = & codata_constant_type("neutron molar mass", & -1.00866491560e-3_dp, 0.00000000057e-3_dp, & +1.00866491712e-3_dp, 0.00000000051e-3_dp, & "kg mol^-1") !! neutron molar mass type(codata_constant_type), parameter, public :: NEUTRON_MUON_MASS_RATIO = & codata_constant_type("neutron-muon mass ratio", & -8.89248406_dp, 0.00000020_dp, & +8.89248408_dp, 0.00000020_dp, & "") !! neutron-muon mass ratio type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & codata_constant_type("neutron-proton mag. mom. ratio", & --0.68497934_dp, 0.00000016_dp, & +-0.68497935_dp, 0.00000016_dp, & "") !! neutron-proton mag. mom. ratio type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & codata_constant_type("neutron-proton mass difference", & -2.30557435e-30_dp, 0.00000082e-30_dp, & +2.30557461e-30_dp, 0.00000067e-30_dp, & "kg") !! neutron-proton mass difference type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & codata_constant_type("neutron-proton mass difference energy equivalent", & -2.07214689e-13_dp, 0.00000074e-13_dp, & +2.07214712e-13_dp, 0.00000060e-13_dp, & "J") !! neutron-proton mass difference energy equivalent type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("neutron-proton mass difference energy equivalent in MeV", & -1.29333236_dp, 0.00000046_dp, & +1.29333251_dp, 0.00000038_dp, & "MeV") !! neutron-proton mass difference energy equivalent in MeV type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & codata_constant_type("neutron-proton mass difference in u", & -1.38844933e-3_dp, 0.00000049e-3_dp, & +1.38844948e-3_dp, 0.00000040e-3_dp, & "u") !! neutron-proton mass difference in u type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & codata_constant_type("neutron-proton mass ratio", & -1.00137841931_dp, 0.00000000049_dp, & +1.00137841946_dp, 0.00000000040_dp, & "") !! neutron-proton mass ratio type(codata_constant_type), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & codata_constant_type("neutron relative atomic mass", & -1.00866491595_dp, 0.00000000049_dp, & +1.00866491606_dp, 0.00000000040_dp, & "") !! neutron relative atomic mass type(codata_constant_type), parameter, public :: NEUTRON_TAU_MASS_RATIO = & @@ -1273,27 +1278,27 @@ module stdlib_codata type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON = & codata_constant_type("nuclear magneton", & -5.0507837461e-27_dp, 0.0000000015e-27_dp, & +5.0507837393e-27_dp, 0.0000000016e-27_dp, & "J T^-1") !! nuclear magneton type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & codata_constant_type("nuclear magneton in eV/T", & -3.15245125844e-8_dp, 0.00000000096e-8_dp, & +3.15245125417e-8_dp, 0.00000000098e-8_dp, & "eV T^-1") !! nuclear magneton in eV/T type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant_type("nuclear magneton in inverse meter per tesla", & -2.54262341353e-2_dp, 0.00000000078e-2_dp, & +2.54262341009e-2_dp, 0.00000000079e-2_dp, & "m^-1 T^-1") !! nuclear magneton in inverse meter per tesla type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & codata_constant_type("nuclear magneton in K/T", & -3.6582677756e-4_dp, 0.0000000011e-4_dp, & +3.6582677706e-4_dp, 0.0000000011e-4_dp, & "K T^-1") !! nuclear magneton in K/T type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & codata_constant_type("nuclear magneton in MHz/T", & -7.6225932291_dp, 0.0000000023_dp, & +7.6225932188_dp, 0.0000000024_dp, & "MHz T^-1") !! nuclear magneton in MHz/T type(codata_constant_type), parameter, public :: PLANCK_CONSTANT = & @@ -1333,17 +1338,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & codata_constant_type("proton charge to mass quotient", & -9.5788331560e7_dp, 0.0000000029e7_dp, & +9.5788331430e7_dp, 0.0000000030e7_dp, & "C kg^-1") !! proton charge to mass quotient type(codata_constant_type), parameter, public :: PROTON_COMPTON_WAVELENGTH = & codata_constant_type("proton Compton wavelength", & -1.32140985539e-15_dp, 0.00000000040e-15_dp, & +1.32140985360e-15_dp, 0.00000000041e-15_dp, & "m") !! proton Compton wavelength type(codata_constant_type), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & codata_constant_type("proton-electron mass ratio", & -1836.15267343_dp, 0.00000011_dp, & +1836.152673426_dp, 0.000000032_dp, & "") !! proton-electron mass ratio type(codata_constant_type), parameter, public :: PROTON_G_FACTOR = & @@ -1353,22 +1358,22 @@ module stdlib_codata type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO = & codata_constant_type("proton gyromag. ratio", & -2.6752218744e8_dp, 0.0000000011e8_dp, & +2.6752218708e8_dp, 0.0000000011e8_dp, & "s^-1 T^-1") !! proton gyromag. ratio type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("proton gyromag. ratio in MHz/T", & -42.577478518_dp, 0.000000018_dp, & +42.577478461_dp, 0.000000018_dp, & "MHz T^-1") !! proton gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: PROTON_MAG_MOM = & codata_constant_type("proton mag. mom.", & -1.41060679736e-26_dp, 0.00000000060e-26_dp, & +1.41060679545e-26_dp, 0.00000000060e-26_dp, & "J T^-1") !! proton mag. mom. type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("proton mag. mom. to Bohr magneton ratio", & -1.52103220230e-3_dp, 0.00000000046e-3_dp, & +1.52103220230e-3_dp, 0.00000000045e-3_dp, & "") !! proton mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & @@ -1378,57 +1383,57 @@ module stdlib_codata type(codata_constant_type), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & codata_constant_type("proton mag. shielding correction", & -2.5689e-5_dp, 0.0011e-5_dp, & +2.56715e-5_dp, 0.00041e-5_dp, & "") !! proton mag. shielding correction type(codata_constant_type), parameter, public :: PROTON_MASS = & codata_constant_type("proton mass", & -1.67262192369e-27_dp, 0.00000000051e-27_dp, & +1.67262192595e-27_dp, 0.00000000052e-27_dp, & "kg") !! proton mass type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("proton mass energy equivalent", & -1.50327761598e-10_dp, 0.00000000046e-10_dp, & +1.50327761802e-10_dp, 0.00000000047e-10_dp, & "J") !! proton mass energy equivalent type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("proton mass energy equivalent in MeV", & -938.27208816_dp, 0.00000029_dp, & +938.27208943_dp, 0.00000029_dp, & "MeV") !! proton mass energy equivalent in MeV type(codata_constant_type), parameter, public :: PROTON_MASS_IN_U = & codata_constant_type("proton mass in u", & -1.007276466621_dp, 0.000000000053_dp, & +1.0072764665789_dp, 0.0000000000083_dp, & "u") !! proton mass in u type(codata_constant_type), parameter, public :: PROTON_MOLAR_MASS = & codata_constant_type("proton molar mass", & -1.00727646627e-3_dp, 0.00000000031e-3_dp, & +1.00727646764e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! proton molar mass type(codata_constant_type), parameter, public :: PROTON_MUON_MASS_RATIO = & codata_constant_type("proton-muon mass ratio", & -8.88024337_dp, 0.00000020_dp, & +8.88024338_dp, 0.00000020_dp, & "") !! proton-muon mass ratio type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & codata_constant_type("proton-neutron mag. mom. ratio", & --1.45989805_dp, 0.00000034_dp, & +-1.45989802_dp, 0.00000034_dp, & "") !! proton-neutron mag. mom. ratio type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & codata_constant_type("proton-neutron mass ratio", & -0.99862347812_dp, 0.00000000049_dp, & +0.99862347797_dp, 0.00000000040_dp, & "") !! proton-neutron mass ratio type(codata_constant_type), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & codata_constant_type("proton relative atomic mass", & -1.007276466621_dp, 0.000000000053_dp, & +1.0072764665789_dp, 0.0000000000083_dp, & "") !! proton relative atomic mass type(codata_constant_type), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & codata_constant_type("proton rms charge radius", & -8.414e-16_dp, 0.019e-16_dp, & +8.4075e-16_dp, 0.0064e-16_dp, & "m") !! proton rms charge radius type(codata_constant_type), parameter, public :: PROTON_TAU_MASS_RATIO = & @@ -1438,17 +1443,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION = & codata_constant_type("quantum of circulation", & -3.6369475516e-4_dp, 0.0000000011e-4_dp, & +3.6369475467e-4_dp, 0.0000000011e-4_dp, & "m^2 s^-1") !! quantum of circulation type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & codata_constant_type("quantum of circulation times 2", & -7.2738951032e-4_dp, 0.0000000022e-4_dp, & +7.2738950934e-4_dp, 0.0000000023e-4_dp, & "m^2 s^-1") !! quantum of circulation times 2 type(codata_constant_type), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & codata_constant_type("reduced Compton wavelength", & -3.8615926796e-13_dp, 0.0000000012e-13_dp, & +3.8615926744e-13_dp, 0.0000000012e-13_dp, & "m") !! reduced Compton wavelength type(codata_constant_type), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & @@ -1458,7 +1463,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & codata_constant_type("reduced neutron Compton wavelength", & -2.1001941552e-16_dp, 0.0000000012e-16_dp, & +2.1001941520e-16_dp, 0.0000000011e-16_dp, & "m") !! reduced neutron Compton wavelength type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT = & @@ -1478,7 +1483,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & codata_constant_type("reduced proton Compton wavelength", & -2.10308910336e-16_dp, 0.00000000064e-16_dp, & +2.10308910051e-16_dp, 0.00000000066e-16_dp, & "m") !! reduced proton Compton wavelength type(codata_constant_type), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & @@ -1488,32 +1493,32 @@ module stdlib_codata type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT = & codata_constant_type("Rydberg constant", & -10973731.568160_dp, 0.000021_dp, & +10973731.568157_dp, 0.000012_dp, & "m^-1") !! Rydberg constant type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & codata_constant_type("Rydberg constant times c in Hz", & -3.2898419602508e15_dp, 0.0000000000064e15_dp, & +3.2898419602500e15_dp, 0.0000000000036e15_dp, & "Hz") !! Rydberg constant times c in Hz type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & codata_constant_type("Rydberg constant times hc in eV", & -13.605693122994_dp, 0.000000000026_dp, & +13.605693122990_dp, 0.000000000015_dp, & "eV") !! Rydberg constant times hc in eV type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & codata_constant_type("Rydberg constant times hc in J", & -2.1798723611035e-18_dp, 0.0000000000042e-18_dp, & +2.1798723611030e-18_dp, 0.0000000000024e-18_dp, & "J") !! Rydberg constant times hc in J type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & codata_constant_type("Sackur-Tetrode constant (1 K, 100 kPa)", & --1.15170753706_dp, 0.00000000045_dp, & +-1.15170753496_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & codata_constant_type("Sackur-Tetrode constant (1 K, 101.325 kPa)", & --1.16487052358_dp, 0.00000000045_dp, & +-1.16487052149_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) type(codata_constant_type), parameter, public :: SECOND_RADIATION_CONSTANT = & @@ -1523,72 +1528,72 @@ module stdlib_codata type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & codata_constant_type("shielded helion gyromag. ratio", & -2.037894569e8_dp, 0.000000024e8_dp, & +2.0378946078e8_dp, 0.0000000018e8_dp, & "s^-1 T^-1") !! shielded helion gyromag. ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("shielded helion gyromag. ratio in MHz/T", & -32.43409942_dp, 0.00000038_dp, & +32.434100033_dp, 0.000000028_dp, & "MHz T^-1") !! shielded helion gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM = & codata_constant_type("shielded helion mag. mom.", & --1.074553090e-26_dp, 0.000000013e-26_dp, & +-1.07455311035e-26_dp, 0.00000000093e-26_dp, & "J T^-1") !! shielded helion mag. mom. type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("shielded helion mag. mom. to Bohr magneton ratio", & --1.158671471e-3_dp, 0.000000014e-3_dp, & +-1.15867149457e-3_dp, 0.00000000094e-3_dp, & "") !! shielded helion mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("shielded helion mag. mom. to nuclear magneton ratio", & --2.127497719_dp, 0.000000025_dp, & +-2.1274977624_dp, 0.0000000017_dp, & "") !! shielded helion mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & codata_constant_type("shielded helion to proton mag. mom. ratio", & --0.7617665618_dp, 0.0000000089_dp, & +-0.76176657721_dp, 0.00000000066_dp, & "") !! shielded helion to proton mag. mom. ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant_type("shielded helion to shielded proton mag. mom. ratio", & --0.7617861313_dp, 0.0000000033_dp, & +-0.7617861334_dp, 0.0000000031_dp, & "") !! shielded helion to shielded proton mag. mom. ratio type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & codata_constant_type("shielded proton gyromag. ratio", & -2.675153151e8_dp, 0.000000029e8_dp, & +2.675153194e8_dp, 0.000000011e8_dp, & "s^-1 T^-1") !! shielded proton gyromag. ratio type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("shielded proton gyromag. ratio in MHz/T", & -42.57638474_dp, 0.00000046_dp, & +42.57638543_dp, 0.00000017_dp, & "MHz T^-1") !! shielded proton gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM = & codata_constant_type("shielded proton mag. mom.", & -1.410570560e-26_dp, 0.000000015e-26_dp, & +1.4105705830e-26_dp, 0.0000000058e-26_dp, & "J T^-1") !! shielded proton mag. mom. type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("shielded proton mag. mom. to Bohr magneton ratio", & -1.520993128e-3_dp, 0.000000017e-3_dp, & +1.5209931551e-3_dp, 0.0000000062e-3_dp, & "") !! shielded proton mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("shielded proton mag. mom. to nuclear magneton ratio", & -2.792775599_dp, 0.000000030_dp, & +2.792775648_dp, 0.000000011_dp, & "") !! shielded proton mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & codata_constant_type("shielding difference of d and p in HD", & -2.0200e-8_dp, 0.0020e-8_dp, & +1.98770e-8_dp, 0.00010e-8_dp, & "") !! shielding difference of d and p in HD type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & codata_constant_type("shielding difference of t and p in HT", & -2.4140e-8_dp, 0.0020e-8_dp, & +2.39450e-8_dp, 0.00020e-8_dp, & "") !! shielding difference of t and p in HT type(codata_constant_type), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & @@ -1668,87 +1673,87 @@ module stdlib_codata type(codata_constant_type), parameter, public :: THOMSON_CROSS_SECTION = & codata_constant_type("Thomson cross section", & -6.6524587321e-29_dp, 0.0000000060e-29_dp, & +6.6524587051e-29_dp, 0.0000000062e-29_dp, & "m^2") !! Thomson cross section type(codata_constant_type), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & codata_constant_type("triton-electron mass ratio", & -5496.92153573_dp, 0.00000027_dp, & +5496.92153551_dp, 0.00000021_dp, & "") !! triton-electron mass ratio type(codata_constant_type), parameter, public :: TRITON_G_FACTOR = & codata_constant_type("triton g factor", & -5.957924931_dp, 0.000000012_dp, & +5.957924930_dp, 0.000000012_dp, & "") !! triton g factor type(codata_constant_type), parameter, public :: TRITON_MAG_MOM = & codata_constant_type("triton mag. mom.", & -1.5046095202e-26_dp, 0.0000000030e-26_dp, & +1.5046095178e-26_dp, 0.0000000030e-26_dp, & "J T^-1") !! triton mag. mom. type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("triton mag. mom. to Bohr magneton ratio", & -1.6223936651e-3_dp, 0.0000000032e-3_dp, & +1.6223936648e-3_dp, 0.0000000032e-3_dp, & "") !! triton mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("triton mag. mom. to nuclear magneton ratio", & -2.9789624656_dp, 0.0000000059_dp, & +2.9789624650_dp, 0.0000000059_dp, & "") !! triton mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: TRITON_MASS = & codata_constant_type("triton mass", & -5.0073567446e-27_dp, 0.0000000015e-27_dp, & +5.0073567512e-27_dp, 0.0000000016e-27_dp, & "kg") !! triton mass type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("triton mass energy equivalent", & -4.5003878060e-10_dp, 0.0000000014e-10_dp, & +4.5003878119e-10_dp, 0.0000000014e-10_dp, & "J") !! triton mass energy equivalent type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("triton mass energy equivalent in MeV", & -2808.92113298_dp, 0.00000085_dp, & +2808.92113668_dp, 0.00000088_dp, & "MeV") !! triton mass energy equivalent in MeV type(codata_constant_type), parameter, public :: TRITON_MASS_IN_U = & codata_constant_type("triton mass in u", & -3.01550071621_dp, 0.00000000012_dp, & +3.01550071597_dp, 0.00000000010_dp, & "u") !! triton mass in u type(codata_constant_type), parameter, public :: TRITON_MOLAR_MASS = & codata_constant_type("triton molar mass", & -3.01550071517e-3_dp, 0.00000000092e-3_dp, & +3.01550071913e-3_dp, 0.00000000094e-3_dp, & "kg mol^-1") !! triton molar mass type(codata_constant_type), parameter, public :: TRITON_PROTON_MASS_RATIO = & codata_constant_type("triton-proton mass ratio", & -2.99371703414_dp, 0.00000000015_dp, & +2.99371703403_dp, 0.00000000010_dp, & "") !! triton-proton mass ratio type(codata_constant_type), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & codata_constant_type("triton relative atomic mass", & -3.01550071621_dp, 0.00000000012_dp, & +3.01550071597_dp, 0.00000000010_dp, & "") !! triton relative atomic mass type(codata_constant_type), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & codata_constant_type("triton to proton mag. mom. ratio", & -1.0666399191_dp, 0.0000000021_dp, & +1.0666399189_dp, 0.0000000021_dp, & "") !! triton to proton mag. mom. ratio type(codata_constant_type), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & codata_constant_type("unified atomic mass unit", & -1.66053906660e-27_dp, 0.00000000050e-27_dp, & +1.66053906892e-27_dp, 0.00000000052e-27_dp, & "kg") !! unified atomic mass unit type(codata_constant_type), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & codata_constant_type("vacuum electric permittivity", & -8.8541878128e-12_dp, 0.0000000013e-12_dp, & +8.8541878188e-12_dp, 0.0000000014e-12_dp, & "F m^-1") !! vacuum electric permittivity type(codata_constant_type), parameter, public :: VACUUM_MAG_PERMEABILITY = & codata_constant_type("vacuum mag. permeability", & -1.25663706212e-6_dp, 0.00000000019e-6_dp, & +1.25663706127e-6_dp, 0.00000000020e-6_dp, & "N A^-2") !! vacuum mag. permeability type(codata_constant_type), parameter, public :: VON_KLITZING_CONSTANT = & @@ -1758,7 +1763,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: WEAK_MIXING_ANGLE = & codata_constant_type("weak mixing angle", & -0.22290_dp, 0.00030_dp, & +0.22305_dp, 0.00023_dp, & "") !! weak mixing angle type(codata_constant_type), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & @@ -1773,7 +1778,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: W_TO_Z_MASS_RATIO = & codata_constant_type("W to Z mass ratio", & -0.88153_dp, 0.00017_dp, & +0.88145_dp, 0.00013_dp, & "") !! W to Z mass ratio end module stdlib_codata \ No newline at end of file From 85233d5510fda3548c46f2ceae4d79b9270b1095 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 05:44:10 +0200 Subject: [PATCH 025/144] Update documentation with the link to the Python script for generating the stdlib_codata module. --- doc/specs/stdlib_constants.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 004052066..fd9844f08 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -13,8 +13,9 @@ The [[stdlib_constants]] module provides mathematical constants and the most com ## Codata The [[stdlib_codata(module)]] module defines all codata (physical) constants as derived -type. The latest codata constants -were released in 2018 by the [NIST](http://physics.nist.gov/constants) +type. The module is automatically generated with a simple +[parser written in Python](https://github.com/MilanSkocic/codata/tree/dev/stdlib) +The latest codata constants were released in 2022 by the [NIST](http://physics.nist.gov/constants) All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. From 49463c046d085235a5b370a3d45869e1328407b6 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 06:24:50 +0200 Subject: [PATCH 026/144] Update documentation for the interface to_real. --- doc/specs/stdlib_constants.md | 34 +++++++++++++++++++++++++++++++--- src/stdlib_codata_type.fypp | 2 +- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index fd9844f08..a2e50c8f5 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -32,11 +32,39 @@ procedures. * 2 type-bound procedures: * `print` for print the values of the constant members. - * `to_real` for converting the value or the uncertainty to the desired precision. + * `to_real` for getting the value or the uncertainty to the desired precision. -A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for converting the constant value -or uncertainty. +A module level interface [[stdlib_codata_type(module):to_real(interface)]] is +available for getting the constant value or uncertainty of a constant. +## `to_real` - Get the constant value or uncertainty. + +### Status + +Experimental + +### Description + +Convert a [[stdlib_codata_type(module):stdlib_codata_type(type)]] to a real. +**Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. + +### Syntax + +`r = ` [[stdlib_codata_type(module):to_real(interface)]] `(c, mold [, uncertainty])` + +### Arguments + +`c`: argument has `intent(in) ` and shall be of type [[stdlib_codata_type(module):stdlib_codata_type(type)]]. + +`mold`: argument has `intent(in)` and shall be of `real` type. +**Note**: The type of the `mold` argument defines the type of the result. + +`uncertainty` (optional): argument has `intent(in)` and shall be of `logical` type. +It specifies if the uncertainty needs to be returned instead of the value. Default to `.false.`. + +### Return value + +Returns a scalar of `real` type which is either the value or the uncertainty of a codata constant. ## Example diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index fdbd71140..5a27a4ab7 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -51,7 +51,7 @@ elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) resul class(codata_constant_type), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface - logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required + logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required. Default to .false.. !! logical :: u From f222f809d89618f75b633dd932bdc49a3875c99e Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 12:23:59 +0200 Subject: [PATCH 027/144] Fix underscores in 2 variables. - molar volume of ideal gas at 273.15 K and 101.325 KPa - Loschmidt constant at 273.15 K and 101.325K Pa --- src/stdlib_codata.f90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index 050c68b52..5b6bb48be 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -956,12 +956,12 @@ module stdlib_codata 1.920155716e-10_dp, 0.000000032e-10_dp, & "m") !! lattice spacing of ideal Si (220) -type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_273_15_K_100_KPA = & codata_constant_type("Loschmidt constant (273.15 K, 100 kPa)", & 2.651645804e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 100 kPa) -type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_273_15_K_101_325_KPA = & codata_constant_type("Loschmidt constant (273.15 K, 101.325 kPa)", & 2.686780111e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) @@ -996,12 +996,12 @@ module stdlib_codata 3.990312712e-10_dp, 0.0_dp, & "J Hz^-1 mol^-1") !! molar Planck constant -type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_100_KPA = & codata_constant_type("molar volume of ideal gas (273.15 K, 100 kPa)", & 22.71095464e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) -type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA = & codata_constant_type("molar volume of ideal gas (273.15 K, 101.325 kPa)", & 22.41396954e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) @@ -1516,7 +1516,7 @@ module stdlib_codata -1.15170753496_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) -type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & +type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101_325_KPA = & codata_constant_type("Sackur-Tetrode constant (1 K, 101.325 kPa)", & -1.16487052149_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) From 067b77c80bfd12943a9f603faf30f658fdf51728 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 12:24:35 +0200 Subject: [PATCH 028/144] Add tests for codata constants (values and uncertainties). --- test/constants/test_constants.f90 | 408 ++++++++++++++++++++++++++++++ 1 file changed, 408 insertions(+) create mode 100644 test/constants/test_constants.f90 diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 new file mode 100644 index 000000000..aee8209d7 --- /dev/null +++ b/test/constants/test_constants.f90 @@ -0,0 +1,408 @@ +module test_constants + !! Test constant values only for double precision. + use testdrive, only : new_unittest, unittest_type, error_type, check + use stdlib_kinds, only : dp, int32 + use stdlib_codata, only: YEAR, & + ALPHA_PARTICLE_ELECTRON_MASS_RATIO, & + ALPHA_PARTICLE_MASS, & + ATOMIC_MASS_CONSTANT, & + AVOGADRO_CONSTANT, & + BOLTZMANN_CONSTANT, & + ELECTRON_VOLT, & + ELEMENTARY_CHARGE, & + FARADAY_CONSTANT, & + MOLAR_MASS_CONSTANT,& + MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA, & + PLANCK_CONSTANT,& + SPEED_OF_LIGHT_IN_VACUUM,& + STANDARD_ACCELERATION_OF_GRAVITY + + public :: collect_constants + +contains + +!> Collect all exported unit tests +subroutine collect_constants(testsuite) + implicit none + !> Collection of tests + type(unittest_type), allocatable, intent(out) :: testsuite(:) + testsuite = [new_unittest("YEAR", test_year), & + new_unittest("ALPHA_PARTICLE_ELECTRON_MASS_RATIO", test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO),& + new_unittest("ALPHA_PARTICLE_MASS", test_ALPHA_PARTICLE_MASS),& + new_unittest("ATOMIC_MASS_CONSTANT", test_ATOMIC_MASS_CONSTANT),& + new_unittest("AVOGADRO_CONSTANT", test_AVOGADRO_CONSTANT),& + new_unittest("BOLTZMANN_CONSTANT", test_BOLTZMANN_CONSTANT),& + new_unittest("ELECTRON_VOLT", test_ELECTRON_VOLT),& + new_unittest("ELEMENTARY_CHARGE", test_ELEMENTARY_CHARGE),& + new_unittest("FARADAY_CONSTANT", test_FARADAY_CONSTANT),& + new_unittest("MOLAR_MASS_CONSTANT", test_MOLAR_MASS_CONSTANT),& + new_unittest("MOLAR_VOLUME_OF_IDEAL_GAS__273_15K__101_325_KPA", test_MOLAR_VOLUME_NTP),& + new_unittest("PLANCK_CONSTANT", test_PLANCK_CONSTANT),& + new_unittest("SPEED_OF_LIGHT_IN_VACUUM", test_SPEED_OF_LIGHT),& + new_unittest("STANDARD_ACCELERATION_OF_GRAVITY", test_STANDARD_ACCELERATION_OF_GRAVITY),& + new_unittest("U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO", test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO),& + new_unittest("U_ALPHA_PARTICLE_MASS", test_U_ALPHA_PARTICLE_MASS),& + new_unittest("U_ATOMIC_MASS_CONSTANT", test_U_ATOMIC_MASS_CONSTANT),& + new_unittest("U_AVOGADRO_CONSTANT", test_U_AVOGADRO_CONSTANT),& + new_unittest("U_BOLTZMANN_CONSTANT", test_U_BOLTZMANN_CONSTANT),& + new_unittest("U_ELECTRON_VOLT", test_U_ELECTRON_VOLT),& + new_unittest("U_ELEMENTARY_CHARGE", test_U_ELEMENTARY_CHARGE),& + new_unittest("U_FARADAY_CONSTANT", test_U_FARADAY_CONSTANT),& + new_unittest("U_MOLAR_MASS_CONSTANT", test_U_MOLAR_MASS_CONSTANT),& + new_unittest("U_MOLAR_VOLUME_OF_IDEAL_GAS__273_15K__101_325_KPA", test_U_MOLAR_VOLUME_NTP),& + new_unittest("U_PLANCK_CONSTANT", test_U_PLANCK_CONSTANT),& + new_unittest("U_SPEED_OF_LIGHT_IN_VACUUM", test_U_SPEED_OF_LIGHT),& + new_unittest("U_STANDARD_ACCELERATION_OF_GRAVITY", test_U_STANDARD_ACCELERATION_OF_GRAVITY)] +end subroutine + +subroutine test_year(error) + implicit none + type(error_type), allocatable, intent(out) :: error + + integer(int32) :: value, expected, diff + + expected = 2022 + value = YEAR + diff = expected - value + call check(error, diff, 0) + if (allocated(error)) return +end subroutine + +subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 7294.29954171d0 * fac + value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ALPHA_PARTICLE_MASS(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d27 + expected = 6.6446573450d-27 * fac + value = ALPHA_PARTICLE_MASS%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ATOMIC_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d27 + expected = 1.66053906892d-27 * fac + value = ATOMIC_MASS_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_AVOGADRO_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d-23 + expected = 6.02214076d23 * fac + value = AVOGADRO_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_BOLTZMANN_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d23 + expected = 1.380649d-23 * fac + value = BOLTZMANN_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ELECTRON_VOLT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d19 + expected = 1.602176634d-19 * fac + value = ELECTRON_VOLT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ELEMENTARY_CHARGE(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d19 + expected = 1.602176634d-19 * fac + value = ELEMENTARY_CHARGE%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_FARADAY_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 96485.33212d0 * fac + value = FARADAY_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_MOLAR_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d3 + expected = 1.00000000105d-3 * fac + value = MOLAR_MASS_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_MOLAR_VOLUME_NTP(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d3 + expected = 22.41396954d-3 * fac + value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_PLANCK_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d34 + expected = 6.62607015d-34 * fac + value = PLANCK_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_SPEED_OF_LIGHT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 299792458.0d0 * fac + value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 9.80665d0 * fac + value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d7 + expected = 0.00000017d0 * fac + value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ALPHA_PARTICLE_MASS(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d36 + expected = 0.0000000021d-27 * fac + value = ALPHA_PARTICLE_MASS%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ATOMIC_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d37 + expected = 0.00000000052d-27 * fac + value = ATOMIC_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_AVOGADRO_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = AVOGADRO_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_BOLTZMANN_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = BOLTZMANN_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ELECTRON_VOLT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = ELECTRON_VOLT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ELEMENTARY_CHARGE(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = ELEMENTARY_CHARGE%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_FARADAY_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = FARADAY_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_MOLAR_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d13 + expected = 0.00000000031d-3 * fac + value = MOLAR_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_MOLAR_VOLUME_NTP(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_PLANCK_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = PLANCK_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_SPEED_OF_LIGHT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +end module test_constants + +program tester + use iso_fortran_env + use testdrive, only : run_testsuite, new_testsuite, testsuite_type + use test_constants, only : collect_constants + implicit none + type(testsuite_type), allocatable :: testsuites(:) + character(len=*), parameter :: fmt = '("#", *(1x, a))' + integer :: stat, is + + stat = 0 + + testsuites = [new_testsuite("constants", collect_constants)] + + do is = 1, size(testsuites) + write(error_unit, fmt) "Testing:", testsuites(is)%name + call run_testsuite(testsuites(is)%collect, error_unit, stat) + end do + + if (stat > 0) then + write(error_unit, '(i0, 1x, a)') stat, "test(s) failed!" + error stop + end if + +end program \ No newline at end of file From 5d14342c87bbad7d91e0727b4bb4cb03a64aae80 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 12:25:15 +0200 Subject: [PATCH 029/144] Set cmake files for the tests of the codata constants. --- test/CMakeLists.txt | 1 + test/constants/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 test/constants/CMakeLists.txt diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8e199182d..9f94c54c2 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -13,6 +13,7 @@ endmacro(ADDTEST) add_subdirectory(array) add_subdirectory(ascii) add_subdirectory(bitsets) +add_subdirectory(constants) add_subdirectory(hash_functions) add_subdirectory(hash_functions_perf) add_subdirectory(hashmaps) diff --git a/test/constants/CMakeLists.txt b/test/constants/CMakeLists.txt new file mode 100644 index 000000000..0e0b0efd8 --- /dev/null +++ b/test/constants/CMakeLists.txt @@ -0,0 +1 @@ +ADDTEST(constants) From 8b67f04807b461636fead78939b9c369cf58f3eb Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 16 May 2024 05:16:53 +0200 Subject: [PATCH 030/144] Fix format for the print function. --- src/stdlib_codata_type.fypp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 5a27a4ab7..1df032bef 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -39,7 +39,7 @@ contains subroutine print(self) !! Print out the constant's name, value, uncertainty and unit. class(codata_constant_type), intent(in) :: self - print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit + print "(A64, SP, "//FMT_REAL_DP//", A5, "//FMT_REAL_DP//", 1X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit end subroutine #:for k in KINDS From 6edd907101b355e5571e1763dbdb067edfa8eb85 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 16 May 2024 14:36:10 +0200 Subject: [PATCH 031/144] Fix reference to codata_constant_type in documentation. --- doc/specs/stdlib_constants.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index a2e50c8f5..3ce426777 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -45,7 +45,7 @@ Experimental ### Description -Convert a [[stdlib_codata_type(module):stdlib_codata_type(type)]] to a real. +Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a real. **Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. ### Syntax @@ -54,7 +54,7 @@ Convert a [[stdlib_codata_type(module):stdlib_codata_type(type)]] to a real. ### Arguments -`c`: argument has `intent(in) ` and shall be of type [[stdlib_codata_type(module):stdlib_codata_type(type)]]. +`c`: argument has `intent(in) ` and shall be of type [[stdlib_codata_type(module):codata_constant_type(type)]]. `mold`: argument has `intent(in)` and shall be of `real` type. **Note**: The type of the `mold` argument defines the type of the result. From c47399fd78715fa4d429dd0566139b92de8bc26e Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 16 May 2024 14:37:26 +0200 Subject: [PATCH 032/144] Fix link to the repo where the python script for generating the codata constants. --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 3ce426777..0508392dc 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -14,7 +14,7 @@ The [[stdlib_constants]] module provides mathematical constants and the most com The [[stdlib_codata(module)]] module defines all codata (physical) constants as derived type. The module is automatically generated with a simple -[parser written in Python](https://github.com/MilanSkocic/codata/tree/dev/stdlib) +[parser written in Python](https://github.com/MilanSkocic/codata/) The latest codata constants were released in 2022 by the [NIST](http://physics.nist.gov/constants) All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. From 2cad5e7fedf28e982cb3f0dcc04fa45d0429f4ae Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sat, 18 May 2024 07:46:50 +0200 Subject: [PATCH 033/144] Fix typo. --- doc/specs/stdlib_constants.md | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 0508392dc..e92f0e5bc 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -20,7 +20,6 @@ All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defines: -procedures. * 4 members: From 9730f3dfddc0ac307295400064c18fc02a52750b Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:40:12 +0200 Subject: [PATCH 034/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index e92f0e5bc..4e7f5df23 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -30,7 +30,7 @@ The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defin * 2 type-bound procedures: - * `print` for print the values of the constant members. + * `print`: to print the values of the constant members; * `to_real` for getting the value or the uncertainty to the desired precision. A module level interface [[stdlib_codata_type(module):to_real(interface)]] is From 202b8ffecb79d4e068a8afb650b231f7b9f26cf7 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:40:29 +0200 Subject: [PATCH 035/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 4e7f5df23..f413f98b8 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -31,7 +31,7 @@ The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defin * 2 type-bound procedures: * `print`: to print the values of the constant members; - * `to_real` for getting the value or the uncertainty to the desired precision. + * `to_real`: to get the value or the uncertainty to the desired precision. A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for getting the constant value or uncertainty of a constant. From 2853bde2e1956e93f7fdcdc27633d3b9cc752e60 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:41:13 +0200 Subject: [PATCH 036/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index f413f98b8..0eeab4c67 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -36,7 +36,7 @@ The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defin A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for getting the constant value or uncertainty of a constant. -## `to_real` - Get the constant value or uncertainty. +## `to_real` - Get the constant value or its uncertainty. ### Status From d97fa2a23719ee69d4fee1cf070c44e5d855d54a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:41:50 +0200 Subject: [PATCH 037/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 0eeab4c67..585c2a556 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -44,7 +44,7 @@ Experimental ### Description -Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a real. +Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a `real` (at least `sp`, or `dp`) scalar. **Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. ### Syntax From 4b67e99eab49218db08f5d7c7e1fa0f7111b2efc Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:42:16 +0200 Subject: [PATCH 038/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 585c2a556..178a9e854 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -45,7 +45,7 @@ Experimental ### Description Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a `real` (at least `sp`, or `dp`) scalar. -**Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. +**Warning**: Some constants cannot be converted to single precision `sp` reals due to the value of the exponents. ### Syntax From 73568a78d329ce53f672e12e9007a663887bd9ac Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:43:01 +0200 Subject: [PATCH 039/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index aee8209d7..937d5c286 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -16,7 +16,7 @@ module test_constants PLANCK_CONSTANT,& SPEED_OF_LIGHT_IN_VACUUM,& STANDARD_ACCELERATION_OF_GRAVITY - + implicit none public :: collect_constants contains From f4428b443ba67e2319c81dbd7847f66dfb0bd7c3 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:43:30 +0200 Subject: [PATCH 040/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 937d5c286..4a9f65d68 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -17,6 +17,7 @@ module test_constants SPEED_OF_LIGHT_IN_VACUUM,& STANDARD_ACCELERATION_OF_GRAVITY implicit none + private public :: collect_constants contains From 9b0866622d6096fddd784fbe203c139f35290bde Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:43:57 +0200 Subject: [PATCH 041/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 4a9f65d68..2957a289a 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -24,7 +24,6 @@ module test_constants !> Collect all exported unit tests subroutine collect_constants(testsuite) - implicit none !> Collection of tests type(unittest_type), allocatable, intent(out) :: testsuite(:) testsuite = [new_unittest("YEAR", test_year), & From 30570b68f34353dab4aacb56e44fb75c60cb1ec9 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:51:29 +0200 Subject: [PATCH 042/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 2957a289a..cf87dc293 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -56,7 +56,6 @@ subroutine collect_constants(testsuite) end subroutine subroutine test_year(error) - implicit none type(error_type), allocatable, intent(out) :: error integer(int32) :: value, expected, diff From 7ba4787f67ce0dbafc15e9a39bcdaca9173638a9 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:52:09 +0200 Subject: [PATCH 043/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index cf87dc293..0e39a7496 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -68,7 +68,6 @@ subroutine test_year(error) end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From b404273d2ab74775061bbfc10b3a9f4b0a814fe9 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:53:05 +0200 Subject: [PATCH 044/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 0e39a7496..273006601 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -79,7 +79,6 @@ subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d27 From e1717756d82f0cf8d292ad42f10c20e95de4a679 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:54:06 +0200 Subject: [PATCH 045/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 273006601..7d380c746 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -90,7 +90,6 @@ subroutine test_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d27 From 0142cbb4a62b29733a427b98307086f00a17d906 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:56:00 +0200 Subject: [PATCH 046/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 7d380c746..41eb81c02 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -101,7 +101,6 @@ subroutine test_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_AVOGADRO_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d-23 From 65064246cd6c06f5d35ebb3bc2e4cccfe3e72e66 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:56:33 +0200 Subject: [PATCH 047/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 41eb81c02..57273382f 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -112,7 +112,6 @@ subroutine test_AVOGADRO_CONSTANT(error) end subroutine subroutine test_BOLTZMANN_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d23 From e8e529a45509a428df5d419e36dabb28c1ea9895 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:56:57 +0200 Subject: [PATCH 048/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 57273382f..ecf4dea08 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -123,7 +123,6 @@ subroutine test_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_ELECTRON_VOLT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d19 From 2c828ab81c6db4b397b057507641926f756aec91 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:57:20 +0200 Subject: [PATCH 049/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index ecf4dea08..f37469f2c 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -134,7 +134,6 @@ subroutine test_ELECTRON_VOLT(error) end subroutine subroutine test_ELEMENTARY_CHARGE(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d19 From 0d15a22d47d490546b6053639f8bf1c68c79a379 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:58:17 +0200 Subject: [PATCH 050/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index f37469f2c..7a384f482 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -145,7 +145,6 @@ subroutine test_ELEMENTARY_CHARGE(error) end subroutine subroutine test_FARADAY_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 91540702277af3ca3349bb83b451e8c4a2fa6c09 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:58:43 +0200 Subject: [PATCH 051/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 7a384f482..b80221b25 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -156,7 +156,6 @@ subroutine test_FARADAY_CONSTANT(error) end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d3 From 50609ca979a692c17f3b1fd8e8d4f964b1e8f98e Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:59:09 +0200 Subject: [PATCH 052/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index b80221b25..1ddeebe1e 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -167,7 +167,6 @@ subroutine test_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_MOLAR_VOLUME_NTP(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d3 From 8623efbf91f5013c43251e67ba733fc72a42ba4e Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:59:41 +0200 Subject: [PATCH 053/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 1ddeebe1e..5dd3672dd 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -178,7 +178,6 @@ subroutine test_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_PLANCK_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d34 From e407ad67c2c9324753a90e5b940fcaae64d7e762 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:00:02 +0200 Subject: [PATCH 054/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 5dd3672dd..66fc9d397 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -189,7 +189,6 @@ subroutine test_PLANCK_CONSTANT(error) end subroutine subroutine test_SPEED_OF_LIGHT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 43a90bd9a44a193fa526841a632639b5fe6edaaa Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:00:31 +0200 Subject: [PATCH 055/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 66fc9d397..6d7963645 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -200,7 +200,6 @@ subroutine test_SPEED_OF_LIGHT(error) end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 2731820132c3e8b96a23f6501281119ead9ce699 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:00:51 +0200 Subject: [PATCH 056/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 6d7963645..e3c95b053 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -211,7 +211,6 @@ subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d7 From 7bfbd517ed269cad1b36a972806cf29a5de25c0e Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:01:11 +0200 Subject: [PATCH 057/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index e3c95b053..6090decfd 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -222,7 +222,6 @@ subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d36 From 27575d72447d86781866409ec4a4f527513bf9f1 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:01:40 +0200 Subject: [PATCH 058/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 6090decfd..13adbf414 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -233,7 +233,6 @@ subroutine test_U_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d37 From 5dcecb70030f5af0576f3f7a12493fc187e32b1d Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:02:23 +0200 Subject: [PATCH 059/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 13adbf414..dd62fbe56 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -244,7 +244,6 @@ subroutine test_U_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_U_AVOGADRO_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 97a4c88a42582d2ca99af4cdf509c815a7e5d4d5 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:03:02 +0200 Subject: [PATCH 060/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index dd62fbe56..95d78da74 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -255,7 +255,6 @@ subroutine test_U_AVOGADRO_CONSTANT(error) end subroutine subroutine test_U_BOLTZMANN_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From baed38257370499d9d4f458d12b799ba22344730 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:03:23 +0200 Subject: [PATCH 061/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 95d78da74..bbec093f4 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -266,7 +266,6 @@ subroutine test_U_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_U_ELECTRON_VOLT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 5fea52f363bc55a6720a64ee43016c391bbae10b Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:04:35 +0200 Subject: [PATCH 062/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index bbec093f4..e9fcdd846 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -277,7 +277,6 @@ subroutine test_U_ELECTRON_VOLT(error) end subroutine subroutine test_U_ELEMENTARY_CHARGE(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 37791c0fb899c31dd074d2483769bbcf8a20c1b6 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:05:33 +0200 Subject: [PATCH 063/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index e9fcdd846..73d9854a8 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -288,7 +288,6 @@ subroutine test_U_ELEMENTARY_CHARGE(error) end subroutine subroutine test_U_FARADAY_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 2e93d3cf32101e7e88a037e7a074cd0a34eeacde Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:06:41 +0200 Subject: [PATCH 064/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 73d9854a8..35e3c2a9c 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -299,7 +299,6 @@ subroutine test_U_FARADAY_CONSTANT(error) end subroutine subroutine test_U_MOLAR_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d13 From 443ddf666a88a12d26346b2f661e40902fd6422d Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:07:25 +0200 Subject: [PATCH 065/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 35e3c2a9c..1d796763a 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -310,7 +310,6 @@ subroutine test_U_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_U_MOLAR_VOLUME_NTP(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From f281240ecbb8465d2f8e35ba663e405eca64a71f Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:08:40 +0200 Subject: [PATCH 066/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 1d796763a..22affb36c 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -321,7 +321,6 @@ subroutine test_U_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_U_PLANCK_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 2490030c4c9caa8638fd7f57440e448aa6a18581 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:09:07 +0200 Subject: [PATCH 067/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 22affb36c..a046b0651 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -332,7 +332,6 @@ subroutine test_U_PLANCK_CONSTANT(error) end subroutine subroutine test_U_SPEED_OF_LIGHT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 83d46a877d20321ef4f746ff19048f987ad99f94 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:09:26 +0200 Subject: [PATCH 068/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index a046b0651..399037460 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -343,7 +343,6 @@ subroutine test_U_SPEED_OF_LIGHT(error) end subroutine subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 6eaea4549ba93de13caa587680d8fcd44ec6af1d Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:32:00 +0200 Subject: [PATCH 069/144] Add fac as module level variable. --- test/constants/test_constants.f90 | 115 +++++++++++++++--------------- 1 file changed, 58 insertions(+), 57 deletions(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 399037460..cadafe94b 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -18,6 +18,7 @@ module test_constants STANDARD_ACCELERATION_OF_GRAVITY implicit none private + real(dp) :: fac public :: collect_constants contains @@ -56,10 +57,10 @@ subroutine collect_constants(testsuite) end subroutine subroutine test_year(error) - type(error_type), allocatable, intent(out) :: error - + type(error_type), allocatable, intent(out) :: error + integer(int32) :: value, expected, diff - + expected = 2022 value = YEAR diff = expected - value @@ -68,8 +69,8 @@ subroutine test_year(error) end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 7294.29954171d0 * fac value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac) * fac @@ -79,8 +80,8 @@ subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d27 expected = 6.6446573450d-27 * fac value = ALPHA_PARTICLE_MASS%to_real(fac) * fac @@ -90,8 +91,8 @@ subroutine test_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d27 expected = 1.66053906892d-27 * fac value = ATOMIC_MASS_CONSTANT%to_real(fac) * fac @@ -101,8 +102,8 @@ subroutine test_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_AVOGADRO_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d-23 expected = 6.02214076d23 * fac value = AVOGADRO_CONSTANT%to_real(fac) * fac @@ -112,8 +113,8 @@ subroutine test_AVOGADRO_CONSTANT(error) end subroutine subroutine test_BOLTZMANN_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d23 expected = 1.380649d-23 * fac value = BOLTZMANN_CONSTANT%to_real(fac) * fac @@ -123,8 +124,8 @@ subroutine test_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_ELECTRON_VOLT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d19 expected = 1.602176634d-19 * fac value = ELECTRON_VOLT%to_real(fac) * fac @@ -134,8 +135,8 @@ subroutine test_ELECTRON_VOLT(error) end subroutine subroutine test_ELEMENTARY_CHARGE(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d19 expected = 1.602176634d-19 * fac value = ELEMENTARY_CHARGE%to_real(fac) * fac @@ -145,8 +146,8 @@ subroutine test_ELEMENTARY_CHARGE(error) end subroutine subroutine test_FARADAY_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 96485.33212d0 * fac value = FARADAY_CONSTANT%to_real(fac) * fac @@ -156,8 +157,8 @@ subroutine test_FARADAY_CONSTANT(error) end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d3 expected = 1.00000000105d-3 * fac value = MOLAR_MASS_CONSTANT%to_real(fac) * fac @@ -167,8 +168,8 @@ subroutine test_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_MOLAR_VOLUME_NTP(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d3 expected = 22.41396954d-3 * fac value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac) * fac @@ -178,8 +179,8 @@ subroutine test_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_PLANCK_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d34 expected = 6.62607015d-34 * fac value = PLANCK_CONSTANT%to_real(fac) * fac @@ -189,8 +190,8 @@ subroutine test_PLANCK_CONSTANT(error) end subroutine subroutine test_SPEED_OF_LIGHT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 299792458.0d0 * fac value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac) * fac @@ -200,19 +201,19 @@ subroutine test_SPEED_OF_LIGHT(error) end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 9.80665d0 * fac - value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac + value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac diff = expected - value call check(error, diff, 0.0d0) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d7 expected = 0.00000017d0 * fac value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac, uncertainty=.true.) * fac @@ -222,8 +223,8 @@ subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d36 expected = 0.0000000021d-27 * fac value = ALPHA_PARTICLE_MASS%to_real(fac, uncertainty=.true.) * fac @@ -233,8 +234,8 @@ subroutine test_U_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d37 expected = 0.00000000052d-27 * fac value = ATOMIC_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -244,8 +245,8 @@ subroutine test_U_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_U_AVOGADRO_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = AVOGADRO_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -255,8 +256,8 @@ subroutine test_U_AVOGADRO_CONSTANT(error) end subroutine subroutine test_U_BOLTZMANN_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = BOLTZMANN_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -266,8 +267,8 @@ subroutine test_U_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_U_ELECTRON_VOLT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = ELECTRON_VOLT%to_real(fac, uncertainty=.true.) * fac @@ -277,8 +278,8 @@ subroutine test_U_ELECTRON_VOLT(error) end subroutine subroutine test_U_ELEMENTARY_CHARGE(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = ELEMENTARY_CHARGE%to_real(fac, uncertainty=.true.) * fac @@ -288,8 +289,8 @@ subroutine test_U_ELEMENTARY_CHARGE(error) end subroutine subroutine test_U_FARADAY_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = FARADAY_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -299,8 +300,8 @@ subroutine test_U_FARADAY_CONSTANT(error) end subroutine subroutine test_U_MOLAR_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d13 expected = 0.00000000031d-3 * fac value = MOLAR_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -310,8 +311,8 @@ subroutine test_U_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_U_MOLAR_VOLUME_NTP(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac, uncertainty=.true.) * fac @@ -321,8 +322,8 @@ subroutine test_U_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_U_PLANCK_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = PLANCK_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -332,8 +333,8 @@ subroutine test_U_PLANCK_CONSTANT(error) end subroutine subroutine test_U_SPEED_OF_LIGHT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac, uncertainty=.true.) * fac @@ -343,8 +344,8 @@ subroutine test_U_SPEED_OF_LIGHT(error) end subroutine subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac, uncertainty=.true.) * fac @@ -378,4 +379,4 @@ program tester error stop end if -end program \ No newline at end of file +end program From 3120376f076962a6c67e44377802667ea698ec69 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Tue, 21 May 2024 06:52:17 +0200 Subject: [PATCH 070/144] Direct comparison for tests. --- test/constants/test_constants.f90 | 191 +++++------------------------- 1 file changed, 27 insertions(+), 164 deletions(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index cadafe94b..9ab056cf2 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -18,7 +18,6 @@ module test_constants STANDARD_ACCELERATION_OF_GRAVITY implicit none private - real(dp) :: fac public :: collect_constants contains @@ -58,299 +57,163 @@ subroutine collect_constants(testsuite) subroutine test_year(error) type(error_type), allocatable, intent(out) :: error - - integer(int32) :: value, expected, diff - - expected = 2022 - value = YEAR - diff = expected - value - call check(error, diff, 0) + call check(error, 2022 - YEAR, 0) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 7294.29954171d0 * fac - value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 7294.29954171_dp - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d27 - expected = 6.6446573450d-27 * fac - value = ALPHA_PARTICLE_MASS%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 6.6446573450d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d27 - expected = 1.66053906892d-27 * fac - value = ATOMIC_MASS_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.66053906892d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_AVOGADRO_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d-23 - expected = 6.02214076d23 * fac - value = AVOGADRO_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 6.02214076d23 - AVOGADRO_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_BOLTZMANN_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d23 - expected = 1.380649d-23 * fac - value = BOLTZMANN_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.380649d-23 - BOLTZMANN_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ELECTRON_VOLT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d19 - expected = 1.602176634d-19 * fac - value = ELECTRON_VOLT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.602176634d-19 - ELECTRON_VOLT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ELEMENTARY_CHARGE(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d19 - expected = 1.602176634d-19 * fac - value = ELEMENTARY_CHARGE%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.602176634d-19 - ELEMENTARY_CHARGE%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_FARADAY_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 96485.33212d0 * fac - value = FARADAY_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 96485.33212d0 - FARADAY_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d3 - expected = 1.00000000105d-3 * fac - value = MOLAR_MASS_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.00000000105d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_MOLAR_VOLUME_NTP(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d3 - expected = 22.41396954d-3 * fac - value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 22.41396954d-3 - MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_PLANCK_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d34 - expected = 6.62607015d-34 * fac - value = PLANCK_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 6.62607015d-34 - PLANCK_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_SPEED_OF_LIGHT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 299792458.0d0 * fac - value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 299792458.0d0 - SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 9.80665d0 * fac - value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 9.80665d0 - STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d7 - expected = 0.00000017d0 * fac - value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.00000017d0 - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d36 - expected = 0.0000000021d-27 * fac - value = ALPHA_PARTICLE_MASS%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.0000000021d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d37 - expected = 0.00000000052d-27 * fac - value = ATOMIC_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.00000000052d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_AVOGADRO_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = AVOGADRO_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, AVOGADRO_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_BOLTZMANN_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = BOLTZMANN_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, BOLTZMANN_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ELECTRON_VOLT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = ELECTRON_VOLT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, ELECTRON_VOLT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ELEMENTARY_CHARGE(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = ELEMENTARY_CHARGE%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, ELEMENTARY_CHARGE%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_FARADAY_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = FARADAY_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, FARADAY_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d13 - expected = 0.00000000031d-3 * fac - value = MOLAR_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.00000000031d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_MOLAR_VOLUME_NTP(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_PLANCK_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = PLANCK_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, PLANCK_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_SPEED_OF_LIGHT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine From 8ca108817879573687cb6e01c1a1e667bfb57654 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Tue, 21 May 2024 08:04:30 +0200 Subject: [PATCH 071/144] Fix arguments order in call to check function. --- test/constants/test_constants.f90 | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 9ab056cf2..b61c140a9 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -57,103 +57,103 @@ subroutine collect_constants(testsuite) subroutine test_year(error) type(error_type), allocatable, intent(out) :: error - call check(error, 2022 - YEAR, 0) + call check(error, YEAR, 2022) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - call check(error, 7294.29954171_dp - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp), 0.0_dp) + call check(error, ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp), 7294.29954171_dp) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - call check(error, 6.6446573450d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp), 0.0_dp) + call check(error, ALPHA_PARTICLE_MASS%to_real(1.0_dp), 6.6446573450d-27) if (allocated(error)) return end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.66053906892d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, ATOMIC_MASS_CONSTANT%to_real(1.0_dp), 1.66053906892d-27) if (allocated(error)) return end subroutine subroutine test_AVOGADRO_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 6.02214076d23 - AVOGADRO_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, AVOGADRO_CONSTANT%to_real(1.0_dp), 6.02214076d23) if (allocated(error)) return end subroutine subroutine test_BOLTZMANN_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.380649d-23 - BOLTZMANN_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, BOLTZMANN_CONSTANT%to_real(1.0_dp), 1.380649d-23) if (allocated(error)) return end subroutine subroutine test_ELECTRON_VOLT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.602176634d-19 - ELECTRON_VOLT%to_real(1.0_dp), 0.0_dp) + call check(error, ELECTRON_VOLT%to_real(1.0_dp), 1.602176634d-19) if (allocated(error)) return end subroutine subroutine test_ELEMENTARY_CHARGE(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.602176634d-19 - ELEMENTARY_CHARGE%to_real(1.0_dp), 0.0_dp) + call check(error, ELEMENTARY_CHARGE%to_real(1.0_dp), 1.602176634d-19) if (allocated(error)) return end subroutine subroutine test_FARADAY_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 96485.33212d0 - FARADAY_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, FARADAY_CONSTANT%to_real(1.0_dp), 96485.33212d0) if (allocated(error)) return end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.00000000105d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, MOLAR_MASS_CONSTANT%to_real(1.0_dp), 1.00000000105d-3) if (allocated(error)) return end subroutine subroutine test_MOLAR_VOLUME_NTP(error) type(error_type), allocatable, intent(out) :: error - call check(error, 22.41396954d-3 - MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp), 0.0_dp) + call check(error, MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp), 22.41396954d-3) if (allocated(error)) return end subroutine subroutine test_PLANCK_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 6.62607015d-34 - PLANCK_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, PLANCK_CONSTANT%to_real(1.0_dp), 6.62607015d-34) if (allocated(error)) return end subroutine subroutine test_SPEED_OF_LIGHT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 299792458.0d0 - SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp), 0.0_dp) + call check(error, SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp), 299792458.0d0) if (allocated(error)) return end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) type(error_type), allocatable, intent(out) :: error - call check(error, 9.80665d0 - STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp), 0.0_dp) + call check(error, STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp), 9.80665d0) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.00000017d0 - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp, uncertainty=.true.), 0.00000017d0) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.0000000021d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, ALPHA_PARTICLE_MASS%to_real(1.0_dp, uncertainty=.true.), 0.0000000021d-27) if (allocated(error)) return end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.00000000052d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, ATOMIC_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.00000000052d-27) if (allocated(error)) return end subroutine @@ -189,7 +189,7 @@ subroutine test_U_FARADAY_CONSTANT(error) subroutine test_U_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.00000000031d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, MOLAR_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.00000000031d-3) if (allocated(error)) return end subroutine From e331d567bf2cc1b491a3538ec5f740d517be6b82 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 21 Apr 2024 07:42:13 +0200 Subject: [PATCH 072/144] Add codata constants. --- src/CMakeLists.txt | 1 + src/stdlib_codata.f90 | 1786 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1787 insertions(+) create mode 100644 src/stdlib_codata.f90 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a031ab823..98df5ac8f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -97,6 +97,7 @@ set(SRC stdlib_ansi_operator.f90 stdlib_ansi_to_string.f90 stdlib_array.f90 + stdlib_codata.f90 stdlib_error.f90 stdlib_hashmap_wrappers.f90 stdlib_hashmaps.f90 diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 new file mode 100644 index 000000000..fd15a6fae --- /dev/null +++ b/src/stdlib_codata.f90 @@ -0,0 +1,1786 @@ +module stdlib_codata + !! Codata Constants + use stdlib_kinds, only: dp, int32 + private + +type, public :: codata_constant +!! Derived type for representing a Codata constant. + character(len=64) :: name + real(dp) :: value + real(dp) :: uncertainty + character(len=32) :: unit +end type + +integer(int32), parameter, public :: YEAR = 2018 !! Year of release. + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & +codata_constant("alpha particle-electron mass ratio", & +real(7294.29954142d0,dp), real(0.00000024d0,dp), & +"") !! alpha particle-electron mass ratio + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS = & +codata_constant("alpha particle mass", & +real(6.6446573357d-27,dp), real(0.0000000020d-27,dp), & +"kg") !! alpha particle mass + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & +codata_constant("alpha particle mass energy equivalent", & +real(5.9719201914d-10,dp), real(0.0000000018d-10,dp), & +"J") !! alpha particle mass energy equivalent + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("alpha particle mass energy equivalent in MeV", & +real(3727.3794066d0,dp), real(0.0000011d0,dp), & +"MeV") !! alpha particle mass energy equivalent in MeV + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & +codata_constant("alpha particle mass in u", & +real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +"u") !! alpha particle mass in u + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & +codata_constant("alpha particle molar mass", & +real(4.0015061777d-3,dp), real(0.0000000012d-3,dp), & +"kg mol^-1") !! alpha particle molar mass + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & +codata_constant("alpha particle-proton mass ratio", & +real(3.97259969009d0,dp), real(0.00000000022d0,dp), & +"") !! alpha particle-proton mass ratio + +type(codata_constant), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & +codata_constant("alpha particle relative atomic mass", & +real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +"") !! alpha particle relative atomic mass + +type(codata_constant), parameter, public :: ANGSTROM_STAR = & +codata_constant("Angstrom star", & +real(1.00001495d-10,dp), real(0.00000090d-10,dp), & +"m") !! Angstrom star + +type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT = & +codata_constant("atomic mass constant", & +real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +"kg") !! atomic mass constant + +type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & +codata_constant("atomic mass constant energy equivalent", & +real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +"J") !! atomic mass constant energy equivalent + +type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("atomic mass constant energy equivalent in MeV", & +real(931.49410242d0,dp), real(0.00000028d0,dp), & +"MeV") !! atomic mass constant energy equivalent in MeV + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("atomic mass unit-electron volt relationship", & +real(9.3149410242d8,dp), real(0.0000000028d8,dp), & +"eV") !! atomic mass unit-electron volt relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & +codata_constant("atomic mass unit-hartree relationship", & +real(3.4231776874d7,dp), real(0.0000000010d7,dp), & +"E_h") !! atomic mass unit-hartree relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & +codata_constant("atomic mass unit-hertz relationship", & +real(2.25234271871d23,dp), real(0.00000000068d23,dp), & +"Hz") !! atomic mass unit-hertz relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & +codata_constant("atomic mass unit-inverse meter relationship", & +real(7.5130066104d14,dp), real(0.0000000023d14,dp), & +"m^-1") !! atomic mass unit-inverse meter relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & +codata_constant("atomic mass unit-joule relationship", & +real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +"J") !! atomic mass unit-joule relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & +codata_constant("atomic mass unit-kelvin relationship", & +real(1.08095401916d13,dp), real(0.00000000033d13,dp), & +"K") !! atomic mass unit-kelvin relationship + +type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & +codata_constant("atomic mass unit-kilogram relationship", & +real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +"kg") !! atomic mass unit-kilogram relationship + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & +codata_constant("atomic unit of 1st hyperpolarizability", & +real(3.2063613061d-53,dp), real(0.0000000015d-53,dp), & +"C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & +codata_constant("atomic unit of 2nd hyperpolarizability", & +real(6.2353799905d-65,dp), real(0.0000000038d-65,dp), & +"C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ACTION = & +codata_constant("atomic unit of action", & +real(1.054571817d-34,dp), real(0.0d0,dp), & +"J s") !! atomic unit of action + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & +codata_constant("atomic unit of charge", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"C") !! atomic unit of charge + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & +codata_constant("atomic unit of charge density", & +real(1.08120238457d12,dp), real(0.00000000049d12,dp), & +"C m^-3") !! atomic unit of charge density + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & +codata_constant("atomic unit of current", & +real(6.623618237510d-3,dp), real(0.000000000013d-3,dp), & +"A") !! atomic unit of current + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & +codata_constant("atomic unit of electric dipole mom.", & +real(8.4783536255d-30,dp), real(0.0000000013d-30,dp), & +"C m") !! atomic unit of electric dipole mom. + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & +codata_constant("atomic unit of electric field", & +real(5.14220674763d11,dp), real(0.00000000078d11,dp), & +"V m^-1") !! atomic unit of electric field + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & +codata_constant("atomic unit of electric field gradient", & +real(9.7173624292d21,dp), real(0.0000000029d21,dp), & +"V m^-2") !! atomic unit of electric field gradient + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & +codata_constant("atomic unit of electric polarizability", & +real(1.64877727436d-41,dp), real(0.00000000050d-41,dp), & +"C^2 m^2 J^-1") !! atomic unit of electric polarizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & +codata_constant("atomic unit of electric potential", & +real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +"V") !! atomic unit of electric potential + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & +codata_constant("atomic unit of electric quadrupole mom.", & +real(4.4865515246d-40,dp), real(0.0000000014d-40,dp), & +"C m^2") !! atomic unit of electric quadrupole mom. + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & +codata_constant("atomic unit of energy", & +real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +"J") !! atomic unit of energy + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_FORCE = & +codata_constant("atomic unit of force", & +real(8.2387234983d-8,dp), real(0.0000000012d-8,dp), & +"N") !! atomic unit of force + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & +codata_constant("atomic unit of length", & +real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +"m") !! atomic unit of length + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & +codata_constant("atomic unit of mag. dipole mom.", & +real(1.85480201566d-23,dp), real(0.00000000056d-23,dp), & +"J T^-1") !! atomic unit of mag. dipole mom. + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & +codata_constant("atomic unit of mag. flux density", & +real(2.35051756758d5,dp), real(0.00000000071d5,dp), & +"T") !! atomic unit of mag. flux density + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & +codata_constant("atomic unit of magnetizability", & +real(7.8910366008d-29,dp), real(0.0000000048d-29,dp), & +"J T^-2") !! atomic unit of magnetizability + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MASS = & +codata_constant("atomic unit of mass", & +real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +"kg") !! atomic unit of mass + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & +codata_constant("atomic unit of momentum", & +real(1.99285191410d-24,dp), real(0.00000000030d-24,dp), & +"kg m s^-1") !! atomic unit of momentum + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & +codata_constant("atomic unit of permittivity", & +real(1.11265005545d-10,dp), real(0.00000000017d-10,dp), & +"F m^-1") !! atomic unit of permittivity + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_TIME = & +codata_constant("atomic unit of time", & +real(2.4188843265857d-17,dp), real(0.0000000000047d-17,dp), & +"s") !! atomic unit of time + +type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & +codata_constant("atomic unit of velocity", & +real(2.18769126364d6,dp), real(0.00000000033d6,dp), & +"m s^-1") !! atomic unit of velocity + +type(codata_constant), parameter, public :: AVOGADRO_CONSTANT = & +codata_constant("Avogadro constant", & +real(6.02214076d23,dp), real(0.0d0,dp), & +"mol^-1") !! Avogadro constant + +type(codata_constant), parameter, public :: BOHR_MAGNETON = & +codata_constant("Bohr magneton", & +real(9.2740100783d-24,dp), real(0.0000000028d-24,dp), & +"J T^-1") !! Bohr magneton + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_EV_T = & +codata_constant("Bohr magneton in eV/T", & +real(5.7883818060d-5,dp), real(0.0000000017d-5,dp), & +"eV T^-1") !! Bohr magneton in eV/T + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & +codata_constant("Bohr magneton in Hz/T", & +real(1.39962449361d10,dp), real(0.00000000042d10,dp), & +"Hz T^-1") !! Bohr magneton in Hz/T + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant("Bohr magneton in inverse meter per tesla", & +real(46.686447783d0,dp), real(0.000000014d0,dp), & +"m^-1 T^-1") !! Bohr magneton in inverse meter per tesla + +type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_K_T = & +codata_constant("Bohr magneton in K/T", & +real(0.67171381563d0,dp), real(0.00000000020d0,dp), & +"K T^-1") !! Bohr magneton in K/T + +type(codata_constant), parameter, public :: BOHR_RADIUS = & +codata_constant("Bohr radius", & +real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +"m") !! Bohr radius + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT = & +codata_constant("Boltzmann constant", & +real(1.380649d-23,dp), real(0.0d0,dp), & +"J K^-1") !! Boltzmann constant + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & +codata_constant("Boltzmann constant in eV/K", & +real(8.617333262d-5,dp), real(0.0d0,dp), & +"eV K^-1") !! Boltzmann constant in eV/K + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & +codata_constant("Boltzmann constant in Hz/K", & +real(2.083661912d10,dp), real(0.0d0,dp), & +"Hz K^-1") !! Boltzmann constant in Hz/K + +type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & +codata_constant("Boltzmann constant in inverse meter per kelvin", & +real(69.50348004d0,dp), real(0.0d0,dp), & +"m^-1 K^-1") !! Boltzmann constant in inverse meter per kelvin + +type(codata_constant), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & +codata_constant("characteristic impedance of vacuum", & +real(376.730313668d0,dp), real(0.000000057d0,dp), & +"ohm") !! characteristic impedance of vacuum + +type(codata_constant), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & +codata_constant("classical electron radius", & +real(2.8179403262d-15,dp), real(0.0000000013d-15,dp), & +"m") !! classical electron radius + +type(codata_constant), parameter, public :: COMPTON_WAVELENGTH = & +codata_constant("Compton wavelength", & +real(2.42631023867d-12,dp), real(0.00000000073d-12,dp), & +"m") !! Compton wavelength + +type(codata_constant), parameter, public :: CONDUCTANCE_QUANTUM = & +codata_constant("conductance quantum", & +real(7.748091729d-5,dp), real(0.0d0,dp), & +"S") !! conductance quantum + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & +codata_constant("conventional value of ampere-90", & +real(1.00000008887d0,dp), real(0.0d0,dp), & +"A") !! conventional value of ampere-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & +codata_constant("conventional value of coulomb-90", & +real(1.00000008887d0,dp), real(0.0d0,dp), & +"C") !! conventional value of coulomb-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & +codata_constant("conventional value of farad-90", & +real(0.99999998220d0,dp), real(0.0d0,dp), & +"F") !! conventional value of farad-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & +codata_constant("conventional value of henry-90", & +real(1.00000001779d0,dp), real(0.0d0,dp), & +"H") !! conventional value of henry-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & +codata_constant("conventional value of Josephson constant", & +real(483597.9d9,dp), real(0.0d0,dp), & +"Hz V^-1") !! conventional value of Josephson constant + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & +codata_constant("conventional value of ohm-90", & +real(1.00000001779d0,dp), real(0.0d0,dp), & +"ohm") !! conventional value of ohm-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & +codata_constant("conventional value of volt-90", & +real(1.00000010666d0,dp), real(0.0d0,dp), & +"V") !! conventional value of volt-90 + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & +codata_constant("conventional value of von Klitzing constant", & +real(25812.807d0,dp), real(0.0d0,dp), & +"ohm") !! conventional value of von Klitzing constant + +type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & +codata_constant("conventional value of watt-90", & +real(1.00000019553d0,dp), real(0.0d0,dp), & +"W") !! conventional value of watt-90 + +type(codata_constant), parameter, public :: COPPER_X_UNIT = & +codata_constant("Copper x unit", & +real(1.00207697d-13,dp), real(0.00000028d-13,dp), & +"m") !! Copper x unit + +type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & +codata_constant("deuteron-electron mag. mom. ratio", & +real(-4.664345551d-4,dp), real(0.000000012d-4,dp), & +"") !! deuteron-electron mag. mom. ratio + +type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & +codata_constant("deuteron-electron mass ratio", & +real(3670.48296788d0,dp), real(0.00000013d0,dp), & +"") !! deuteron-electron mass ratio + +type(codata_constant), parameter, public :: DEUTERON_G_FACTOR = & +codata_constant("deuteron g factor", & +real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +"") !! deuteron g factor + +type(codata_constant), parameter, public :: DEUTERON_MAG_MOM = & +codata_constant("deuteron mag. mom.", & +real(4.330735094d-27,dp), real(0.000000011d-27,dp), & +"J T^-1") !! deuteron mag. mom. + +type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("deuteron mag. mom. to Bohr magneton ratio", & +real(4.669754570d-4,dp), real(0.000000012d-4,dp), & +"") !! deuteron mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("deuteron mag. mom. to nuclear magneton ratio", & +real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +"") !! deuteron mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: DEUTERON_MASS = & +codata_constant("deuteron mass", & +real(3.3435837724d-27,dp), real(0.0000000010d-27,dp), & +"kg") !! deuteron mass + +type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & +codata_constant("deuteron mass energy equivalent", & +real(3.00506323102d-10,dp), real(0.00000000091d-10,dp), & +"J") !! deuteron mass energy equivalent + +type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("deuteron mass energy equivalent in MeV", & +real(1875.61294257d0,dp), real(0.00000057d0,dp), & +"MeV") !! deuteron mass energy equivalent in MeV + +type(codata_constant), parameter, public :: DEUTERON_MASS_IN_U = & +codata_constant("deuteron mass in u", & +real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +"u") !! deuteron mass in u + +type(codata_constant), parameter, public :: DEUTERON_MOLAR_MASS = & +codata_constant("deuteron molar mass", & +real(2.01355321205d-3,dp), real(0.00000000061d-3,dp), & +"kg mol^-1") !! deuteron molar mass + +type(codata_constant), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & +codata_constant("deuteron-neutron mag. mom. ratio", & +real(-0.44820653d0,dp), real(0.00000011d0,dp), & +"") !! deuteron-neutron mag. mom. ratio + +type(codata_constant), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & +codata_constant("deuteron-proton mag. mom. ratio", & +real(0.30701220939d0,dp), real(0.00000000079d0,dp), & +"") !! deuteron-proton mag. mom. ratio + +type(codata_constant), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & +codata_constant("deuteron-proton mass ratio", & +real(1.99900750139d0,dp), real(0.00000000011d0,dp), & +"") !! deuteron-proton mass ratio + +type(codata_constant), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & +codata_constant("deuteron relative atomic mass", & +real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +"") !! deuteron relative atomic mass + +type(codata_constant), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & +codata_constant("deuteron rms charge radius", & +real(2.12799d-15,dp), real(0.00074d-15,dp), & +"m") !! deuteron rms charge radius + +type(codata_constant), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant("electron charge to mass quotient", & +real(-1.75882001076d11,dp), real(0.00000000053d11,dp), & +"C kg^-1") !! electron charge to mass quotient + +type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & +codata_constant("electron-deuteron mag. mom. ratio", & +real(-2143.9234915d0,dp), real(0.0000056d0,dp), & +"") !! electron-deuteron mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & +codata_constant("electron-deuteron mass ratio", & +real(2.724437107462d-4,dp), real(0.000000000096d-4,dp), & +"") !! electron-deuteron mass ratio + +type(codata_constant), parameter, public :: ELECTRON_G_FACTOR = & +codata_constant("electron g factor", & +real(-2.00231930436256d0,dp), real(0.00000000000035d0,dp), & +"") !! electron g factor + +type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO = & +codata_constant("electron gyromag. ratio", & +real(1.76085963023d11,dp), real(0.00000000053d11,dp), & +"s^-1 T^-1") !! electron gyromag. ratio + +type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("electron gyromag. ratio in MHz/T", & +real(28024.9514242d0,dp), real(0.0000085d0,dp), & +"MHz T^-1") !! electron gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: ELECTRON_HELION_MASS_RATIO = & +codata_constant("electron-helion mass ratio", & +real(1.819543074573d-4,dp), real(0.000000000079d-4,dp), & +"") !! electron-helion mass ratio + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM = & +codata_constant("electron mag. mom.", & +real(-9.2847647043d-24,dp), real(0.0000000028d-24,dp), & +"J T^-1") !! electron mag. mom. + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & +codata_constant("electron mag. mom. anomaly", & +real(1.15965218128d-3,dp), real(0.00000000018d-3,dp), & +"") !! electron mag. mom. anomaly + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("electron mag. mom. to Bohr magneton ratio", & +real(-1.00115965218128d0,dp), real(0.00000000000018d0,dp), & +"") !! electron mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("electron mag. mom. to nuclear magneton ratio", & +real(-1838.28197188d0,dp), real(0.00000011d0,dp), & +"") !! electron mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: ELECTRON_MASS = & +codata_constant("electron mass", & +real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +"kg") !! electron mass + +type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant("electron mass energy equivalent", & +real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +"J") !! electron mass energy equivalent + +type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("electron mass energy equivalent in MeV", & +real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +"MeV") !! electron mass energy equivalent in MeV + +type(codata_constant), parameter, public :: ELECTRON_MASS_IN_U = & +codata_constant("electron mass in u", & +real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +"u") !! electron mass in u + +type(codata_constant), parameter, public :: ELECTRON_MOLAR_MASS = & +codata_constant("electron molar mass", & +real(5.4857990888d-7,dp), real(0.0000000017d-7,dp), & +"kg mol^-1") !! electron molar mass + +type(codata_constant), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & +codata_constant("electron-muon mag. mom. ratio", & +real(206.7669883d0,dp), real(0.0000046d0,dp), & +"") !! electron-muon mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_MUON_MASS_RATIO = & +codata_constant("electron-muon mass ratio", & +real(4.83633169d-3,dp), real(0.00000011d-3,dp), & +"") !! electron-muon mass ratio + +type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & +codata_constant("electron-neutron mag. mom. ratio", & +real(960.92050d0,dp), real(0.00023d0,dp), & +"") !! electron-neutron mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & +codata_constant("electron-neutron mass ratio", & +real(5.4386734424d-4,dp), real(0.0000000026d-4,dp), & +"") !! electron-neutron mass ratio + +type(codata_constant), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & +codata_constant("electron-proton mag. mom. ratio", & +real(-658.21068789d0,dp), real(0.00000020d0,dp), & +"") !! electron-proton mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & +codata_constant("electron-proton mass ratio", & +real(5.44617021487d-4,dp), real(0.00000000033d-4,dp), & +"") !! electron-proton mass ratio + +type(codata_constant), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & +codata_constant("electron relative atomic mass", & +real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +"") !! electron relative atomic mass + +type(codata_constant), parameter, public :: ELECTRON_TAU_MASS_RATIO = & +codata_constant("electron-tau mass ratio", & +real(2.87585d-4,dp), real(0.00019d-4,dp), & +"") !! electron-tau mass ratio + +type(codata_constant), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & +codata_constant("electron to alpha particle mass ratio", & +real(1.370933554787d-4,dp), real(0.000000000045d-4,dp), & +"") !! electron to alpha particle mass ratio + +type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & +codata_constant("electron to shielded helion mag. mom. ratio", & +real(864.058257d0,dp), real(0.000010d0,dp), & +"") !! electron to shielded helion mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant("electron to shielded proton mag. mom. ratio", & +real(-658.2275971d0,dp), real(0.0000072d0,dp), & +"") !! electron to shielded proton mag. mom. ratio + +type(codata_constant), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & +codata_constant("electron-triton mass ratio", & +real(1.819200062251d-4,dp), real(0.000000000090d-4,dp), & +"") !! electron-triton mass ratio + +type(codata_constant), parameter, public :: ELECTRON_VOLT = & +codata_constant("electron volt", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"J") !! electron volt + +type(codata_constant), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("electron volt-atomic mass unit relationship", & +real(1.07354410233d-9,dp), real(0.00000000032d-9,dp), & +"u") !! electron volt-atomic mass unit relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & +codata_constant("electron volt-hartree relationship", & +real(3.6749322175655d-2,dp), real(0.0000000000071d-2,dp), & +"E_h") !! electron volt-hartree relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & +codata_constant("electron volt-hertz relationship", & +real(2.417989242d14,dp), real(0.0d0,dp), & +"Hz") !! electron volt-hertz relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & +codata_constant("electron volt-inverse meter relationship", & +real(8.065543937d5,dp), real(0.0d0,dp), & +"m^-1") !! electron volt-inverse meter relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & +codata_constant("electron volt-joule relationship", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"J") !! electron volt-joule relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & +codata_constant("electron volt-kelvin relationship", & +real(1.160451812d4,dp), real(0.0d0,dp), & +"K") !! electron volt-kelvin relationship + +type(codata_constant), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & +codata_constant("electron volt-kilogram relationship", & +real(1.782661921d-36,dp), real(0.0d0,dp), & +"kg") !! electron volt-kilogram relationship + +type(codata_constant), parameter, public :: ELEMENTARY_CHARGE = & +codata_constant("elementary charge", & +real(1.602176634d-19,dp), real(0.0d0,dp), & +"C") !! elementary charge + +type(codata_constant), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & +codata_constant("elementary charge over h-bar", & +real(1.519267447d15,dp), real(0.0d0,dp), & +"A J^-1") !! elementary charge over h-bar + +type(codata_constant), parameter, public :: FARADAY_CONSTANT = & +codata_constant("Faraday constant", & +real(96485.33212d0,dp), real(0.0d0,dp), & +"C mol^-1") !! Faraday constant + +type(codata_constant), parameter, public :: FERMI_COUPLING_CONSTANT = & +codata_constant("Fermi coupling constant", & +real(1.1663787d-5,dp), real(0.0000006d-5,dp), & +"GeV^-2") !! Fermi coupling constant + +type(codata_constant), parameter, public :: FINE_STRUCTURE_CONSTANT = & +codata_constant("fine-structure constant", & +real(7.2973525693d-3,dp), real(0.0000000011d-3,dp), & +"") !! fine-structure constant + +type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT = & +codata_constant("first radiation constant", & +real(3.741771852d-16,dp), real(0.0d0,dp), & +"W m^2") !! first radiation constant + +type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & +codata_constant("first radiation constant for spectral radiance", & +real(1.191042972d-16,dp), real(0.0d0,dp), & +"W m^2 sr^-1") !! first radiation constant for spectral radiance + +type(codata_constant), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("hartree-atomic mass unit relationship", & +real(2.92126232205d-8,dp), real(0.00000000088d-8,dp), & +"u") !! hartree-atomic mass unit relationship + +type(codata_constant), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("hartree-electron volt relationship", & +real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +"eV") !! hartree-electron volt relationship + +type(codata_constant), parameter, public :: HARTREE_ENERGY = & +codata_constant("Hartree energy", & +real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +"J") !! Hartree energy + +type(codata_constant), parameter, public :: HARTREE_ENERGY_IN_EV = & +codata_constant("Hartree energy in eV", & +real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +"eV") !! Hartree energy in eV + +type(codata_constant), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & +codata_constant("hartree-hertz relationship", & +real(6.579683920502d15,dp), real(0.000000000013d15,dp), & +"Hz") !! hartree-hertz relationship + +type(codata_constant), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & +codata_constant("hartree-inverse meter relationship", & +real(2.1947463136320d7,dp), real(0.0000000000043d7,dp), & +"m^-1") !! hartree-inverse meter relationship + +type(codata_constant), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & +codata_constant("hartree-joule relationship", & +real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +"J") !! hartree-joule relationship + +type(codata_constant), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & +codata_constant("hartree-kelvin relationship", & +real(3.1577502480407d5,dp), real(0.0000000000061d5,dp), & +"K") !! hartree-kelvin relationship + +type(codata_constant), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & +codata_constant("hartree-kilogram relationship", & +real(4.8508702095432d-35,dp), real(0.0000000000094d-35,dp), & +"kg") !! hartree-kilogram relationship + +type(codata_constant), parameter, public :: HELION_ELECTRON_MASS_RATIO = & +codata_constant("helion-electron mass ratio", & +real(5495.88528007d0,dp), real(0.00000024d0,dp), & +"") !! helion-electron mass ratio + +type(codata_constant), parameter, public :: HELION_G_FACTOR = & +codata_constant("helion g factor", & +real(-4.255250615d0,dp), real(0.000000050d0,dp), & +"") !! helion g factor + +type(codata_constant), parameter, public :: HELION_MAG_MOM = & +codata_constant("helion mag. mom.", & +real(-1.074617532d-26,dp), real(0.000000013d-26,dp), & +"J T^-1") !! helion mag. mom. + +type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("helion mag. mom. to Bohr magneton ratio", & +real(-1.158740958d-3,dp), real(0.000000014d-3,dp), & +"") !! helion mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("helion mag. mom. to nuclear magneton ratio", & +real(-2.127625307d0,dp), real(0.000000025d0,dp), & +"") !! helion mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: HELION_MASS = & +codata_constant("helion mass", & +real(5.0064127796d-27,dp), real(0.0000000015d-27,dp), & +"kg") !! helion mass + +type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & +codata_constant("helion mass energy equivalent", & +real(4.4995394125d-10,dp), real(0.0000000014d-10,dp), & +"J") !! helion mass energy equivalent + +type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("helion mass energy equivalent in MeV", & +real(2808.39160743d0,dp), real(0.00000085d0,dp), & +"MeV") !! helion mass energy equivalent in MeV + +type(codata_constant), parameter, public :: HELION_MASS_IN_U = & +codata_constant("helion mass in u", & +real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +"u") !! helion mass in u + +type(codata_constant), parameter, public :: HELION_MOLAR_MASS = & +codata_constant("helion molar mass", & +real(3.01493224613d-3,dp), real(0.00000000091d-3,dp), & +"kg mol^-1") !! helion molar mass + +type(codata_constant), parameter, public :: HELION_PROTON_MASS_RATIO = & +codata_constant("helion-proton mass ratio", & +real(2.99315267167d0,dp), real(0.00000000013d0,dp), & +"") !! helion-proton mass ratio + +type(codata_constant), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & +codata_constant("helion relative atomic mass", & +real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +"") !! helion relative atomic mass + +type(codata_constant), parameter, public :: HELION_SHIELDING_SHIFT = & +codata_constant("helion shielding shift", & +real(5.996743d-5,dp), real(0.000010d-5,dp), & +"") !! helion shielding shift + +type(codata_constant), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("hertz-atomic mass unit relationship", & +real(4.4398216652d-24,dp), real(0.0000000013d-24,dp), & +"u") !! hertz-atomic mass unit relationship + +type(codata_constant), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("hertz-electron volt relationship", & +real(4.135667696d-15,dp), real(0.0d0,dp), & +"eV") !! hertz-electron volt relationship + +type(codata_constant), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & +codata_constant("hertz-hartree relationship", & +real(1.5198298460570d-16,dp), real(0.0000000000029d-16,dp), & +"E_h") !! hertz-hartree relationship + +type(codata_constant), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & +codata_constant("hertz-inverse meter relationship", & +real(3.335640951d-9,dp), real(0.0d0,dp), & +"m^-1") !! hertz-inverse meter relationship + +type(codata_constant), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & +codata_constant("hertz-joule relationship", & +real(6.62607015d-34,dp), real(0.0d0,dp), & +"J") !! hertz-joule relationship + +type(codata_constant), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & +codata_constant("hertz-kelvin relationship", & +real(4.799243073d-11,dp), real(0.0d0,dp), & +"K") !! hertz-kelvin relationship + +type(codata_constant), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & +codata_constant("hertz-kilogram relationship", & +real(7.372497323d-51,dp), real(0.0d0,dp), & +"kg") !! hertz-kilogram relationship + +type(codata_constant), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & +codata_constant("hyperfine transition frequency of Cs-133", & +real(9192631770d0,dp), real(0.0d0,dp), & +"Hz") !! hyperfine transition frequency of Cs-133 + +type(codata_constant), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & +codata_constant("inverse fine-structure constant", & +real(137.035999084d0,dp), real(0.000000021d0,dp), & +"") !! inverse fine-structure constant + +type(codata_constant), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("inverse meter-atomic mass unit relationship", & +real(1.33102505010d-15,dp), real(0.00000000040d-15,dp), & +"u") !! inverse meter-atomic mass unit relationship + +type(codata_constant), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("inverse meter-electron volt relationship", & +real(1.239841984d-6,dp), real(0.0d0,dp), & +"eV") !! inverse meter-electron volt relationship + +type(codata_constant), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & +codata_constant("inverse meter-hartree relationship", & +real(4.5563352529120d-8,dp), real(0.0000000000088d-8,dp), & +"E_h") !! inverse meter-hartree relationship + +type(codata_constant), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & +codata_constant("inverse meter-hertz relationship", & +real(299792458d0,dp), real(0.0d0,dp), & +"Hz") !! inverse meter-hertz relationship + +type(codata_constant), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & +codata_constant("inverse meter-joule relationship", & +real(1.986445857d-25,dp), real(0.0d0,dp), & +"J") !! inverse meter-joule relationship + +type(codata_constant), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & +codata_constant("inverse meter-kelvin relationship", & +real(1.438776877d-2,dp), real(0.0d0,dp), & +"K") !! inverse meter-kelvin relationship + +type(codata_constant), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & +codata_constant("inverse meter-kilogram relationship", & +real(2.210219094d-42,dp), real(0.0d0,dp), & +"kg") !! inverse meter-kilogram relationship + +type(codata_constant), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & +codata_constant("inverse of conductance quantum", & +real(12906.40372d0,dp), real(0.0d0,dp), & +"ohm") !! inverse of conductance quantum + +type(codata_constant), parameter, public :: JOSEPHSON_CONSTANT = & +codata_constant("Josephson constant", & +real(483597.8484d9,dp), real(0.0d0,dp), & +"Hz V^-1") !! Josephson constant + +type(codata_constant), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("joule-atomic mass unit relationship", & +real(6.7005352565d9,dp), real(0.0000000020d9,dp), & +"u") !! joule-atomic mass unit relationship + +type(codata_constant), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("joule-electron volt relationship", & +real(6.241509074d18,dp), real(0.0d0,dp), & +"eV") !! joule-electron volt relationship + +type(codata_constant), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & +codata_constant("joule-hartree relationship", & +real(2.2937122783963d17,dp), real(0.0000000000045d17,dp), & +"E_h") !! joule-hartree relationship + +type(codata_constant), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & +codata_constant("joule-hertz relationship", & +real(1.509190179d33,dp), real(0.0d0,dp), & +"Hz") !! joule-hertz relationship + +type(codata_constant), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & +codata_constant("joule-inverse meter relationship", & +real(5.034116567d24,dp), real(0.0d0,dp), & +"m^-1") !! joule-inverse meter relationship + +type(codata_constant), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & +codata_constant("joule-kelvin relationship", & +real(7.242970516d22,dp), real(0.0d0,dp), & +"K") !! joule-kelvin relationship + +type(codata_constant), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & +codata_constant("joule-kilogram relationship", & +real(1.112650056d-17,dp), real(0.0d0,dp), & +"kg") !! joule-kilogram relationship + +type(codata_constant), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("kelvin-atomic mass unit relationship", & +real(9.2510873014d-14,dp), real(0.0000000028d-14,dp), & +"u") !! kelvin-atomic mass unit relationship + +type(codata_constant), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("kelvin-electron volt relationship", & +real(8.617333262d-5,dp), real(0.0d0,dp), & +"eV") !! kelvin-electron volt relationship + +type(codata_constant), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & +codata_constant("kelvin-hartree relationship", & +real(3.1668115634556d-6,dp), real(0.0000000000061d-6,dp), & +"E_h") !! kelvin-hartree relationship + +type(codata_constant), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & +codata_constant("kelvin-hertz relationship", & +real(2.083661912d10,dp), real(0.0d0,dp), & +"Hz") !! kelvin-hertz relationship + +type(codata_constant), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & +codata_constant("kelvin-inverse meter relationship", & +real(69.50348004d0,dp), real(0.0d0,dp), & +"m^-1") !! kelvin-inverse meter relationship + +type(codata_constant), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & +codata_constant("kelvin-joule relationship", & +real(1.380649d-23,dp), real(0.0d0,dp), & +"J") !! kelvin-joule relationship + +type(codata_constant), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & +codata_constant("kelvin-kilogram relationship", & +real(1.536179187d-40,dp), real(0.0d0,dp), & +"kg") !! kelvin-kilogram relationship + +type(codata_constant), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant("kilogram-atomic mass unit relationship", & +real(6.0221407621d26,dp), real(0.0000000018d26,dp), & +"u") !! kilogram-atomic mass unit relationship + +type(codata_constant), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant("kilogram-electron volt relationship", & +real(5.609588603d35,dp), real(0.0d0,dp), & +"eV") !! kilogram-electron volt relationship + +type(codata_constant), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & +codata_constant("kilogram-hartree relationship", & +real(2.0614857887409d34,dp), real(0.0000000000040d34,dp), & +"E_h") !! kilogram-hartree relationship + +type(codata_constant), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & +codata_constant("kilogram-hertz relationship", & +real(1.356392489d50,dp), real(0.0d0,dp), & +"Hz") !! kilogram-hertz relationship + +type(codata_constant), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & +codata_constant("kilogram-inverse meter relationship", & +real(4.524438335d41,dp), real(0.0d0,dp), & +"m^-1") !! kilogram-inverse meter relationship + +type(codata_constant), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & +codata_constant("kilogram-joule relationship", & +real(8.987551787d16,dp), real(0.0d0,dp), & +"J") !! kilogram-joule relationship + +type(codata_constant), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & +codata_constant("kilogram-kelvin relationship", & +real(6.509657260d39,dp), real(0.0d0,dp), & +"K") !! kilogram-kelvin relationship + +type(codata_constant), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & +codata_constant("lattice parameter of silicon", & +real(5.431020511d-10,dp), real(0.000000089d-10,dp), & +"m") !! lattice parameter of silicon + +type(codata_constant), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & +codata_constant("lattice spacing of ideal Si (220)", & +real(1.920155716d-10,dp), real(0.000000032d-10,dp), & +"m") !! lattice spacing of ideal Si (220) + +type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & +codata_constant("Loschmidt constant (273.15 K, 100 kPa)", & +real(2.651645804d25,dp), real(0.0d0,dp), & +"m^-3") !! Loschmidt constant (273.15 K, 100 kPa) + +type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & +codata_constant("Loschmidt constant (273.15 K, 101.325 kPa)", & +real(2.686780111d25,dp), real(0.0d0,dp), & +"m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) + +type(codata_constant), parameter, public :: LUMINOUS_EFFICACY = & +codata_constant("luminous efficacy", & +real(683d0,dp), real(0.0d0,dp), & +"lm W^-1") !! luminous efficacy + +type(codata_constant), parameter, public :: MAG_FLUX_QUANTUM = & +codata_constant("mag. flux quantum", & +real(2.067833848d-15,dp), real(0.0d0,dp), & +"Wb") !! mag. flux quantum + +type(codata_constant), parameter, public :: MOLAR_GAS_CONSTANT = & +codata_constant("molar gas constant", & +real(8.314462618d0,dp), real(0.0d0,dp), & +"J mol^-1 K^-1") !! molar gas constant + +type(codata_constant), parameter, public :: MOLAR_MASS_CONSTANT = & +codata_constant("molar mass constant", & +real(0.99999999965d-3,dp), real(0.00000000030d-3,dp), & +"kg mol^-1") !! molar mass constant + +type(codata_constant), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & +codata_constant("molar mass of carbon-12", & +real(11.9999999958d-3,dp), real(0.0000000036d-3,dp), & +"kg mol^-1") !! molar mass of carbon-12 + +type(codata_constant), parameter, public :: MOLAR_PLANCK_CONSTANT = & +codata_constant("molar Planck constant", & +real(3.990312712d-10,dp), real(0.0d0,dp), & +"J Hz^-1 mol^-1") !! molar Planck constant + +type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & +codata_constant("molar volume of ideal gas (273.15 K, 100 kPa)", & +real(22.71095464d-3,dp), real(0.0d0,dp), & +"m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) + +type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & +codata_constant("molar volume of ideal gas (273.15 K, 101.325 kPa)", & +real(22.41396954d-3,dp), real(0.0d0,dp), & +"m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) + +type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_SILICON = & +codata_constant("molar volume of silicon", & +real(1.205883199d-5,dp), real(0.000000060d-5,dp), & +"m^3 mol^-1") !! molar volume of silicon + +type(codata_constant), parameter, public :: MOLYBDENUM_X_UNIT = & +codata_constant("Molybdenum x unit", & +real(1.00209952d-13,dp), real(0.00000053d-13,dp), & +"m") !! Molybdenum x unit + +type(codata_constant), parameter, public :: MUON_COMPTON_WAVELENGTH = & +codata_constant("muon Compton wavelength", & +real(1.173444110d-14,dp), real(0.000000026d-14,dp), & +"m") !! muon Compton wavelength + +type(codata_constant), parameter, public :: MUON_ELECTRON_MASS_RATIO = & +codata_constant("muon-electron mass ratio", & +real(206.7682830d0,dp), real(0.0000046d0,dp), & +"") !! muon-electron mass ratio + +type(codata_constant), parameter, public :: MUON_G_FACTOR = & +codata_constant("muon g factor", & +real(-2.0023318418d0,dp), real(0.0000000013d0,dp), & +"") !! muon g factor + +type(codata_constant), parameter, public :: MUON_MAG_MOM = & +codata_constant("muon mag. mom.", & +real(-4.49044830d-26,dp), real(0.00000010d-26,dp), & +"J T^-1") !! muon mag. mom. + +type(codata_constant), parameter, public :: MUON_MAG_MOM_ANOMALY = & +codata_constant("muon mag. mom. anomaly", & +real(1.16592089d-3,dp), real(0.00000063d-3,dp), & +"") !! muon mag. mom. anomaly + +type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("muon mag. mom. to Bohr magneton ratio", & +real(-4.84197047d-3,dp), real(0.00000011d-3,dp), & +"") !! muon mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("muon mag. mom. to nuclear magneton ratio", & +real(-8.89059703d0,dp), real(0.00000020d0,dp), & +"") !! muon mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: MUON_MASS = & +codata_constant("muon mass", & +real(1.883531627d-28,dp), real(0.000000042d-28,dp), & +"kg") !! muon mass + +type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & +codata_constant("muon mass energy equivalent", & +real(1.692833804d-11,dp), real(0.000000038d-11,dp), & +"J") !! muon mass energy equivalent + +type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("muon mass energy equivalent in MeV", & +real(105.6583755d0,dp), real(0.0000023d0,dp), & +"MeV") !! muon mass energy equivalent in MeV + +type(codata_constant), parameter, public :: MUON_MASS_IN_U = & +codata_constant("muon mass in u", & +real(0.1134289259d0,dp), real(0.0000000025d0,dp), & +"u") !! muon mass in u + +type(codata_constant), parameter, public :: MUON_MOLAR_MASS = & +codata_constant("muon molar mass", & +real(1.134289259d-4,dp), real(0.000000025d-4,dp), & +"kg mol^-1") !! muon molar mass + +type(codata_constant), parameter, public :: MUON_NEUTRON_MASS_RATIO = & +codata_constant("muon-neutron mass ratio", & +real(0.1124545170d0,dp), real(0.0000000025d0,dp), & +"") !! muon-neutron mass ratio + +type(codata_constant), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & +codata_constant("muon-proton mag. mom. ratio", & +real(-3.183345142d0,dp), real(0.000000071d0,dp), & +"") !! muon-proton mag. mom. ratio + +type(codata_constant), parameter, public :: MUON_PROTON_MASS_RATIO = & +codata_constant("muon-proton mass ratio", & +real(0.1126095264d0,dp), real(0.0000000025d0,dp), & +"") !! muon-proton mass ratio + +type(codata_constant), parameter, public :: MUON_TAU_MASS_RATIO = & +codata_constant("muon-tau mass ratio", & +real(5.94635d-2,dp), real(0.00040d-2,dp), & +"") !! muon-tau mass ratio + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION = & +codata_constant("natural unit of action", & +real(1.054571817d-34,dp), real(0.0d0,dp), & +"J s") !! natural unit of action + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & +codata_constant("natural unit of action in eV s", & +real(6.582119569d-16,dp), real(0.0d0,dp), & +"eV s") !! natural unit of action in eV s + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY = & +codata_constant("natural unit of energy", & +real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +"J") !! natural unit of energy + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & +codata_constant("natural unit of energy in MeV", & +real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +"MeV") !! natural unit of energy in MeV + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_LENGTH = & +codata_constant("natural unit of length", & +real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +"m") !! natural unit of length + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MASS = & +codata_constant("natural unit of mass", & +real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +"kg") !! natural unit of mass + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & +codata_constant("natural unit of momentum", & +real(2.73092453075d-22,dp), real(0.00000000082d-22,dp), & +"kg m s^-1") !! natural unit of momentum + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & +codata_constant("natural unit of momentum in MeV/c", & +real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +"MeV/c") !! natural unit of momentum in MeV/c + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_TIME = & +codata_constant("natural unit of time", & +real(1.28808866819d-21,dp), real(0.00000000039d-21,dp), & +"s") !! natural unit of time + +type(codata_constant), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & +codata_constant("natural unit of velocity", & +real(299792458d0,dp), real(0.0d0,dp), & +"m s^-1") !! natural unit of velocity + +type(codata_constant), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & +codata_constant("neutron Compton wavelength", & +real(1.31959090581d-15,dp), real(0.00000000075d-15,dp), & +"m") !! neutron Compton wavelength + +type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & +codata_constant("neutron-electron mag. mom. ratio", & +real(1.04066882d-3,dp), real(0.00000025d-3,dp), & +"") !! neutron-electron mag. mom. ratio + +type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & +codata_constant("neutron-electron mass ratio", & +real(1838.68366173d0,dp), real(0.00000089d0,dp), & +"") !! neutron-electron mass ratio + +type(codata_constant), parameter, public :: NEUTRON_G_FACTOR = & +codata_constant("neutron g factor", & +real(-3.82608545d0,dp), real(0.00000090d0,dp), & +"") !! neutron g factor + +type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO = & +codata_constant("neutron gyromag. ratio", & +real(1.83247171d8,dp), real(0.00000043d8,dp), & +"s^-1 T^-1") !! neutron gyromag. ratio + +type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("neutron gyromag. ratio in MHz/T", & +real(29.1646931d0,dp), real(0.0000069d0,dp), & +"MHz T^-1") !! neutron gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: NEUTRON_MAG_MOM = & +codata_constant("neutron mag. mom.", & +real(-9.6623651d-27,dp), real(0.0000023d-27,dp), & +"J T^-1") !! neutron mag. mom. + +type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("neutron mag. mom. to Bohr magneton ratio", & +real(-1.04187563d-3,dp), real(0.00000025d-3,dp), & +"") !! neutron mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("neutron mag. mom. to nuclear magneton ratio", & +real(-1.91304273d0,dp), real(0.00000045d0,dp), & +"") !! neutron mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: NEUTRON_MASS = & +codata_constant("neutron mass", & +real(1.67492749804d-27,dp), real(0.00000000095d-27,dp), & +"kg") !! neutron mass + +type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant("neutron mass energy equivalent", & +real(1.50534976287d-10,dp), real(0.00000000086d-10,dp), & +"J") !! neutron mass energy equivalent + +type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("neutron mass energy equivalent in MeV", & +real(939.56542052d0,dp), real(0.00000054d0,dp), & +"MeV") !! neutron mass energy equivalent in MeV + +type(codata_constant), parameter, public :: NEUTRON_MASS_IN_U = & +codata_constant("neutron mass in u", & +real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +"u") !! neutron mass in u + +type(codata_constant), parameter, public :: NEUTRON_MOLAR_MASS = & +codata_constant("neutron molar mass", & +real(1.00866491560d-3,dp), real(0.00000000057d-3,dp), & +"kg mol^-1") !! neutron molar mass + +type(codata_constant), parameter, public :: NEUTRON_MUON_MASS_RATIO = & +codata_constant("neutron-muon mass ratio", & +real(8.89248406d0,dp), real(0.00000020d0,dp), & +"") !! neutron-muon mass ratio + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & +codata_constant("neutron-proton mag. mom. ratio", & +real(-0.68497934d0,dp), real(0.00000016d0,dp), & +"") !! neutron-proton mag. mom. ratio + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & +codata_constant("neutron-proton mass difference", & +real(2.30557435d-30,dp), real(0.00000082d-30,dp), & +"kg") !! neutron-proton mass difference + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & +codata_constant("neutron-proton mass difference energy equivalent", & +real(2.07214689d-13,dp), real(0.00000074d-13,dp), & +"J") !! neutron-proton mass difference energy equivalent + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("neutron-proton mass difference energy equivalent in MeV", & +real(1.29333236d0,dp), real(0.00000046d0,dp), & +"MeV") !! neutron-proton mass difference energy equivalent in MeV + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & +codata_constant("neutron-proton mass difference in u", & +real(1.38844933d-3,dp), real(0.00000049d-3,dp), & +"u") !! neutron-proton mass difference in u + +type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & +codata_constant("neutron-proton mass ratio", & +real(1.00137841931d0,dp), real(0.00000000049d0,dp), & +"") !! neutron-proton mass ratio + +type(codata_constant), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & +codata_constant("neutron relative atomic mass", & +real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +"") !! neutron relative atomic mass + +type(codata_constant), parameter, public :: NEUTRON_TAU_MASS_RATIO = & +codata_constant("neutron-tau mass ratio", & +real(0.528779d0,dp), real(0.000036d0,dp), & +"") !! neutron-tau mass ratio + +type(codata_constant), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant("neutron to shielded proton mag. mom. ratio", & +real(-0.68499694d0,dp), real(0.00000016d0,dp), & +"") !! neutron to shielded proton mag. mom. ratio + +type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & +codata_constant("Newtonian constant of gravitation", & +real(6.67430d-11,dp), real(0.00015d-11,dp), & +"m^3 kg^-1 s^-2") !! Newtonian constant of gravitation + +type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & +codata_constant("Newtonian constant of gravitation over h-bar c", & +real(6.70883d-39,dp), real(0.00015d-39,dp), & +"(GeV/c^2)^-2") !! Newtonian constant of gravitation over h-bar c + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON = & +codata_constant("nuclear magneton", & +real(5.0507837461d-27,dp), real(0.0000000015d-27,dp), & +"J T^-1") !! nuclear magneton + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & +codata_constant("nuclear magneton in eV/T", & +real(3.15245125844d-8,dp), real(0.00000000096d-8,dp), & +"eV T^-1") !! nuclear magneton in eV/T + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant("nuclear magneton in inverse meter per tesla", & +real(2.54262341353d-2,dp), real(0.00000000078d-2,dp), & +"m^-1 T^-1") !! nuclear magneton in inverse meter per tesla + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & +codata_constant("nuclear magneton in K/T", & +real(3.6582677756d-4,dp), real(0.0000000011d-4,dp), & +"K T^-1") !! nuclear magneton in K/T + +type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & +codata_constant("nuclear magneton in MHz/T", & +real(7.6225932291d0,dp), real(0.0000000023d0,dp), & +"MHz T^-1") !! nuclear magneton in MHz/T + +type(codata_constant), parameter, public :: PLANCK_CONSTANT = & +codata_constant("Planck constant", & +real(6.62607015d-34,dp), real(0.0d0,dp), & +"J Hz^-1") !! Planck constant + +type(codata_constant), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & +codata_constant("Planck constant in eV/Hz", & +real(4.135667696d-15,dp), real(0.0d0,dp), & +"eV Hz^-1") !! Planck constant in eV/Hz + +type(codata_constant), parameter, public :: PLANCK_LENGTH = & +codata_constant("Planck length", & +real(1.616255d-35,dp), real(0.000018d-35,dp), & +"m") !! Planck length + +type(codata_constant), parameter, public :: PLANCK_MASS = & +codata_constant("Planck mass", & +real(2.176434d-8,dp), real(0.000024d-8,dp), & +"kg") !! Planck mass + +type(codata_constant), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & +codata_constant("Planck mass energy equivalent in GeV", & +real(1.220890d19,dp), real(0.000014d19,dp), & +"GeV") !! Planck mass energy equivalent in GeV + +type(codata_constant), parameter, public :: PLANCK_TEMPERATURE = & +codata_constant("Planck temperature", & +real(1.416784d32,dp), real(0.000016d32,dp), & +"K") !! Planck temperature + +type(codata_constant), parameter, public :: PLANCK_TIME = & +codata_constant("Planck time", & +real(5.391247d-44,dp), real(0.000060d-44,dp), & +"s") !! Planck time + +type(codata_constant), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant("proton charge to mass quotient", & +real(9.5788331560d7,dp), real(0.0000000029d7,dp), & +"C kg^-1") !! proton charge to mass quotient + +type(codata_constant), parameter, public :: PROTON_COMPTON_WAVELENGTH = & +codata_constant("proton Compton wavelength", & +real(1.32140985539d-15,dp), real(0.00000000040d-15,dp), & +"m") !! proton Compton wavelength + +type(codata_constant), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & +codata_constant("proton-electron mass ratio", & +real(1836.15267343d0,dp), real(0.00000011d0,dp), & +"") !! proton-electron mass ratio + +type(codata_constant), parameter, public :: PROTON_G_FACTOR = & +codata_constant("proton g factor", & +real(5.5856946893d0,dp), real(0.0000000016d0,dp), & +"") !! proton g factor + +type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO = & +codata_constant("proton gyromag. ratio", & +real(2.6752218744d8,dp), real(0.0000000011d8,dp), & +"s^-1 T^-1") !! proton gyromag. ratio + +type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("proton gyromag. ratio in MHz/T", & +real(42.577478518d0,dp), real(0.000000018d0,dp), & +"MHz T^-1") !! proton gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: PROTON_MAG_MOM = & +codata_constant("proton mag. mom.", & +real(1.41060679736d-26,dp), real(0.00000000060d-26,dp), & +"J T^-1") !! proton mag. mom. + +type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("proton mag. mom. to Bohr magneton ratio", & +real(1.52103220230d-3,dp), real(0.00000000046d-3,dp), & +"") !! proton mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("proton mag. mom. to nuclear magneton ratio", & +real(2.79284734463d0,dp), real(0.00000000082d0,dp), & +"") !! proton mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & +codata_constant("proton mag. shielding correction", & +real(2.5689d-5,dp), real(0.0011d-5,dp), & +"") !! proton mag. shielding correction + +type(codata_constant), parameter, public :: PROTON_MASS = & +codata_constant("proton mass", & +real(1.67262192369d-27,dp), real(0.00000000051d-27,dp), & +"kg") !! proton mass + +type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & +codata_constant("proton mass energy equivalent", & +real(1.50327761598d-10,dp), real(0.00000000046d-10,dp), & +"J") !! proton mass energy equivalent + +type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("proton mass energy equivalent in MeV", & +real(938.27208816d0,dp), real(0.00000029d0,dp), & +"MeV") !! proton mass energy equivalent in MeV + +type(codata_constant), parameter, public :: PROTON_MASS_IN_U = & +codata_constant("proton mass in u", & +real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +"u") !! proton mass in u + +type(codata_constant), parameter, public :: PROTON_MOLAR_MASS = & +codata_constant("proton molar mass", & +real(1.00727646627d-3,dp), real(0.00000000031d-3,dp), & +"kg mol^-1") !! proton molar mass + +type(codata_constant), parameter, public :: PROTON_MUON_MASS_RATIO = & +codata_constant("proton-muon mass ratio", & +real(8.88024337d0,dp), real(0.00000020d0,dp), & +"") !! proton-muon mass ratio + +type(codata_constant), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & +codata_constant("proton-neutron mag. mom. ratio", & +real(-1.45989805d0,dp), real(0.00000034d0,dp), & +"") !! proton-neutron mag. mom. ratio + +type(codata_constant), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & +codata_constant("proton-neutron mass ratio", & +real(0.99862347812d0,dp), real(0.00000000049d0,dp), & +"") !! proton-neutron mass ratio + +type(codata_constant), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & +codata_constant("proton relative atomic mass", & +real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +"") !! proton relative atomic mass + +type(codata_constant), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & +codata_constant("proton rms charge radius", & +real(8.414d-16,dp), real(0.019d-16,dp), & +"m") !! proton rms charge radius + +type(codata_constant), parameter, public :: PROTON_TAU_MASS_RATIO = & +codata_constant("proton-tau mass ratio", & +real(0.528051d0,dp), real(0.000036d0,dp), & +"") !! proton-tau mass ratio + +type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION = & +codata_constant("quantum of circulation", & +real(3.6369475516d-4,dp), real(0.0000000011d-4,dp), & +"m^2 s^-1") !! quantum of circulation + +type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & +codata_constant("quantum of circulation times 2", & +real(7.2738951032d-4,dp), real(0.0000000022d-4,dp), & +"m^2 s^-1") !! quantum of circulation times 2 + +type(codata_constant), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & +codata_constant("reduced Compton wavelength", & +real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +"m") !! reduced Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & +codata_constant("reduced muon Compton wavelength", & +real(1.867594306d-15,dp), real(0.000000042d-15,dp), & +"m") !! reduced muon Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & +codata_constant("reduced neutron Compton wavelength", & +real(2.1001941552d-16,dp), real(0.0000000012d-16,dp), & +"m") !! reduced neutron Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT = & +codata_constant("reduced Planck constant", & +real(1.054571817d-34,dp), real(0.0d0,dp), & +"J s") !! reduced Planck constant + +type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & +codata_constant("reduced Planck constant in eV s", & +real(6.582119569d-16,dp), real(0.0d0,dp), & +"eV s") !! reduced Planck constant in eV s + +type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & +codata_constant("reduced Planck constant times c in MeV fm", & +real(197.3269804d0,dp), real(0.0d0,dp), & +"MeV fm") !! reduced Planck constant times c in MeV fm + +type(codata_constant), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & +codata_constant("reduced proton Compton wavelength", & +real(2.10308910336d-16,dp), real(0.00000000064d-16,dp), & +"m") !! reduced proton Compton wavelength + +type(codata_constant), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & +codata_constant("reduced tau Compton wavelength", & +real(1.110538d-16,dp), real(0.000075d-16,dp), & +"m") !! reduced tau Compton wavelength + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT = & +codata_constant("Rydberg constant", & +real(10973731.568160d0,dp), real(0.000021d0,dp), & +"m^-1") !! Rydberg constant + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & +codata_constant("Rydberg constant times c in Hz", & +real(3.2898419602508d15,dp), real(0.0000000000064d15,dp), & +"Hz") !! Rydberg constant times c in Hz + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & +codata_constant("Rydberg constant times hc in eV", & +real(13.605693122994d0,dp), real(0.000000000026d0,dp), & +"eV") !! Rydberg constant times hc in eV + +type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & +codata_constant("Rydberg constant times hc in J", & +real(2.1798723611035d-18,dp), real(0.0000000000042d-18,dp), & +"J") !! Rydberg constant times hc in J + +type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & +codata_constant("Sackur-Tetrode constant (1 K, 100 kPa)", & +real(-1.15170753706d0,dp), real(0.00000000045d0,dp), & +"") !! Sackur-Tetrode constant (1 K, 100 kPa) + +type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & +codata_constant("Sackur-Tetrode constant (1 K, 101.325 kPa)", & +real(-1.16487052358d0,dp), real(0.00000000045d0,dp), & +"") !! Sackur-Tetrode constant (1 K, 101.325 kPa) + +type(codata_constant), parameter, public :: SECOND_RADIATION_CONSTANT = & +codata_constant("second radiation constant", & +real(1.438776877d-2,dp), real(0.0d0,dp), & +"m K") !! second radiation constant + +type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & +codata_constant("shielded helion gyromag. ratio", & +real(2.037894569d8,dp), real(0.000000024d8,dp), & +"s^-1 T^-1") !! shielded helion gyromag. ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("shielded helion gyromag. ratio in MHz/T", & +real(32.43409942d0,dp), real(0.00000038d0,dp), & +"MHz T^-1") !! shielded helion gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM = & +codata_constant("shielded helion mag. mom.", & +real(-1.074553090d-26,dp), real(0.000000013d-26,dp), & +"J T^-1") !! shielded helion mag. mom. + +type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("shielded helion mag. mom. to Bohr magneton ratio", & +real(-1.158671471d-3,dp), real(0.000000014d-3,dp), & +"") !! shielded helion mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("shielded helion mag. mom. to nuclear magneton ratio", & +real(-2.127497719d0,dp), real(0.000000025d0,dp), & +"") !! shielded helion mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & +codata_constant("shielded helion to proton mag. mom. ratio", & +real(-0.7617665618d0,dp), real(0.0000000089d0,dp), & +"") !! shielded helion to proton mag. mom. ratio + +type(codata_constant), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant("shielded helion to shielded proton mag. mom. ratio", & +real(-0.7617861313d0,dp), real(0.0000000033d0,dp), & +"") !! shielded helion to shielded proton mag. mom. ratio + +type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & +codata_constant("shielded proton gyromag. ratio", & +real(2.675153151d8,dp), real(0.000000029d8,dp), & +"s^-1 T^-1") !! shielded proton gyromag. ratio + +type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant("shielded proton gyromag. ratio in MHz/T", & +real(42.57638474d0,dp), real(0.00000046d0,dp), & +"MHz T^-1") !! shielded proton gyromag. ratio in MHz/T + +type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM = & +codata_constant("shielded proton mag. mom.", & +real(1.410570560d-26,dp), real(0.000000015d-26,dp), & +"J T^-1") !! shielded proton mag. mom. + +type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("shielded proton mag. mom. to Bohr magneton ratio", & +real(1.520993128d-3,dp), real(0.000000017d-3,dp), & +"") !! shielded proton mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("shielded proton mag. mom. to nuclear magneton ratio", & +real(2.792775599d0,dp), real(0.000000030d0,dp), & +"") !! shielded proton mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & +codata_constant("shielding difference of d and p in HD", & +real(2.0200d-8,dp), real(0.0020d-8,dp), & +"") !! shielding difference of d and p in HD + +type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & +codata_constant("shielding difference of t and p in HT", & +real(2.4140d-8,dp), real(0.0020d-8,dp), & +"") !! shielding difference of t and p in HT + +type(codata_constant), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & +codata_constant("speed of light in vacuum", & +real(299792458d0,dp), real(0.0d0,dp), & +"m s^-1") !! speed of light in vacuum + +type(codata_constant), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & +codata_constant("standard acceleration of gravity", & +real(9.80665d0,dp), real(0.0d0,dp), & +"m s^-2") !! standard acceleration of gravity + +type(codata_constant), parameter, public :: STANDARD_ATMOSPHERE = & +codata_constant("standard atmosphere", & +real(101325d0,dp), real(0.0d0,dp), & +"Pa") !! standard atmosphere + +type(codata_constant), parameter, public :: STANDARD_STATE_PRESSURE = & +codata_constant("standard-state pressure", & +real(100000d0,dp), real(0.0d0,dp), & +"Pa") !! standard-state pressure + +type(codata_constant), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & +codata_constant("Stefan-Boltzmann constant", & +real(5.670374419d-8,dp), real(0.0d0,dp), & +"W m^-2 K^-4") !! Stefan-Boltzmann constant + +type(codata_constant), parameter, public :: TAU_COMPTON_WAVELENGTH = & +codata_constant("tau Compton wavelength", & +real(6.97771d-16,dp), real(0.00047d-16,dp), & +"m") !! tau Compton wavelength + +type(codata_constant), parameter, public :: TAU_ELECTRON_MASS_RATIO = & +codata_constant("tau-electron mass ratio", & +real(3477.23d0,dp), real(0.23d0,dp), & +"") !! tau-electron mass ratio + +type(codata_constant), parameter, public :: TAU_ENERGY_EQUIVALENT = & +codata_constant("tau energy equivalent", & +real(1776.86d0,dp), real(0.12d0,dp), & +"MeV") !! tau energy equivalent + +type(codata_constant), parameter, public :: TAU_MASS = & +codata_constant("tau mass", & +real(3.16754d-27,dp), real(0.00021d-27,dp), & +"kg") !! tau mass + +type(codata_constant), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & +codata_constant("tau mass energy equivalent", & +real(2.84684d-10,dp), real(0.00019d-10,dp), & +"J") !! tau mass energy equivalent + +type(codata_constant), parameter, public :: TAU_MASS_IN_U = & +codata_constant("tau mass in u", & +real(1.90754d0,dp), real(0.00013d0,dp), & +"u") !! tau mass in u + +type(codata_constant), parameter, public :: TAU_MOLAR_MASS = & +codata_constant("tau molar mass", & +real(1.90754d-3,dp), real(0.00013d-3,dp), & +"kg mol^-1") !! tau molar mass + +type(codata_constant), parameter, public :: TAU_MUON_MASS_RATIO = & +codata_constant("tau-muon mass ratio", & +real(16.8170d0,dp), real(0.0011d0,dp), & +"") !! tau-muon mass ratio + +type(codata_constant), parameter, public :: TAU_NEUTRON_MASS_RATIO = & +codata_constant("tau-neutron mass ratio", & +real(1.89115d0,dp), real(0.00013d0,dp), & +"") !! tau-neutron mass ratio + +type(codata_constant), parameter, public :: TAU_PROTON_MASS_RATIO = & +codata_constant("tau-proton mass ratio", & +real(1.89376d0,dp), real(0.00013d0,dp), & +"") !! tau-proton mass ratio + +type(codata_constant), parameter, public :: THOMSON_CROSS_SECTION = & +codata_constant("Thomson cross section", & +real(6.6524587321d-29,dp), real(0.0000000060d-29,dp), & +"m^2") !! Thomson cross section + +type(codata_constant), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & +codata_constant("triton-electron mass ratio", & +real(5496.92153573d0,dp), real(0.00000027d0,dp), & +"") !! triton-electron mass ratio + +type(codata_constant), parameter, public :: TRITON_G_FACTOR = & +codata_constant("triton g factor", & +real(5.957924931d0,dp), real(0.000000012d0,dp), & +"") !! triton g factor + +type(codata_constant), parameter, public :: TRITON_MAG_MOM = & +codata_constant("triton mag. mom.", & +real(1.5046095202d-26,dp), real(0.0000000030d-26,dp), & +"J T^-1") !! triton mag. mom. + +type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant("triton mag. mom. to Bohr magneton ratio", & +real(1.6223936651d-3,dp), real(0.0000000032d-3,dp), & +"") !! triton mag. mom. to Bohr magneton ratio + +type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant("triton mag. mom. to nuclear magneton ratio", & +real(2.9789624656d0,dp), real(0.0000000059d0,dp), & +"") !! triton mag. mom. to nuclear magneton ratio + +type(codata_constant), parameter, public :: TRITON_MASS = & +codata_constant("triton mass", & +real(5.0073567446d-27,dp), real(0.0000000015d-27,dp), & +"kg") !! triton mass + +type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & +codata_constant("triton mass energy equivalent", & +real(4.5003878060d-10,dp), real(0.0000000014d-10,dp), & +"J") !! triton mass energy equivalent + +type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant("triton mass energy equivalent in MeV", & +real(2808.92113298d0,dp), real(0.00000085d0,dp), & +"MeV") !! triton mass energy equivalent in MeV + +type(codata_constant), parameter, public :: TRITON_MASS_IN_U = & +codata_constant("triton mass in u", & +real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +"u") !! triton mass in u + +type(codata_constant), parameter, public :: TRITON_MOLAR_MASS = & +codata_constant("triton molar mass", & +real(3.01550071517d-3,dp), real(0.00000000092d-3,dp), & +"kg mol^-1") !! triton molar mass + +type(codata_constant), parameter, public :: TRITON_PROTON_MASS_RATIO = & +codata_constant("triton-proton mass ratio", & +real(2.99371703414d0,dp), real(0.00000000015d0,dp), & +"") !! triton-proton mass ratio + +type(codata_constant), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & +codata_constant("triton relative atomic mass", & +real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +"") !! triton relative atomic mass + +type(codata_constant), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & +codata_constant("triton to proton mag. mom. ratio", & +real(1.0666399191d0,dp), real(0.0000000021d0,dp), & +"") !! triton to proton mag. mom. ratio + +type(codata_constant), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & +codata_constant("unified atomic mass unit", & +real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +"kg") !! unified atomic mass unit + +type(codata_constant), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & +codata_constant("vacuum electric permittivity", & +real(8.8541878128d-12,dp), real(0.0000000013d-12,dp), & +"F m^-1") !! vacuum electric permittivity + +type(codata_constant), parameter, public :: VACUUM_MAG_PERMEABILITY = & +codata_constant("vacuum mag. permeability", & +real(1.25663706212d-6,dp), real(0.00000000019d-6,dp), & +"N A^-2") !! vacuum mag. permeability + +type(codata_constant), parameter, public :: VON_KLITZING_CONSTANT = & +codata_constant("von Klitzing constant", & +real(25812.80745d0,dp), real(0.0d0,dp), & +"ohm") !! von Klitzing constant + +type(codata_constant), parameter, public :: WEAK_MIXING_ANGLE = & +codata_constant("weak mixing angle", & +real(0.22290d0,dp), real(0.00030d0,dp), & +"") !! weak mixing angle + +type(codata_constant), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & +codata_constant("Wien frequency displacement law constant", & +real(5.878925757d10,dp), real(0.0d0,dp), & +"Hz K^-1") !! Wien frequency displacement law constant + +type(codata_constant), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & +codata_constant("Wien wavelength displacement law constant", & +real(2.897771955d-3,dp), real(0.0d0,dp), & +"m K") !! Wien wavelength displacement law constant + +type(codata_constant), parameter, public :: W_TO_Z_MASS_RATIO = & +codata_constant("W to Z mass ratio", & +real(0.88153d0,dp), real(0.00017d0,dp), & +"") !! W to Z mass ratio + +end module stdlib_codata \ No newline at end of file From 912608f38669c3656cd1c5612a39fc10dc002385 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Tue, 21 May 2024 08:24:07 +0200 Subject: [PATCH 073/144] Add codata constants. --- src/CMakeLists.txt | 22 +- src/stdlib_codata.f90 | 719 ++++++++++++++++++------------------ src/stdlib_codata_type.fypp | 50 +++ src/stdlib_constants.fypp | 66 ++++ 4 files changed, 484 insertions(+), 373 deletions(-) create mode 100644 src/stdlib_codata_type.fypp create mode 100644 src/stdlib_constants.fypp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 98df5ac8f..ced6e7b43 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,14 +6,16 @@ set(fppFiles stdlib_bitsets.fypp stdlib_bitsets_64.fypp stdlib_bitsets_large.fypp - stdlib_hash_32bit.fypp + stdlib_codata_type.fypp + stdlib_constants.fypp + stdlib_hash_32bit.fypp stdlib_hash_32bit_fnv.fypp - stdlib_hash_32bit_nm.fypp - stdlib_hash_32bit_water.fypp - stdlib_hash_64bit.fypp - stdlib_hash_64bit_fnv.fypp - stdlib_hash_64bit_pengy.fypp - stdlib_hash_64bit_spookyv2.fypp + stdlib_hash_32bit_nm.fypp + stdlib_hash_32bit_water.fypp + stdlib_hash_64bit.fypp + stdlib_hash_64bit_fnv.fypp + stdlib_hash_64bit_pengy.fypp + stdlib_hash_64bit_spookyv2.fypp stdlib_io.fypp stdlib_io_npy.fypp stdlib_io_npy_load.fypp @@ -25,9 +27,9 @@ set(fppFiles stdlib_linalg_outer_product.fypp stdlib_linalg_kronecker.fypp stdlib_linalg_cross_product.fypp - stdlib_linalg_solve.fypp + stdlib_linalg_solve.fypp stdlib_linalg_determinant.fypp - stdlib_linalg_state.fypp + stdlib_linalg_state.fypp stdlib_optval.fypp stdlib_selection.fypp stdlib_sorting.fypp @@ -68,7 +70,7 @@ set(fppFiles stdlib_version.fypp ) -# Preprocessed files to contain preprocessor directives -> .F90 +# Preprocessed files to contain preprocessor directives -> .F90 set(cppFiles stdlib_linalg_constants.fypp stdlib_linalg_blas.fypp diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index fd15a6fae..398d5bc9e 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -1,1786 +1,1779 @@ module stdlib_codata - !! Codata Constants + !! Codata Constants - Autogenerated use stdlib_kinds, only: dp, int32 + use stdlib_codata_type private -type, public :: codata_constant -!! Derived type for representing a Codata constant. - character(len=64) :: name - real(dp) :: value - real(dp) :: uncertainty - character(len=32) :: unit -end type - integer(int32), parameter, public :: YEAR = 2018 !! Year of release. type(codata_constant), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & codata_constant("alpha particle-electron mass ratio", & -real(7294.29954142d0,dp), real(0.00000024d0,dp), & +7294.29954142_dp, 0.00000024_dp, & "") !! alpha particle-electron mass ratio type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS = & codata_constant("alpha particle mass", & -real(6.6446573357d-27,dp), real(0.0000000020d-27,dp), & +6.6446573357e-27_dp, 0.0000000020e-27_dp, & "kg") !! alpha particle mass type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & codata_constant("alpha particle mass energy equivalent", & -real(5.9719201914d-10,dp), real(0.0000000018d-10,dp), & +5.9719201914e-10_dp, 0.0000000018e-10_dp, & "J") !! alpha particle mass energy equivalent type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("alpha particle mass energy equivalent in MeV", & -real(3727.3794066d0,dp), real(0.0000011d0,dp), & +3727.3794066_dp, 0.0000011_dp, & "MeV") !! alpha particle mass energy equivalent in MeV type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & codata_constant("alpha particle mass in u", & -real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +4.001506179127_dp, 0.000000000063_dp, & "u") !! alpha particle mass in u type(codata_constant), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & codata_constant("alpha particle molar mass", & -real(4.0015061777d-3,dp), real(0.0000000012d-3,dp), & +4.0015061777e-3_dp, 0.0000000012e-3_dp, & "kg mol^-1") !! alpha particle molar mass type(codata_constant), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & codata_constant("alpha particle-proton mass ratio", & -real(3.97259969009d0,dp), real(0.00000000022d0,dp), & +3.97259969009_dp, 0.00000000022_dp, & "") !! alpha particle-proton mass ratio type(codata_constant), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & codata_constant("alpha particle relative atomic mass", & -real(4.001506179127d0,dp), real(0.000000000063d0,dp), & +4.001506179127_dp, 0.000000000063_dp, & "") !! alpha particle relative atomic mass type(codata_constant), parameter, public :: ANGSTROM_STAR = & codata_constant("Angstrom star", & -real(1.00001495d-10,dp), real(0.00000090d-10,dp), & +1.00001495e-10_dp, 0.00000090e-10_dp, & "m") !! Angstrom star type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT = & codata_constant("atomic mass constant", & -real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass constant type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & codata_constant("atomic mass constant energy equivalent", & -real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass constant energy equivalent type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("atomic mass constant energy equivalent in MeV", & -real(931.49410242d0,dp), real(0.00000028d0,dp), & +931.49410242_dp, 0.00000028_dp, & "MeV") !! atomic mass constant energy equivalent in MeV type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("atomic mass unit-electron volt relationship", & -real(9.3149410242d8,dp), real(0.0000000028d8,dp), & +9.3149410242e8_dp, 0.0000000028e8_dp, & "eV") !! atomic mass unit-electron volt relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & codata_constant("atomic mass unit-hartree relationship", & -real(3.4231776874d7,dp), real(0.0000000010d7,dp), & +3.4231776874e7_dp, 0.0000000010e7_dp, & "E_h") !! atomic mass unit-hartree relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & codata_constant("atomic mass unit-hertz relationship", & -real(2.25234271871d23,dp), real(0.00000000068d23,dp), & +2.25234271871e23_dp, 0.00000000068e23_dp, & "Hz") !! atomic mass unit-hertz relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & codata_constant("atomic mass unit-inverse meter relationship", & -real(7.5130066104d14,dp), real(0.0000000023d14,dp), & +7.5130066104e14_dp, 0.0000000023e14_dp, & "m^-1") !! atomic mass unit-inverse meter relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & codata_constant("atomic mass unit-joule relationship", & -real(1.49241808560d-10,dp), real(0.00000000045d-10,dp), & +1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass unit-joule relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & codata_constant("atomic mass unit-kelvin relationship", & -real(1.08095401916d13,dp), real(0.00000000033d13,dp), & +1.08095401916e13_dp, 0.00000000033e13_dp, & "K") !! atomic mass unit-kelvin relationship type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & codata_constant("atomic mass unit-kilogram relationship", & -real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass unit-kilogram relationship type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & codata_constant("atomic unit of 1st hyperpolarizability", & -real(3.2063613061d-53,dp), real(0.0000000015d-53,dp), & +3.2063613061e-53_dp, 0.0000000015e-53_dp, & "C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & codata_constant("atomic unit of 2nd hyperpolarizability", & -real(6.2353799905d-65,dp), real(0.0000000038d-65,dp), & +6.2353799905e-65_dp, 0.0000000038e-65_dp, & "C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ACTION = & codata_constant("atomic unit of action", & -real(1.054571817d-34,dp), real(0.0d0,dp), & +1.054571817e-34_dp, 0.0_dp, & "J s") !! atomic unit of action type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & codata_constant("atomic unit of charge", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "C") !! atomic unit of charge type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & codata_constant("atomic unit of charge density", & -real(1.08120238457d12,dp), real(0.00000000049d12,dp), & +1.08120238457e12_dp, 0.00000000049e12_dp, & "C m^-3") !! atomic unit of charge density type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & codata_constant("atomic unit of current", & -real(6.623618237510d-3,dp), real(0.000000000013d-3,dp), & +6.623618237510e-3_dp, 0.000000000013e-3_dp, & "A") !! atomic unit of current type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & codata_constant("atomic unit of electric dipole mom.", & -real(8.4783536255d-30,dp), real(0.0000000013d-30,dp), & +8.4783536255e-30_dp, 0.0000000013e-30_dp, & "C m") !! atomic unit of electric dipole mom. type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & codata_constant("atomic unit of electric field", & -real(5.14220674763d11,dp), real(0.00000000078d11,dp), & +5.14220674763e11_dp, 0.00000000078e11_dp, & "V m^-1") !! atomic unit of electric field type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & codata_constant("atomic unit of electric field gradient", & -real(9.7173624292d21,dp), real(0.0000000029d21,dp), & +9.7173624292e21_dp, 0.0000000029e21_dp, & "V m^-2") !! atomic unit of electric field gradient type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & codata_constant("atomic unit of electric polarizability", & -real(1.64877727436d-41,dp), real(0.00000000050d-41,dp), & +1.64877727436e-41_dp, 0.00000000050e-41_dp, & "C^2 m^2 J^-1") !! atomic unit of electric polarizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & codata_constant("atomic unit of electric potential", & -real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +27.211386245988_dp, 0.000000000053_dp, & "V") !! atomic unit of electric potential type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & codata_constant("atomic unit of electric quadrupole mom.", & -real(4.4865515246d-40,dp), real(0.0000000014d-40,dp), & +4.4865515246e-40_dp, 0.0000000014e-40_dp, & "C m^2") !! atomic unit of electric quadrupole mom. type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & codata_constant("atomic unit of energy", & -real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! atomic unit of energy type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_FORCE = & codata_constant("atomic unit of force", & -real(8.2387234983d-8,dp), real(0.0000000012d-8,dp), & +8.2387234983e-8_dp, 0.0000000012e-8_dp, & "N") !! atomic unit of force type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & codata_constant("atomic unit of length", & -real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! atomic unit of length type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & codata_constant("atomic unit of mag. dipole mom.", & -real(1.85480201566d-23,dp), real(0.00000000056d-23,dp), & +1.85480201566e-23_dp, 0.00000000056e-23_dp, & "J T^-1") !! atomic unit of mag. dipole mom. type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & codata_constant("atomic unit of mag. flux density", & -real(2.35051756758d5,dp), real(0.00000000071d5,dp), & +2.35051756758e5_dp, 0.00000000071e5_dp, & "T") !! atomic unit of mag. flux density type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & codata_constant("atomic unit of magnetizability", & -real(7.8910366008d-29,dp), real(0.0000000048d-29,dp), & +7.8910366008e-29_dp, 0.0000000048e-29_dp, & "J T^-2") !! atomic unit of magnetizability type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MASS = & codata_constant("atomic unit of mass", & -real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! atomic unit of mass type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & codata_constant("atomic unit of momentum", & -real(1.99285191410d-24,dp), real(0.00000000030d-24,dp), & +1.99285191410e-24_dp, 0.00000000030e-24_dp, & "kg m s^-1") !! atomic unit of momentum type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & codata_constant("atomic unit of permittivity", & -real(1.11265005545d-10,dp), real(0.00000000017d-10,dp), & +1.11265005545e-10_dp, 0.00000000017e-10_dp, & "F m^-1") !! atomic unit of permittivity type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_TIME = & codata_constant("atomic unit of time", & -real(2.4188843265857d-17,dp), real(0.0000000000047d-17,dp), & +2.4188843265857e-17_dp, 0.0000000000047e-17_dp, & "s") !! atomic unit of time type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & codata_constant("atomic unit of velocity", & -real(2.18769126364d6,dp), real(0.00000000033d6,dp), & +2.18769126364e6_dp, 0.00000000033e6_dp, & "m s^-1") !! atomic unit of velocity type(codata_constant), parameter, public :: AVOGADRO_CONSTANT = & codata_constant("Avogadro constant", & -real(6.02214076d23,dp), real(0.0d0,dp), & +6.02214076e23_dp, 0.0_dp, & "mol^-1") !! Avogadro constant type(codata_constant), parameter, public :: BOHR_MAGNETON = & codata_constant("Bohr magneton", & -real(9.2740100783d-24,dp), real(0.0000000028d-24,dp), & +9.2740100783e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! Bohr magneton type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_EV_T = & codata_constant("Bohr magneton in eV/T", & -real(5.7883818060d-5,dp), real(0.0000000017d-5,dp), & +5.7883818060e-5_dp, 0.0000000017e-5_dp, & "eV T^-1") !! Bohr magneton in eV/T type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & codata_constant("Bohr magneton in Hz/T", & -real(1.39962449361d10,dp), real(0.00000000042d10,dp), & +1.39962449361e10_dp, 0.00000000042e10_dp, & "Hz T^-1") !! Bohr magneton in Hz/T type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant("Bohr magneton in inverse meter per tesla", & -real(46.686447783d0,dp), real(0.000000014d0,dp), & +46.686447783_dp, 0.000000014_dp, & "m^-1 T^-1") !! Bohr magneton in inverse meter per tesla type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_K_T = & codata_constant("Bohr magneton in K/T", & -real(0.67171381563d0,dp), real(0.00000000020d0,dp), & +0.67171381563_dp, 0.00000000020_dp, & "K T^-1") !! Bohr magneton in K/T type(codata_constant), parameter, public :: BOHR_RADIUS = & codata_constant("Bohr radius", & -real(5.29177210903d-11,dp), real(0.00000000080d-11,dp), & +5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! Bohr radius type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT = & codata_constant("Boltzmann constant", & -real(1.380649d-23,dp), real(0.0d0,dp), & +1.380649e-23_dp, 0.0_dp, & "J K^-1") !! Boltzmann constant type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & codata_constant("Boltzmann constant in eV/K", & -real(8.617333262d-5,dp), real(0.0d0,dp), & +8.617333262e-5_dp, 0.0_dp, & "eV K^-1") !! Boltzmann constant in eV/K type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & codata_constant("Boltzmann constant in Hz/K", & -real(2.083661912d10,dp), real(0.0d0,dp), & +2.083661912e10_dp, 0.0_dp, & "Hz K^-1") !! Boltzmann constant in Hz/K type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & codata_constant("Boltzmann constant in inverse meter per kelvin", & -real(69.50348004d0,dp), real(0.0d0,dp), & +69.50348004_dp, 0.0_dp, & "m^-1 K^-1") !! Boltzmann constant in inverse meter per kelvin type(codata_constant), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & codata_constant("characteristic impedance of vacuum", & -real(376.730313668d0,dp), real(0.000000057d0,dp), & +376.730313668_dp, 0.000000057_dp, & "ohm") !! characteristic impedance of vacuum type(codata_constant), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & codata_constant("classical electron radius", & -real(2.8179403262d-15,dp), real(0.0000000013d-15,dp), & +2.8179403262e-15_dp, 0.0000000013e-15_dp, & "m") !! classical electron radius type(codata_constant), parameter, public :: COMPTON_WAVELENGTH = & codata_constant("Compton wavelength", & -real(2.42631023867d-12,dp), real(0.00000000073d-12,dp), & +2.42631023867e-12_dp, 0.00000000073e-12_dp, & "m") !! Compton wavelength type(codata_constant), parameter, public :: CONDUCTANCE_QUANTUM = & codata_constant("conductance quantum", & -real(7.748091729d-5,dp), real(0.0d0,dp), & +7.748091729e-5_dp, 0.0_dp, & "S") !! conductance quantum type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & codata_constant("conventional value of ampere-90", & -real(1.00000008887d0,dp), real(0.0d0,dp), & +1.00000008887_dp, 0.0_dp, & "A") !! conventional value of ampere-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & codata_constant("conventional value of coulomb-90", & -real(1.00000008887d0,dp), real(0.0d0,dp), & +1.00000008887_dp, 0.0_dp, & "C") !! conventional value of coulomb-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & codata_constant("conventional value of farad-90", & -real(0.99999998220d0,dp), real(0.0d0,dp), & +0.99999998220_dp, 0.0_dp, & "F") !! conventional value of farad-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & codata_constant("conventional value of henry-90", & -real(1.00000001779d0,dp), real(0.0d0,dp), & +1.00000001779_dp, 0.0_dp, & "H") !! conventional value of henry-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & codata_constant("conventional value of Josephson constant", & -real(483597.9d9,dp), real(0.0d0,dp), & +483597.9e9_dp, 0.0_dp, & "Hz V^-1") !! conventional value of Josephson constant type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & codata_constant("conventional value of ohm-90", & -real(1.00000001779d0,dp), real(0.0d0,dp), & +1.00000001779_dp, 0.0_dp, & "ohm") !! conventional value of ohm-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & codata_constant("conventional value of volt-90", & -real(1.00000010666d0,dp), real(0.0d0,dp), & +1.00000010666_dp, 0.0_dp, & "V") !! conventional value of volt-90 type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & codata_constant("conventional value of von Klitzing constant", & -real(25812.807d0,dp), real(0.0d0,dp), & +25812.807_dp, 0.0_dp, & "ohm") !! conventional value of von Klitzing constant type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & codata_constant("conventional value of watt-90", & -real(1.00000019553d0,dp), real(0.0d0,dp), & +1.00000019553_dp, 0.0_dp, & "W") !! conventional value of watt-90 type(codata_constant), parameter, public :: COPPER_X_UNIT = & codata_constant("Copper x unit", & -real(1.00207697d-13,dp), real(0.00000028d-13,dp), & +1.00207697e-13_dp, 0.00000028e-13_dp, & "m") !! Copper x unit type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & codata_constant("deuteron-electron mag. mom. ratio", & -real(-4.664345551d-4,dp), real(0.000000012d-4,dp), & +-4.664345551e-4_dp, 0.000000012e-4_dp, & "") !! deuteron-electron mag. mom. ratio type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & codata_constant("deuteron-electron mass ratio", & -real(3670.48296788d0,dp), real(0.00000013d0,dp), & +3670.48296788_dp, 0.00000013_dp, & "") !! deuteron-electron mass ratio type(codata_constant), parameter, public :: DEUTERON_G_FACTOR = & codata_constant("deuteron g factor", & -real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron g factor type(codata_constant), parameter, public :: DEUTERON_MAG_MOM = & codata_constant("deuteron mag. mom.", & -real(4.330735094d-27,dp), real(0.000000011d-27,dp), & +4.330735094e-27_dp, 0.000000011e-27_dp, & "J T^-1") !! deuteron mag. mom. type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("deuteron mag. mom. to Bohr magneton ratio", & -real(4.669754570d-4,dp), real(0.000000012d-4,dp), & +4.669754570e-4_dp, 0.000000012e-4_dp, & "") !! deuteron mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("deuteron mag. mom. to nuclear magneton ratio", & -real(0.8574382338d0,dp), real(0.0000000022d0,dp), & +0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: DEUTERON_MASS = & codata_constant("deuteron mass", & -real(3.3435837724d-27,dp), real(0.0000000010d-27,dp), & +3.3435837724e-27_dp, 0.0000000010e-27_dp, & "kg") !! deuteron mass type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & codata_constant("deuteron mass energy equivalent", & -real(3.00506323102d-10,dp), real(0.00000000091d-10,dp), & +3.00506323102e-10_dp, 0.00000000091e-10_dp, & "J") !! deuteron mass energy equivalent type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("deuteron mass energy equivalent in MeV", & -real(1875.61294257d0,dp), real(0.00000057d0,dp), & +1875.61294257_dp, 0.00000057_dp, & "MeV") !! deuteron mass energy equivalent in MeV type(codata_constant), parameter, public :: DEUTERON_MASS_IN_U = & codata_constant("deuteron mass in u", & -real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +2.013553212745_dp, 0.000000000040_dp, & "u") !! deuteron mass in u type(codata_constant), parameter, public :: DEUTERON_MOLAR_MASS = & codata_constant("deuteron molar mass", & -real(2.01355321205d-3,dp), real(0.00000000061d-3,dp), & +2.01355321205e-3_dp, 0.00000000061e-3_dp, & "kg mol^-1") !! deuteron molar mass type(codata_constant), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & codata_constant("deuteron-neutron mag. mom. ratio", & -real(-0.44820653d0,dp), real(0.00000011d0,dp), & +-0.44820653_dp, 0.00000011_dp, & "") !! deuteron-neutron mag. mom. ratio type(codata_constant), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & codata_constant("deuteron-proton mag. mom. ratio", & -real(0.30701220939d0,dp), real(0.00000000079d0,dp), & +0.30701220939_dp, 0.00000000079_dp, & "") !! deuteron-proton mag. mom. ratio type(codata_constant), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & codata_constant("deuteron-proton mass ratio", & -real(1.99900750139d0,dp), real(0.00000000011d0,dp), & +1.99900750139_dp, 0.00000000011_dp, & "") !! deuteron-proton mass ratio type(codata_constant), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & codata_constant("deuteron relative atomic mass", & -real(2.013553212745d0,dp), real(0.000000000040d0,dp), & +2.013553212745_dp, 0.000000000040_dp, & "") !! deuteron relative atomic mass type(codata_constant), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & codata_constant("deuteron rms charge radius", & -real(2.12799d-15,dp), real(0.00074d-15,dp), & +2.12799e-15_dp, 0.00074e-15_dp, & "m") !! deuteron rms charge radius type(codata_constant), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & codata_constant("electron charge to mass quotient", & -real(-1.75882001076d11,dp), real(0.00000000053d11,dp), & +-1.75882001076e11_dp, 0.00000000053e11_dp, & "C kg^-1") !! electron charge to mass quotient type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & codata_constant("electron-deuteron mag. mom. ratio", & -real(-2143.9234915d0,dp), real(0.0000056d0,dp), & +-2143.9234915_dp, 0.0000056_dp, & "") !! electron-deuteron mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & codata_constant("electron-deuteron mass ratio", & -real(2.724437107462d-4,dp), real(0.000000000096d-4,dp), & +2.724437107462e-4_dp, 0.000000000096e-4_dp, & "") !! electron-deuteron mass ratio type(codata_constant), parameter, public :: ELECTRON_G_FACTOR = & codata_constant("electron g factor", & -real(-2.00231930436256d0,dp), real(0.00000000000035d0,dp), & +-2.00231930436256_dp, 0.00000000000035_dp, & "") !! electron g factor type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO = & codata_constant("electron gyromag. ratio", & -real(1.76085963023d11,dp), real(0.00000000053d11,dp), & +1.76085963023e11_dp, 0.00000000053e11_dp, & "s^-1 T^-1") !! electron gyromag. ratio type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("electron gyromag. ratio in MHz/T", & -real(28024.9514242d0,dp), real(0.0000085d0,dp), & +28024.9514242_dp, 0.0000085_dp, & "MHz T^-1") !! electron gyromag. ratio in MHz/T type(codata_constant), parameter, public :: ELECTRON_HELION_MASS_RATIO = & codata_constant("electron-helion mass ratio", & -real(1.819543074573d-4,dp), real(0.000000000079d-4,dp), & +1.819543074573e-4_dp, 0.000000000079e-4_dp, & "") !! electron-helion mass ratio type(codata_constant), parameter, public :: ELECTRON_MAG_MOM = & codata_constant("electron mag. mom.", & -real(-9.2847647043d-24,dp), real(0.0000000028d-24,dp), & +-9.2847647043e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! electron mag. mom. type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & codata_constant("electron mag. mom. anomaly", & -real(1.15965218128d-3,dp), real(0.00000000018d-3,dp), & +1.15965218128e-3_dp, 0.00000000018e-3_dp, & "") !! electron mag. mom. anomaly type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("electron mag. mom. to Bohr magneton ratio", & -real(-1.00115965218128d0,dp), real(0.00000000000018d0,dp), & +-1.00115965218128_dp, 0.00000000000018_dp, & "") !! electron mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("electron mag. mom. to nuclear magneton ratio", & -real(-1838.28197188d0,dp), real(0.00000011d0,dp), & +-1838.28197188_dp, 0.00000011_dp, & "") !! electron mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: ELECTRON_MASS = & codata_constant("electron mass", & -real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! electron mass type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & codata_constant("electron mass energy equivalent", & -real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! electron mass energy equivalent type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("electron mass energy equivalent in MeV", & -real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +0.51099895000_dp, 0.00000000015_dp, & "MeV") !! electron mass energy equivalent in MeV type(codata_constant), parameter, public :: ELECTRON_MASS_IN_U = & codata_constant("electron mass in u", & -real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +5.48579909065e-4_dp, 0.00000000016e-4_dp, & "u") !! electron mass in u type(codata_constant), parameter, public :: ELECTRON_MOLAR_MASS = & codata_constant("electron molar mass", & -real(5.4857990888d-7,dp), real(0.0000000017d-7,dp), & +5.4857990888e-7_dp, 0.0000000017e-7_dp, & "kg mol^-1") !! electron molar mass type(codata_constant), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & codata_constant("electron-muon mag. mom. ratio", & -real(206.7669883d0,dp), real(0.0000046d0,dp), & +206.7669883_dp, 0.0000046_dp, & "") !! electron-muon mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_MUON_MASS_RATIO = & codata_constant("electron-muon mass ratio", & -real(4.83633169d-3,dp), real(0.00000011d-3,dp), & +4.83633169e-3_dp, 0.00000011e-3_dp, & "") !! electron-muon mass ratio type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & codata_constant("electron-neutron mag. mom. ratio", & -real(960.92050d0,dp), real(0.00023d0,dp), & +960.92050_dp, 0.00023_dp, & "") !! electron-neutron mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & codata_constant("electron-neutron mass ratio", & -real(5.4386734424d-4,dp), real(0.0000000026d-4,dp), & +5.4386734424e-4_dp, 0.0000000026e-4_dp, & "") !! electron-neutron mass ratio type(codata_constant), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & codata_constant("electron-proton mag. mom. ratio", & -real(-658.21068789d0,dp), real(0.00000020d0,dp), & +-658.21068789_dp, 0.00000020_dp, & "") !! electron-proton mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & codata_constant("electron-proton mass ratio", & -real(5.44617021487d-4,dp), real(0.00000000033d-4,dp), & +5.44617021487e-4_dp, 0.00000000033e-4_dp, & "") !! electron-proton mass ratio type(codata_constant), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & codata_constant("electron relative atomic mass", & -real(5.48579909065d-4,dp), real(0.00000000016d-4,dp), & +5.48579909065e-4_dp, 0.00000000016e-4_dp, & "") !! electron relative atomic mass type(codata_constant), parameter, public :: ELECTRON_TAU_MASS_RATIO = & codata_constant("electron-tau mass ratio", & -real(2.87585d-4,dp), real(0.00019d-4,dp), & +2.87585e-4_dp, 0.00019e-4_dp, & "") !! electron-tau mass ratio type(codata_constant), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & codata_constant("electron to alpha particle mass ratio", & -real(1.370933554787d-4,dp), real(0.000000000045d-4,dp), & +1.370933554787e-4_dp, 0.000000000045e-4_dp, & "") !! electron to alpha particle mass ratio type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & codata_constant("electron to shielded helion mag. mom. ratio", & -real(864.058257d0,dp), real(0.000010d0,dp), & +864.058257_dp, 0.000010_dp, & "") !! electron to shielded helion mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant("electron to shielded proton mag. mom. ratio", & -real(-658.2275971d0,dp), real(0.0000072d0,dp), & +-658.2275971_dp, 0.0000072_dp, & "") !! electron to shielded proton mag. mom. ratio type(codata_constant), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & codata_constant("electron-triton mass ratio", & -real(1.819200062251d-4,dp), real(0.000000000090d-4,dp), & +1.819200062251e-4_dp, 0.000000000090e-4_dp, & "") !! electron-triton mass ratio type(codata_constant), parameter, public :: ELECTRON_VOLT = & codata_constant("electron volt", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt type(codata_constant), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("electron volt-atomic mass unit relationship", & -real(1.07354410233d-9,dp), real(0.00000000032d-9,dp), & +1.07354410233e-9_dp, 0.00000000032e-9_dp, & "u") !! electron volt-atomic mass unit relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & codata_constant("electron volt-hartree relationship", & -real(3.6749322175655d-2,dp), real(0.0000000000071d-2,dp), & +3.6749322175655e-2_dp, 0.0000000000071e-2_dp, & "E_h") !! electron volt-hartree relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & codata_constant("electron volt-hertz relationship", & -real(2.417989242d14,dp), real(0.0d0,dp), & +2.417989242e14_dp, 0.0_dp, & "Hz") !! electron volt-hertz relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & codata_constant("electron volt-inverse meter relationship", & -real(8.065543937d5,dp), real(0.0d0,dp), & +8.065543937e5_dp, 0.0_dp, & "m^-1") !! electron volt-inverse meter relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & codata_constant("electron volt-joule relationship", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt-joule relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & codata_constant("electron volt-kelvin relationship", & -real(1.160451812d4,dp), real(0.0d0,dp), & +1.160451812e4_dp, 0.0_dp, & "K") !! electron volt-kelvin relationship type(codata_constant), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & codata_constant("electron volt-kilogram relationship", & -real(1.782661921d-36,dp), real(0.0d0,dp), & +1.782661921e-36_dp, 0.0_dp, & "kg") !! electron volt-kilogram relationship type(codata_constant), parameter, public :: ELEMENTARY_CHARGE = & codata_constant("elementary charge", & -real(1.602176634d-19,dp), real(0.0d0,dp), & +1.602176634e-19_dp, 0.0_dp, & "C") !! elementary charge type(codata_constant), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & codata_constant("elementary charge over h-bar", & -real(1.519267447d15,dp), real(0.0d0,dp), & +1.519267447e15_dp, 0.0_dp, & "A J^-1") !! elementary charge over h-bar type(codata_constant), parameter, public :: FARADAY_CONSTANT = & codata_constant("Faraday constant", & -real(96485.33212d0,dp), real(0.0d0,dp), & +96485.33212_dp, 0.0_dp, & "C mol^-1") !! Faraday constant type(codata_constant), parameter, public :: FERMI_COUPLING_CONSTANT = & codata_constant("Fermi coupling constant", & -real(1.1663787d-5,dp), real(0.0000006d-5,dp), & +1.1663787e-5_dp, 0.0000006e-5_dp, & "GeV^-2") !! Fermi coupling constant type(codata_constant), parameter, public :: FINE_STRUCTURE_CONSTANT = & codata_constant("fine-structure constant", & -real(7.2973525693d-3,dp), real(0.0000000011d-3,dp), & +7.2973525693e-3_dp, 0.0000000011e-3_dp, & "") !! fine-structure constant type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT = & codata_constant("first radiation constant", & -real(3.741771852d-16,dp), real(0.0d0,dp), & +3.741771852e-16_dp, 0.0_dp, & "W m^2") !! first radiation constant type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & codata_constant("first radiation constant for spectral radiance", & -real(1.191042972d-16,dp), real(0.0d0,dp), & +1.191042972e-16_dp, 0.0_dp, & "W m^2 sr^-1") !! first radiation constant for spectral radiance type(codata_constant), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("hartree-atomic mass unit relationship", & -real(2.92126232205d-8,dp), real(0.00000000088d-8,dp), & +2.92126232205e-8_dp, 0.00000000088e-8_dp, & "u") !! hartree-atomic mass unit relationship type(codata_constant), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("hartree-electron volt relationship", & -real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +27.211386245988_dp, 0.000000000053_dp, & "eV") !! hartree-electron volt relationship type(codata_constant), parameter, public :: HARTREE_ENERGY = & codata_constant("Hartree energy", & -real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! Hartree energy type(codata_constant), parameter, public :: HARTREE_ENERGY_IN_EV = & codata_constant("Hartree energy in eV", & -real(27.211386245988d0,dp), real(0.000000000053d0,dp), & +27.211386245988_dp, 0.000000000053_dp, & "eV") !! Hartree energy in eV type(codata_constant), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & codata_constant("hartree-hertz relationship", & -real(6.579683920502d15,dp), real(0.000000000013d15,dp), & +6.579683920502e15_dp, 0.000000000013e15_dp, & "Hz") !! hartree-hertz relationship type(codata_constant), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & codata_constant("hartree-inverse meter relationship", & -real(2.1947463136320d7,dp), real(0.0000000000043d7,dp), & +2.1947463136320e7_dp, 0.0000000000043e7_dp, & "m^-1") !! hartree-inverse meter relationship type(codata_constant), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & codata_constant("hartree-joule relationship", & -real(4.3597447222071d-18,dp), real(0.0000000000085d-18,dp), & +4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! hartree-joule relationship type(codata_constant), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & codata_constant("hartree-kelvin relationship", & -real(3.1577502480407d5,dp), real(0.0000000000061d5,dp), & +3.1577502480407e5_dp, 0.0000000000061e5_dp, & "K") !! hartree-kelvin relationship type(codata_constant), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & codata_constant("hartree-kilogram relationship", & -real(4.8508702095432d-35,dp), real(0.0000000000094d-35,dp), & +4.8508702095432e-35_dp, 0.0000000000094e-35_dp, & "kg") !! hartree-kilogram relationship type(codata_constant), parameter, public :: HELION_ELECTRON_MASS_RATIO = & codata_constant("helion-electron mass ratio", & -real(5495.88528007d0,dp), real(0.00000024d0,dp), & +5495.88528007_dp, 0.00000024_dp, & "") !! helion-electron mass ratio type(codata_constant), parameter, public :: HELION_G_FACTOR = & codata_constant("helion g factor", & -real(-4.255250615d0,dp), real(0.000000050d0,dp), & +-4.255250615_dp, 0.000000050_dp, & "") !! helion g factor type(codata_constant), parameter, public :: HELION_MAG_MOM = & codata_constant("helion mag. mom.", & -real(-1.074617532d-26,dp), real(0.000000013d-26,dp), & +-1.074617532e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! helion mag. mom. type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("helion mag. mom. to Bohr magneton ratio", & -real(-1.158740958d-3,dp), real(0.000000014d-3,dp), & +-1.158740958e-3_dp, 0.000000014e-3_dp, & "") !! helion mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("helion mag. mom. to nuclear magneton ratio", & -real(-2.127625307d0,dp), real(0.000000025d0,dp), & +-2.127625307_dp, 0.000000025_dp, & "") !! helion mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: HELION_MASS = & codata_constant("helion mass", & -real(5.0064127796d-27,dp), real(0.0000000015d-27,dp), & +5.0064127796e-27_dp, 0.0000000015e-27_dp, & "kg") !! helion mass type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & codata_constant("helion mass energy equivalent", & -real(4.4995394125d-10,dp), real(0.0000000014d-10,dp), & +4.4995394125e-10_dp, 0.0000000014e-10_dp, & "J") !! helion mass energy equivalent type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("helion mass energy equivalent in MeV", & -real(2808.39160743d0,dp), real(0.00000085d0,dp), & +2808.39160743_dp, 0.00000085_dp, & "MeV") !! helion mass energy equivalent in MeV type(codata_constant), parameter, public :: HELION_MASS_IN_U = & codata_constant("helion mass in u", & -real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +3.014932247175_dp, 0.000000000097_dp, & "u") !! helion mass in u type(codata_constant), parameter, public :: HELION_MOLAR_MASS = & codata_constant("helion molar mass", & -real(3.01493224613d-3,dp), real(0.00000000091d-3,dp), & +3.01493224613e-3_dp, 0.00000000091e-3_dp, & "kg mol^-1") !! helion molar mass type(codata_constant), parameter, public :: HELION_PROTON_MASS_RATIO = & codata_constant("helion-proton mass ratio", & -real(2.99315267167d0,dp), real(0.00000000013d0,dp), & +2.99315267167_dp, 0.00000000013_dp, & "") !! helion-proton mass ratio type(codata_constant), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & codata_constant("helion relative atomic mass", & -real(3.014932247175d0,dp), real(0.000000000097d0,dp), & +3.014932247175_dp, 0.000000000097_dp, & "") !! helion relative atomic mass type(codata_constant), parameter, public :: HELION_SHIELDING_SHIFT = & codata_constant("helion shielding shift", & -real(5.996743d-5,dp), real(0.000010d-5,dp), & +5.996743e-5_dp, 0.000010e-5_dp, & "") !! helion shielding shift type(codata_constant), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("hertz-atomic mass unit relationship", & -real(4.4398216652d-24,dp), real(0.0000000013d-24,dp), & +4.4398216652e-24_dp, 0.0000000013e-24_dp, & "u") !! hertz-atomic mass unit relationship type(codata_constant), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("hertz-electron volt relationship", & -real(4.135667696d-15,dp), real(0.0d0,dp), & +4.135667696e-15_dp, 0.0_dp, & "eV") !! hertz-electron volt relationship type(codata_constant), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & codata_constant("hertz-hartree relationship", & -real(1.5198298460570d-16,dp), real(0.0000000000029d-16,dp), & +1.5198298460570e-16_dp, 0.0000000000029e-16_dp, & "E_h") !! hertz-hartree relationship type(codata_constant), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & codata_constant("hertz-inverse meter relationship", & -real(3.335640951d-9,dp), real(0.0d0,dp), & +3.335640951e-9_dp, 0.0_dp, & "m^-1") !! hertz-inverse meter relationship type(codata_constant), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & codata_constant("hertz-joule relationship", & -real(6.62607015d-34,dp), real(0.0d0,dp), & +6.62607015e-34_dp, 0.0_dp, & "J") !! hertz-joule relationship type(codata_constant), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & codata_constant("hertz-kelvin relationship", & -real(4.799243073d-11,dp), real(0.0d0,dp), & +4.799243073e-11_dp, 0.0_dp, & "K") !! hertz-kelvin relationship type(codata_constant), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & codata_constant("hertz-kilogram relationship", & -real(7.372497323d-51,dp), real(0.0d0,dp), & +7.372497323e-51_dp, 0.0_dp, & "kg") !! hertz-kilogram relationship type(codata_constant), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & codata_constant("hyperfine transition frequency of Cs-133", & -real(9192631770d0,dp), real(0.0d0,dp), & +9192631770_dp, 0.0_dp, & "Hz") !! hyperfine transition frequency of Cs-133 type(codata_constant), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & codata_constant("inverse fine-structure constant", & -real(137.035999084d0,dp), real(0.000000021d0,dp), & +137.035999084_dp, 0.000000021_dp, & "") !! inverse fine-structure constant type(codata_constant), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("inverse meter-atomic mass unit relationship", & -real(1.33102505010d-15,dp), real(0.00000000040d-15,dp), & +1.33102505010e-15_dp, 0.00000000040e-15_dp, & "u") !! inverse meter-atomic mass unit relationship type(codata_constant), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("inverse meter-electron volt relationship", & -real(1.239841984d-6,dp), real(0.0d0,dp), & +1.239841984e-6_dp, 0.0_dp, & "eV") !! inverse meter-electron volt relationship type(codata_constant), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & codata_constant("inverse meter-hartree relationship", & -real(4.5563352529120d-8,dp), real(0.0000000000088d-8,dp), & +4.5563352529120e-8_dp, 0.0000000000088e-8_dp, & "E_h") !! inverse meter-hartree relationship type(codata_constant), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & codata_constant("inverse meter-hertz relationship", & -real(299792458d0,dp), real(0.0d0,dp), & +299792458_dp, 0.0_dp, & "Hz") !! inverse meter-hertz relationship type(codata_constant), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & codata_constant("inverse meter-joule relationship", & -real(1.986445857d-25,dp), real(0.0d0,dp), & +1.986445857e-25_dp, 0.0_dp, & "J") !! inverse meter-joule relationship type(codata_constant), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & codata_constant("inverse meter-kelvin relationship", & -real(1.438776877d-2,dp), real(0.0d0,dp), & +1.438776877e-2_dp, 0.0_dp, & "K") !! inverse meter-kelvin relationship type(codata_constant), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & codata_constant("inverse meter-kilogram relationship", & -real(2.210219094d-42,dp), real(0.0d0,dp), & +2.210219094e-42_dp, 0.0_dp, & "kg") !! inverse meter-kilogram relationship type(codata_constant), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & codata_constant("inverse of conductance quantum", & -real(12906.40372d0,dp), real(0.0d0,dp), & +12906.40372_dp, 0.0_dp, & "ohm") !! inverse of conductance quantum type(codata_constant), parameter, public :: JOSEPHSON_CONSTANT = & codata_constant("Josephson constant", & -real(483597.8484d9,dp), real(0.0d0,dp), & +483597.8484e9_dp, 0.0_dp, & "Hz V^-1") !! Josephson constant type(codata_constant), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("joule-atomic mass unit relationship", & -real(6.7005352565d9,dp), real(0.0000000020d9,dp), & +6.7005352565e9_dp, 0.0000000020e9_dp, & "u") !! joule-atomic mass unit relationship type(codata_constant), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("joule-electron volt relationship", & -real(6.241509074d18,dp), real(0.0d0,dp), & +6.241509074e18_dp, 0.0_dp, & "eV") !! joule-electron volt relationship type(codata_constant), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & codata_constant("joule-hartree relationship", & -real(2.2937122783963d17,dp), real(0.0000000000045d17,dp), & +2.2937122783963e17_dp, 0.0000000000045e17_dp, & "E_h") !! joule-hartree relationship type(codata_constant), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & codata_constant("joule-hertz relationship", & -real(1.509190179d33,dp), real(0.0d0,dp), & +1.509190179e33_dp, 0.0_dp, & "Hz") !! joule-hertz relationship type(codata_constant), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & codata_constant("joule-inverse meter relationship", & -real(5.034116567d24,dp), real(0.0d0,dp), & +5.034116567e24_dp, 0.0_dp, & "m^-1") !! joule-inverse meter relationship type(codata_constant), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & codata_constant("joule-kelvin relationship", & -real(7.242970516d22,dp), real(0.0d0,dp), & +7.242970516e22_dp, 0.0_dp, & "K") !! joule-kelvin relationship type(codata_constant), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & codata_constant("joule-kilogram relationship", & -real(1.112650056d-17,dp), real(0.0d0,dp), & +1.112650056e-17_dp, 0.0_dp, & "kg") !! joule-kilogram relationship type(codata_constant), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("kelvin-atomic mass unit relationship", & -real(9.2510873014d-14,dp), real(0.0000000028d-14,dp), & +9.2510873014e-14_dp, 0.0000000028e-14_dp, & "u") !! kelvin-atomic mass unit relationship type(codata_constant), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("kelvin-electron volt relationship", & -real(8.617333262d-5,dp), real(0.0d0,dp), & +8.617333262e-5_dp, 0.0_dp, & "eV") !! kelvin-electron volt relationship type(codata_constant), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & codata_constant("kelvin-hartree relationship", & -real(3.1668115634556d-6,dp), real(0.0000000000061d-6,dp), & +3.1668115634556e-6_dp, 0.0000000000061e-6_dp, & "E_h") !! kelvin-hartree relationship type(codata_constant), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & codata_constant("kelvin-hertz relationship", & -real(2.083661912d10,dp), real(0.0d0,dp), & +2.083661912e10_dp, 0.0_dp, & "Hz") !! kelvin-hertz relationship type(codata_constant), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & codata_constant("kelvin-inverse meter relationship", & -real(69.50348004d0,dp), real(0.0d0,dp), & +69.50348004_dp, 0.0_dp, & "m^-1") !! kelvin-inverse meter relationship type(codata_constant), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & codata_constant("kelvin-joule relationship", & -real(1.380649d-23,dp), real(0.0d0,dp), & +1.380649e-23_dp, 0.0_dp, & "J") !! kelvin-joule relationship type(codata_constant), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & codata_constant("kelvin-kilogram relationship", & -real(1.536179187d-40,dp), real(0.0d0,dp), & +1.536179187e-40_dp, 0.0_dp, & "kg") !! kelvin-kilogram relationship type(codata_constant), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant("kilogram-atomic mass unit relationship", & -real(6.0221407621d26,dp), real(0.0000000018d26,dp), & +6.0221407621e26_dp, 0.0000000018e26_dp, & "u") !! kilogram-atomic mass unit relationship type(codata_constant), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & codata_constant("kilogram-electron volt relationship", & -real(5.609588603d35,dp), real(0.0d0,dp), & +5.609588603e35_dp, 0.0_dp, & "eV") !! kilogram-electron volt relationship type(codata_constant), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & codata_constant("kilogram-hartree relationship", & -real(2.0614857887409d34,dp), real(0.0000000000040d34,dp), & +2.0614857887409e34_dp, 0.0000000000040e34_dp, & "E_h") !! kilogram-hartree relationship type(codata_constant), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & codata_constant("kilogram-hertz relationship", & -real(1.356392489d50,dp), real(0.0d0,dp), & +1.356392489e50_dp, 0.0_dp, & "Hz") !! kilogram-hertz relationship type(codata_constant), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & codata_constant("kilogram-inverse meter relationship", & -real(4.524438335d41,dp), real(0.0d0,dp), & +4.524438335e41_dp, 0.0_dp, & "m^-1") !! kilogram-inverse meter relationship type(codata_constant), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & codata_constant("kilogram-joule relationship", & -real(8.987551787d16,dp), real(0.0d0,dp), & +8.987551787e16_dp, 0.0_dp, & "J") !! kilogram-joule relationship type(codata_constant), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & codata_constant("kilogram-kelvin relationship", & -real(6.509657260d39,dp), real(0.0d0,dp), & +6.509657260e39_dp, 0.0_dp, & "K") !! kilogram-kelvin relationship type(codata_constant), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & codata_constant("lattice parameter of silicon", & -real(5.431020511d-10,dp), real(0.000000089d-10,dp), & +5.431020511e-10_dp, 0.000000089e-10_dp, & "m") !! lattice parameter of silicon type(codata_constant), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & codata_constant("lattice spacing of ideal Si (220)", & -real(1.920155716d-10,dp), real(0.000000032d-10,dp), & +1.920155716e-10_dp, 0.000000032e-10_dp, & "m") !! lattice spacing of ideal Si (220) type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & codata_constant("Loschmidt constant (273.15 K, 100 kPa)", & -real(2.651645804d25,dp), real(0.0d0,dp), & +2.651645804e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 100 kPa) type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & codata_constant("Loschmidt constant (273.15 K, 101.325 kPa)", & -real(2.686780111d25,dp), real(0.0d0,dp), & +2.686780111e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) type(codata_constant), parameter, public :: LUMINOUS_EFFICACY = & codata_constant("luminous efficacy", & -real(683d0,dp), real(0.0d0,dp), & +683_dp, 0.0_dp, & "lm W^-1") !! luminous efficacy type(codata_constant), parameter, public :: MAG_FLUX_QUANTUM = & codata_constant("mag. flux quantum", & -real(2.067833848d-15,dp), real(0.0d0,dp), & +2.067833848e-15_dp, 0.0_dp, & "Wb") !! mag. flux quantum type(codata_constant), parameter, public :: MOLAR_GAS_CONSTANT = & codata_constant("molar gas constant", & -real(8.314462618d0,dp), real(0.0d0,dp), & +8.314462618_dp, 0.0_dp, & "J mol^-1 K^-1") !! molar gas constant type(codata_constant), parameter, public :: MOLAR_MASS_CONSTANT = & codata_constant("molar mass constant", & -real(0.99999999965d-3,dp), real(0.00000000030d-3,dp), & +0.99999999965e-3_dp, 0.00000000030e-3_dp, & "kg mol^-1") !! molar mass constant type(codata_constant), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & codata_constant("molar mass of carbon-12", & -real(11.9999999958d-3,dp), real(0.0000000036d-3,dp), & +11.9999999958e-3_dp, 0.0000000036e-3_dp, & "kg mol^-1") !! molar mass of carbon-12 type(codata_constant), parameter, public :: MOLAR_PLANCK_CONSTANT = & codata_constant("molar Planck constant", & -real(3.990312712d-10,dp), real(0.0d0,dp), & +3.990312712e-10_dp, 0.0_dp, & "J Hz^-1 mol^-1") !! molar Planck constant type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & codata_constant("molar volume of ideal gas (273.15 K, 100 kPa)", & -real(22.71095464d-3,dp), real(0.0d0,dp), & +22.71095464e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & codata_constant("molar volume of ideal gas (273.15 K, 101.325 kPa)", & -real(22.41396954d-3,dp), real(0.0d0,dp), & +22.41396954e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_SILICON = & codata_constant("molar volume of silicon", & -real(1.205883199d-5,dp), real(0.000000060d-5,dp), & +1.205883199e-5_dp, 0.000000060e-5_dp, & "m^3 mol^-1") !! molar volume of silicon type(codata_constant), parameter, public :: MOLYBDENUM_X_UNIT = & codata_constant("Molybdenum x unit", & -real(1.00209952d-13,dp), real(0.00000053d-13,dp), & +1.00209952e-13_dp, 0.00000053e-13_dp, & "m") !! Molybdenum x unit type(codata_constant), parameter, public :: MUON_COMPTON_WAVELENGTH = & codata_constant("muon Compton wavelength", & -real(1.173444110d-14,dp), real(0.000000026d-14,dp), & +1.173444110e-14_dp, 0.000000026e-14_dp, & "m") !! muon Compton wavelength type(codata_constant), parameter, public :: MUON_ELECTRON_MASS_RATIO = & codata_constant("muon-electron mass ratio", & -real(206.7682830d0,dp), real(0.0000046d0,dp), & +206.7682830_dp, 0.0000046_dp, & "") !! muon-electron mass ratio type(codata_constant), parameter, public :: MUON_G_FACTOR = & codata_constant("muon g factor", & -real(-2.0023318418d0,dp), real(0.0000000013d0,dp), & +-2.0023318418_dp, 0.0000000013_dp, & "") !! muon g factor type(codata_constant), parameter, public :: MUON_MAG_MOM = & codata_constant("muon mag. mom.", & -real(-4.49044830d-26,dp), real(0.00000010d-26,dp), & +-4.49044830e-26_dp, 0.00000010e-26_dp, & "J T^-1") !! muon mag. mom. type(codata_constant), parameter, public :: MUON_MAG_MOM_ANOMALY = & codata_constant("muon mag. mom. anomaly", & -real(1.16592089d-3,dp), real(0.00000063d-3,dp), & +1.16592089e-3_dp, 0.00000063e-3_dp, & "") !! muon mag. mom. anomaly type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("muon mag. mom. to Bohr magneton ratio", & -real(-4.84197047d-3,dp), real(0.00000011d-3,dp), & +-4.84197047e-3_dp, 0.00000011e-3_dp, & "") !! muon mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("muon mag. mom. to nuclear magneton ratio", & -real(-8.89059703d0,dp), real(0.00000020d0,dp), & +-8.89059703_dp, 0.00000020_dp, & "") !! muon mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: MUON_MASS = & codata_constant("muon mass", & -real(1.883531627d-28,dp), real(0.000000042d-28,dp), & +1.883531627e-28_dp, 0.000000042e-28_dp, & "kg") !! muon mass type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & codata_constant("muon mass energy equivalent", & -real(1.692833804d-11,dp), real(0.000000038d-11,dp), & +1.692833804e-11_dp, 0.000000038e-11_dp, & "J") !! muon mass energy equivalent type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("muon mass energy equivalent in MeV", & -real(105.6583755d0,dp), real(0.0000023d0,dp), & +105.6583755_dp, 0.0000023_dp, & "MeV") !! muon mass energy equivalent in MeV type(codata_constant), parameter, public :: MUON_MASS_IN_U = & codata_constant("muon mass in u", & -real(0.1134289259d0,dp), real(0.0000000025d0,dp), & +0.1134289259_dp, 0.0000000025_dp, & "u") !! muon mass in u type(codata_constant), parameter, public :: MUON_MOLAR_MASS = & codata_constant("muon molar mass", & -real(1.134289259d-4,dp), real(0.000000025d-4,dp), & +1.134289259e-4_dp, 0.000000025e-4_dp, & "kg mol^-1") !! muon molar mass type(codata_constant), parameter, public :: MUON_NEUTRON_MASS_RATIO = & codata_constant("muon-neutron mass ratio", & -real(0.1124545170d0,dp), real(0.0000000025d0,dp), & +0.1124545170_dp, 0.0000000025_dp, & "") !! muon-neutron mass ratio type(codata_constant), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & codata_constant("muon-proton mag. mom. ratio", & -real(-3.183345142d0,dp), real(0.000000071d0,dp), & +-3.183345142_dp, 0.000000071_dp, & "") !! muon-proton mag. mom. ratio type(codata_constant), parameter, public :: MUON_PROTON_MASS_RATIO = & codata_constant("muon-proton mass ratio", & -real(0.1126095264d0,dp), real(0.0000000025d0,dp), & +0.1126095264_dp, 0.0000000025_dp, & "") !! muon-proton mass ratio type(codata_constant), parameter, public :: MUON_TAU_MASS_RATIO = & codata_constant("muon-tau mass ratio", & -real(5.94635d-2,dp), real(0.00040d-2,dp), & +5.94635e-2_dp, 0.00040e-2_dp, & "") !! muon-tau mass ratio type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION = & codata_constant("natural unit of action", & -real(1.054571817d-34,dp), real(0.0d0,dp), & +1.054571817e-34_dp, 0.0_dp, & "J s") !! natural unit of action type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & codata_constant("natural unit of action in eV s", & -real(6.582119569d-16,dp), real(0.0d0,dp), & +6.582119569e-16_dp, 0.0_dp, & "eV s") !! natural unit of action in eV s type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY = & codata_constant("natural unit of energy", & -real(8.1871057769d-14,dp), real(0.0000000025d-14,dp), & +8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! natural unit of energy type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & codata_constant("natural unit of energy in MeV", & -real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +0.51099895000_dp, 0.00000000015_dp, & "MeV") !! natural unit of energy in MeV type(codata_constant), parameter, public :: NATURAL_UNIT_OF_LENGTH = & codata_constant("natural unit of length", & -real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! natural unit of length type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MASS = & codata_constant("natural unit of mass", & -real(9.1093837015d-31,dp), real(0.0000000028d-31,dp), & +9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! natural unit of mass type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & codata_constant("natural unit of momentum", & -real(2.73092453075d-22,dp), real(0.00000000082d-22,dp), & +2.73092453075e-22_dp, 0.00000000082e-22_dp, & "kg m s^-1") !! natural unit of momentum type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & codata_constant("natural unit of momentum in MeV/c", & -real(0.51099895000d0,dp), real(0.00000000015d0,dp), & +0.51099895000_dp, 0.00000000015_dp, & "MeV/c") !! natural unit of momentum in MeV/c type(codata_constant), parameter, public :: NATURAL_UNIT_OF_TIME = & codata_constant("natural unit of time", & -real(1.28808866819d-21,dp), real(0.00000000039d-21,dp), & +1.28808866819e-21_dp, 0.00000000039e-21_dp, & "s") !! natural unit of time type(codata_constant), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & codata_constant("natural unit of velocity", & -real(299792458d0,dp), real(0.0d0,dp), & +299792458_dp, 0.0_dp, & "m s^-1") !! natural unit of velocity type(codata_constant), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & codata_constant("neutron Compton wavelength", & -real(1.31959090581d-15,dp), real(0.00000000075d-15,dp), & +1.31959090581e-15_dp, 0.00000000075e-15_dp, & "m") !! neutron Compton wavelength type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & codata_constant("neutron-electron mag. mom. ratio", & -real(1.04066882d-3,dp), real(0.00000025d-3,dp), & +1.04066882e-3_dp, 0.00000025e-3_dp, & "") !! neutron-electron mag. mom. ratio type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & codata_constant("neutron-electron mass ratio", & -real(1838.68366173d0,dp), real(0.00000089d0,dp), & +1838.68366173_dp, 0.00000089_dp, & "") !! neutron-electron mass ratio type(codata_constant), parameter, public :: NEUTRON_G_FACTOR = & codata_constant("neutron g factor", & -real(-3.82608545d0,dp), real(0.00000090d0,dp), & +-3.82608545_dp, 0.00000090_dp, & "") !! neutron g factor type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO = & codata_constant("neutron gyromag. ratio", & -real(1.83247171d8,dp), real(0.00000043d8,dp), & +1.83247171e8_dp, 0.00000043e8_dp, & "s^-1 T^-1") !! neutron gyromag. ratio type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("neutron gyromag. ratio in MHz/T", & -real(29.1646931d0,dp), real(0.0000069d0,dp), & +29.1646931_dp, 0.0000069_dp, & "MHz T^-1") !! neutron gyromag. ratio in MHz/T type(codata_constant), parameter, public :: NEUTRON_MAG_MOM = & codata_constant("neutron mag. mom.", & -real(-9.6623651d-27,dp), real(0.0000023d-27,dp), & +-9.6623651e-27_dp, 0.0000023e-27_dp, & "J T^-1") !! neutron mag. mom. type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("neutron mag. mom. to Bohr magneton ratio", & -real(-1.04187563d-3,dp), real(0.00000025d-3,dp), & +-1.04187563e-3_dp, 0.00000025e-3_dp, & "") !! neutron mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("neutron mag. mom. to nuclear magneton ratio", & -real(-1.91304273d0,dp), real(0.00000045d0,dp), & +-1.91304273_dp, 0.00000045_dp, & "") !! neutron mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: NEUTRON_MASS = & codata_constant("neutron mass", & -real(1.67492749804d-27,dp), real(0.00000000095d-27,dp), & +1.67492749804e-27_dp, 0.00000000095e-27_dp, & "kg") !! neutron mass type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & codata_constant("neutron mass energy equivalent", & -real(1.50534976287d-10,dp), real(0.00000000086d-10,dp), & +1.50534976287e-10_dp, 0.00000000086e-10_dp, & "J") !! neutron mass energy equivalent type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("neutron mass energy equivalent in MeV", & -real(939.56542052d0,dp), real(0.00000054d0,dp), & +939.56542052_dp, 0.00000054_dp, & "MeV") !! neutron mass energy equivalent in MeV type(codata_constant), parameter, public :: NEUTRON_MASS_IN_U = & codata_constant("neutron mass in u", & -real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +1.00866491595_dp, 0.00000000049_dp, & "u") !! neutron mass in u type(codata_constant), parameter, public :: NEUTRON_MOLAR_MASS = & codata_constant("neutron molar mass", & -real(1.00866491560d-3,dp), real(0.00000000057d-3,dp), & +1.00866491560e-3_dp, 0.00000000057e-3_dp, & "kg mol^-1") !! neutron molar mass type(codata_constant), parameter, public :: NEUTRON_MUON_MASS_RATIO = & codata_constant("neutron-muon mass ratio", & -real(8.89248406d0,dp), real(0.00000020d0,dp), & +8.89248406_dp, 0.00000020_dp, & "") !! neutron-muon mass ratio type(codata_constant), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & codata_constant("neutron-proton mag. mom. ratio", & -real(-0.68497934d0,dp), real(0.00000016d0,dp), & +-0.68497934_dp, 0.00000016_dp, & "") !! neutron-proton mag. mom. ratio type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & codata_constant("neutron-proton mass difference", & -real(2.30557435d-30,dp), real(0.00000082d-30,dp), & +2.30557435e-30_dp, 0.00000082e-30_dp, & "kg") !! neutron-proton mass difference type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & codata_constant("neutron-proton mass difference energy equivalent", & -real(2.07214689d-13,dp), real(0.00000074d-13,dp), & +2.07214689e-13_dp, 0.00000074e-13_dp, & "J") !! neutron-proton mass difference energy equivalent type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("neutron-proton mass difference energy equivalent in MeV", & -real(1.29333236d0,dp), real(0.00000046d0,dp), & +1.29333236_dp, 0.00000046_dp, & "MeV") !! neutron-proton mass difference energy equivalent in MeV type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & codata_constant("neutron-proton mass difference in u", & -real(1.38844933d-3,dp), real(0.00000049d-3,dp), & +1.38844933e-3_dp, 0.00000049e-3_dp, & "u") !! neutron-proton mass difference in u type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & codata_constant("neutron-proton mass ratio", & -real(1.00137841931d0,dp), real(0.00000000049d0,dp), & +1.00137841931_dp, 0.00000000049_dp, & "") !! neutron-proton mass ratio type(codata_constant), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & codata_constant("neutron relative atomic mass", & -real(1.00866491595d0,dp), real(0.00000000049d0,dp), & +1.00866491595_dp, 0.00000000049_dp, & "") !! neutron relative atomic mass type(codata_constant), parameter, public :: NEUTRON_TAU_MASS_RATIO = & codata_constant("neutron-tau mass ratio", & -real(0.528779d0,dp), real(0.000036d0,dp), & +0.528779_dp, 0.000036_dp, & "") !! neutron-tau mass ratio type(codata_constant), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant("neutron to shielded proton mag. mom. ratio", & -real(-0.68499694d0,dp), real(0.00000016d0,dp), & +-0.68499694_dp, 0.00000016_dp, & "") !! neutron to shielded proton mag. mom. ratio type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & codata_constant("Newtonian constant of gravitation", & -real(6.67430d-11,dp), real(0.00015d-11,dp), & +6.67430e-11_dp, 0.00015e-11_dp, & "m^3 kg^-1 s^-2") !! Newtonian constant of gravitation type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & codata_constant("Newtonian constant of gravitation over h-bar c", & -real(6.70883d-39,dp), real(0.00015d-39,dp), & +6.70883e-39_dp, 0.00015e-39_dp, & "(GeV/c^2)^-2") !! Newtonian constant of gravitation over h-bar c type(codata_constant), parameter, public :: NUCLEAR_MAGNETON = & codata_constant("nuclear magneton", & -real(5.0507837461d-27,dp), real(0.0000000015d-27,dp), & +5.0507837461e-27_dp, 0.0000000015e-27_dp, & "J T^-1") !! nuclear magneton type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & codata_constant("nuclear magneton in eV/T", & -real(3.15245125844d-8,dp), real(0.00000000096d-8,dp), & +3.15245125844e-8_dp, 0.00000000096e-8_dp, & "eV T^-1") !! nuclear magneton in eV/T type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant("nuclear magneton in inverse meter per tesla", & -real(2.54262341353d-2,dp), real(0.00000000078d-2,dp), & +2.54262341353e-2_dp, 0.00000000078e-2_dp, & "m^-1 T^-1") !! nuclear magneton in inverse meter per tesla type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & codata_constant("nuclear magneton in K/T", & -real(3.6582677756d-4,dp), real(0.0000000011d-4,dp), & +3.6582677756e-4_dp, 0.0000000011e-4_dp, & "K T^-1") !! nuclear magneton in K/T type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & codata_constant("nuclear magneton in MHz/T", & -real(7.6225932291d0,dp), real(0.0000000023d0,dp), & +7.6225932291_dp, 0.0000000023_dp, & "MHz T^-1") !! nuclear magneton in MHz/T type(codata_constant), parameter, public :: PLANCK_CONSTANT = & codata_constant("Planck constant", & -real(6.62607015d-34,dp), real(0.0d0,dp), & +6.62607015e-34_dp, 0.0_dp, & "J Hz^-1") !! Planck constant type(codata_constant), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & codata_constant("Planck constant in eV/Hz", & -real(4.135667696d-15,dp), real(0.0d0,dp), & +4.135667696e-15_dp, 0.0_dp, & "eV Hz^-1") !! Planck constant in eV/Hz type(codata_constant), parameter, public :: PLANCK_LENGTH = & codata_constant("Planck length", & -real(1.616255d-35,dp), real(0.000018d-35,dp), & +1.616255e-35_dp, 0.000018e-35_dp, & "m") !! Planck length type(codata_constant), parameter, public :: PLANCK_MASS = & codata_constant("Planck mass", & -real(2.176434d-8,dp), real(0.000024d-8,dp), & +2.176434e-8_dp, 0.000024e-8_dp, & "kg") !! Planck mass type(codata_constant), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & codata_constant("Planck mass energy equivalent in GeV", & -real(1.220890d19,dp), real(0.000014d19,dp), & +1.220890e19_dp, 0.000014e19_dp, & "GeV") !! Planck mass energy equivalent in GeV type(codata_constant), parameter, public :: PLANCK_TEMPERATURE = & codata_constant("Planck temperature", & -real(1.416784d32,dp), real(0.000016d32,dp), & +1.416784e32_dp, 0.000016e32_dp, & "K") !! Planck temperature type(codata_constant), parameter, public :: PLANCK_TIME = & codata_constant("Planck time", & -real(5.391247d-44,dp), real(0.000060d-44,dp), & +5.391247e-44_dp, 0.000060e-44_dp, & "s") !! Planck time type(codata_constant), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & codata_constant("proton charge to mass quotient", & -real(9.5788331560d7,dp), real(0.0000000029d7,dp), & +9.5788331560e7_dp, 0.0000000029e7_dp, & "C kg^-1") !! proton charge to mass quotient type(codata_constant), parameter, public :: PROTON_COMPTON_WAVELENGTH = & codata_constant("proton Compton wavelength", & -real(1.32140985539d-15,dp), real(0.00000000040d-15,dp), & +1.32140985539e-15_dp, 0.00000000040e-15_dp, & "m") !! proton Compton wavelength type(codata_constant), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & codata_constant("proton-electron mass ratio", & -real(1836.15267343d0,dp), real(0.00000011d0,dp), & +1836.15267343_dp, 0.00000011_dp, & "") !! proton-electron mass ratio type(codata_constant), parameter, public :: PROTON_G_FACTOR = & codata_constant("proton g factor", & -real(5.5856946893d0,dp), real(0.0000000016d0,dp), & +5.5856946893_dp, 0.0000000016_dp, & "") !! proton g factor type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO = & codata_constant("proton gyromag. ratio", & -real(2.6752218744d8,dp), real(0.0000000011d8,dp), & +2.6752218744e8_dp, 0.0000000011e8_dp, & "s^-1 T^-1") !! proton gyromag. ratio type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("proton gyromag. ratio in MHz/T", & -real(42.577478518d0,dp), real(0.000000018d0,dp), & +42.577478518_dp, 0.000000018_dp, & "MHz T^-1") !! proton gyromag. ratio in MHz/T type(codata_constant), parameter, public :: PROTON_MAG_MOM = & codata_constant("proton mag. mom.", & -real(1.41060679736d-26,dp), real(0.00000000060d-26,dp), & +1.41060679736e-26_dp, 0.00000000060e-26_dp, & "J T^-1") !! proton mag. mom. type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("proton mag. mom. to Bohr magneton ratio", & -real(1.52103220230d-3,dp), real(0.00000000046d-3,dp), & +1.52103220230e-3_dp, 0.00000000046e-3_dp, & "") !! proton mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("proton mag. mom. to nuclear magneton ratio", & -real(2.79284734463d0,dp), real(0.00000000082d0,dp), & +2.79284734463_dp, 0.00000000082_dp, & "") !! proton mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & codata_constant("proton mag. shielding correction", & -real(2.5689d-5,dp), real(0.0011d-5,dp), & +2.5689e-5_dp, 0.0011e-5_dp, & "") !! proton mag. shielding correction type(codata_constant), parameter, public :: PROTON_MASS = & codata_constant("proton mass", & -real(1.67262192369d-27,dp), real(0.00000000051d-27,dp), & +1.67262192369e-27_dp, 0.00000000051e-27_dp, & "kg") !! proton mass type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & codata_constant("proton mass energy equivalent", & -real(1.50327761598d-10,dp), real(0.00000000046d-10,dp), & +1.50327761598e-10_dp, 0.00000000046e-10_dp, & "J") !! proton mass energy equivalent type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("proton mass energy equivalent in MeV", & -real(938.27208816d0,dp), real(0.00000029d0,dp), & +938.27208816_dp, 0.00000029_dp, & "MeV") !! proton mass energy equivalent in MeV type(codata_constant), parameter, public :: PROTON_MASS_IN_U = & codata_constant("proton mass in u", & -real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +1.007276466621_dp, 0.000000000053_dp, & "u") !! proton mass in u type(codata_constant), parameter, public :: PROTON_MOLAR_MASS = & codata_constant("proton molar mass", & -real(1.00727646627d-3,dp), real(0.00000000031d-3,dp), & +1.00727646627e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! proton molar mass type(codata_constant), parameter, public :: PROTON_MUON_MASS_RATIO = & codata_constant("proton-muon mass ratio", & -real(8.88024337d0,dp), real(0.00000020d0,dp), & +8.88024337_dp, 0.00000020_dp, & "") !! proton-muon mass ratio type(codata_constant), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & codata_constant("proton-neutron mag. mom. ratio", & -real(-1.45989805d0,dp), real(0.00000034d0,dp), & +-1.45989805_dp, 0.00000034_dp, & "") !! proton-neutron mag. mom. ratio type(codata_constant), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & codata_constant("proton-neutron mass ratio", & -real(0.99862347812d0,dp), real(0.00000000049d0,dp), & +0.99862347812_dp, 0.00000000049_dp, & "") !! proton-neutron mass ratio type(codata_constant), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & codata_constant("proton relative atomic mass", & -real(1.007276466621d0,dp), real(0.000000000053d0,dp), & +1.007276466621_dp, 0.000000000053_dp, & "") !! proton relative atomic mass type(codata_constant), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & codata_constant("proton rms charge radius", & -real(8.414d-16,dp), real(0.019d-16,dp), & +8.414e-16_dp, 0.019e-16_dp, & "m") !! proton rms charge radius type(codata_constant), parameter, public :: PROTON_TAU_MASS_RATIO = & codata_constant("proton-tau mass ratio", & -real(0.528051d0,dp), real(0.000036d0,dp), & +0.528051_dp, 0.000036_dp, & "") !! proton-tau mass ratio type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION = & codata_constant("quantum of circulation", & -real(3.6369475516d-4,dp), real(0.0000000011d-4,dp), & +3.6369475516e-4_dp, 0.0000000011e-4_dp, & "m^2 s^-1") !! quantum of circulation type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & codata_constant("quantum of circulation times 2", & -real(7.2738951032d-4,dp), real(0.0000000022d-4,dp), & +7.2738951032e-4_dp, 0.0000000022e-4_dp, & "m^2 s^-1") !! quantum of circulation times 2 type(codata_constant), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & codata_constant("reduced Compton wavelength", & -real(3.8615926796d-13,dp), real(0.0000000012d-13,dp), & +3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! reduced Compton wavelength type(codata_constant), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & codata_constant("reduced muon Compton wavelength", & -real(1.867594306d-15,dp), real(0.000000042d-15,dp), & +1.867594306e-15_dp, 0.000000042e-15_dp, & "m") !! reduced muon Compton wavelength type(codata_constant), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & codata_constant("reduced neutron Compton wavelength", & -real(2.1001941552d-16,dp), real(0.0000000012d-16,dp), & +2.1001941552e-16_dp, 0.0000000012e-16_dp, & "m") !! reduced neutron Compton wavelength type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT = & codata_constant("reduced Planck constant", & -real(1.054571817d-34,dp), real(0.0d0,dp), & +1.054571817e-34_dp, 0.0_dp, & "J s") !! reduced Planck constant type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & codata_constant("reduced Planck constant in eV s", & -real(6.582119569d-16,dp), real(0.0d0,dp), & +6.582119569e-16_dp, 0.0_dp, & "eV s") !! reduced Planck constant in eV s type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & codata_constant("reduced Planck constant times c in MeV fm", & -real(197.3269804d0,dp), real(0.0d0,dp), & +197.3269804_dp, 0.0_dp, & "MeV fm") !! reduced Planck constant times c in MeV fm type(codata_constant), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & codata_constant("reduced proton Compton wavelength", & -real(2.10308910336d-16,dp), real(0.00000000064d-16,dp), & +2.10308910336e-16_dp, 0.00000000064e-16_dp, & "m") !! reduced proton Compton wavelength type(codata_constant), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & codata_constant("reduced tau Compton wavelength", & -real(1.110538d-16,dp), real(0.000075d-16,dp), & +1.110538e-16_dp, 0.000075e-16_dp, & "m") !! reduced tau Compton wavelength type(codata_constant), parameter, public :: RYDBERG_CONSTANT = & codata_constant("Rydberg constant", & -real(10973731.568160d0,dp), real(0.000021d0,dp), & +10973731.568160_dp, 0.000021_dp, & "m^-1") !! Rydberg constant type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & codata_constant("Rydberg constant times c in Hz", & -real(3.2898419602508d15,dp), real(0.0000000000064d15,dp), & +3.2898419602508e15_dp, 0.0000000000064e15_dp, & "Hz") !! Rydberg constant times c in Hz type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & codata_constant("Rydberg constant times hc in eV", & -real(13.605693122994d0,dp), real(0.000000000026d0,dp), & +13.605693122994_dp, 0.000000000026_dp, & "eV") !! Rydberg constant times hc in eV type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & codata_constant("Rydberg constant times hc in J", & -real(2.1798723611035d-18,dp), real(0.0000000000042d-18,dp), & +2.1798723611035e-18_dp, 0.0000000000042e-18_dp, & "J") !! Rydberg constant times hc in J type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & codata_constant("Sackur-Tetrode constant (1 K, 100 kPa)", & -real(-1.15170753706d0,dp), real(0.00000000045d0,dp), & +-1.15170753706_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & codata_constant("Sackur-Tetrode constant (1 K, 101.325 kPa)", & -real(-1.16487052358d0,dp), real(0.00000000045d0,dp), & +-1.16487052358_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) type(codata_constant), parameter, public :: SECOND_RADIATION_CONSTANT = & codata_constant("second radiation constant", & -real(1.438776877d-2,dp), real(0.0d0,dp), & +1.438776877e-2_dp, 0.0_dp, & "m K") !! second radiation constant type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & codata_constant("shielded helion gyromag. ratio", & -real(2.037894569d8,dp), real(0.000000024d8,dp), & +2.037894569e8_dp, 0.000000024e8_dp, & "s^-1 T^-1") !! shielded helion gyromag. ratio type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("shielded helion gyromag. ratio in MHz/T", & -real(32.43409942d0,dp), real(0.00000038d0,dp), & +32.43409942_dp, 0.00000038_dp, & "MHz T^-1") !! shielded helion gyromag. ratio in MHz/T type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM = & codata_constant("shielded helion mag. mom.", & -real(-1.074553090d-26,dp), real(0.000000013d-26,dp), & +-1.074553090e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! shielded helion mag. mom. type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("shielded helion mag. mom. to Bohr magneton ratio", & -real(-1.158671471d-3,dp), real(0.000000014d-3,dp), & +-1.158671471e-3_dp, 0.000000014e-3_dp, & "") !! shielded helion mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("shielded helion mag. mom. to nuclear magneton ratio", & -real(-2.127497719d0,dp), real(0.000000025d0,dp), & +-2.127497719_dp, 0.000000025_dp, & "") !! shielded helion mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & codata_constant("shielded helion to proton mag. mom. ratio", & -real(-0.7617665618d0,dp), real(0.0000000089d0,dp), & +-0.7617665618_dp, 0.0000000089_dp, & "") !! shielded helion to proton mag. mom. ratio type(codata_constant), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant("shielded helion to shielded proton mag. mom. ratio", & -real(-0.7617861313d0,dp), real(0.0000000033d0,dp), & +-0.7617861313_dp, 0.0000000033_dp, & "") !! shielded helion to shielded proton mag. mom. ratio type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & codata_constant("shielded proton gyromag. ratio", & -real(2.675153151d8,dp), real(0.000000029d8,dp), & +2.675153151e8_dp, 0.000000029e8_dp, & "s^-1 T^-1") !! shielded proton gyromag. ratio type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant("shielded proton gyromag. ratio in MHz/T", & -real(42.57638474d0,dp), real(0.00000046d0,dp), & +42.57638474_dp, 0.00000046_dp, & "MHz T^-1") !! shielded proton gyromag. ratio in MHz/T type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM = & codata_constant("shielded proton mag. mom.", & -real(1.410570560d-26,dp), real(0.000000015d-26,dp), & +1.410570560e-26_dp, 0.000000015e-26_dp, & "J T^-1") !! shielded proton mag. mom. type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("shielded proton mag. mom. to Bohr magneton ratio", & -real(1.520993128d-3,dp), real(0.000000017d-3,dp), & +1.520993128e-3_dp, 0.000000017e-3_dp, & "") !! shielded proton mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("shielded proton mag. mom. to nuclear magneton ratio", & -real(2.792775599d0,dp), real(0.000000030d0,dp), & +2.792775599_dp, 0.000000030_dp, & "") !! shielded proton mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & codata_constant("shielding difference of d and p in HD", & -real(2.0200d-8,dp), real(0.0020d-8,dp), & +2.0200e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of d and p in HD type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & codata_constant("shielding difference of t and p in HT", & -real(2.4140d-8,dp), real(0.0020d-8,dp), & +2.4140e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of t and p in HT type(codata_constant), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & codata_constant("speed of light in vacuum", & -real(299792458d0,dp), real(0.0d0,dp), & +299792458_dp, 0.0_dp, & "m s^-1") !! speed of light in vacuum type(codata_constant), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & codata_constant("standard acceleration of gravity", & -real(9.80665d0,dp), real(0.0d0,dp), & +9.80665_dp, 0.0_dp, & "m s^-2") !! standard acceleration of gravity type(codata_constant), parameter, public :: STANDARD_ATMOSPHERE = & codata_constant("standard atmosphere", & -real(101325d0,dp), real(0.0d0,dp), & +101325_dp, 0.0_dp, & "Pa") !! standard atmosphere type(codata_constant), parameter, public :: STANDARD_STATE_PRESSURE = & codata_constant("standard-state pressure", & -real(100000d0,dp), real(0.0d0,dp), & +100000_dp, 0.0_dp, & "Pa") !! standard-state pressure type(codata_constant), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & codata_constant("Stefan-Boltzmann constant", & -real(5.670374419d-8,dp), real(0.0d0,dp), & +5.670374419e-8_dp, 0.0_dp, & "W m^-2 K^-4") !! Stefan-Boltzmann constant type(codata_constant), parameter, public :: TAU_COMPTON_WAVELENGTH = & codata_constant("tau Compton wavelength", & -real(6.97771d-16,dp), real(0.00047d-16,dp), & +6.97771e-16_dp, 0.00047e-16_dp, & "m") !! tau Compton wavelength type(codata_constant), parameter, public :: TAU_ELECTRON_MASS_RATIO = & codata_constant("tau-electron mass ratio", & -real(3477.23d0,dp), real(0.23d0,dp), & +3477.23_dp, 0.23_dp, & "") !! tau-electron mass ratio type(codata_constant), parameter, public :: TAU_ENERGY_EQUIVALENT = & codata_constant("tau energy equivalent", & -real(1776.86d0,dp), real(0.12d0,dp), & +1776.86_dp, 0.12_dp, & "MeV") !! tau energy equivalent type(codata_constant), parameter, public :: TAU_MASS = & codata_constant("tau mass", & -real(3.16754d-27,dp), real(0.00021d-27,dp), & +3.16754e-27_dp, 0.00021e-27_dp, & "kg") !! tau mass type(codata_constant), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & codata_constant("tau mass energy equivalent", & -real(2.84684d-10,dp), real(0.00019d-10,dp), & +2.84684e-10_dp, 0.00019e-10_dp, & "J") !! tau mass energy equivalent type(codata_constant), parameter, public :: TAU_MASS_IN_U = & codata_constant("tau mass in u", & -real(1.90754d0,dp), real(0.00013d0,dp), & +1.90754_dp, 0.00013_dp, & "u") !! tau mass in u type(codata_constant), parameter, public :: TAU_MOLAR_MASS = & codata_constant("tau molar mass", & -real(1.90754d-3,dp), real(0.00013d-3,dp), & +1.90754e-3_dp, 0.00013e-3_dp, & "kg mol^-1") !! tau molar mass type(codata_constant), parameter, public :: TAU_MUON_MASS_RATIO = & codata_constant("tau-muon mass ratio", & -real(16.8170d0,dp), real(0.0011d0,dp), & +16.8170_dp, 0.0011_dp, & "") !! tau-muon mass ratio type(codata_constant), parameter, public :: TAU_NEUTRON_MASS_RATIO = & codata_constant("tau-neutron mass ratio", & -real(1.89115d0,dp), real(0.00013d0,dp), & +1.89115_dp, 0.00013_dp, & "") !! tau-neutron mass ratio type(codata_constant), parameter, public :: TAU_PROTON_MASS_RATIO = & codata_constant("tau-proton mass ratio", & -real(1.89376d0,dp), real(0.00013d0,dp), & +1.89376_dp, 0.00013_dp, & "") !! tau-proton mass ratio type(codata_constant), parameter, public :: THOMSON_CROSS_SECTION = & codata_constant("Thomson cross section", & -real(6.6524587321d-29,dp), real(0.0000000060d-29,dp), & +6.6524587321e-29_dp, 0.0000000060e-29_dp, & "m^2") !! Thomson cross section type(codata_constant), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & codata_constant("triton-electron mass ratio", & -real(5496.92153573d0,dp), real(0.00000027d0,dp), & +5496.92153573_dp, 0.00000027_dp, & "") !! triton-electron mass ratio type(codata_constant), parameter, public :: TRITON_G_FACTOR = & codata_constant("triton g factor", & -real(5.957924931d0,dp), real(0.000000012d0,dp), & +5.957924931_dp, 0.000000012_dp, & "") !! triton g factor type(codata_constant), parameter, public :: TRITON_MAG_MOM = & codata_constant("triton mag. mom.", & -real(1.5046095202d-26,dp), real(0.0000000030d-26,dp), & +1.5046095202e-26_dp, 0.0000000030e-26_dp, & "J T^-1") !! triton mag. mom. type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant("triton mag. mom. to Bohr magneton ratio", & -real(1.6223936651d-3,dp), real(0.0000000032d-3,dp), & +1.6223936651e-3_dp, 0.0000000032e-3_dp, & "") !! triton mag. mom. to Bohr magneton ratio type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant("triton mag. mom. to nuclear magneton ratio", & -real(2.9789624656d0,dp), real(0.0000000059d0,dp), & +2.9789624656_dp, 0.0000000059_dp, & "") !! triton mag. mom. to nuclear magneton ratio type(codata_constant), parameter, public :: TRITON_MASS = & codata_constant("triton mass", & -real(5.0073567446d-27,dp), real(0.0000000015d-27,dp), & +5.0073567446e-27_dp, 0.0000000015e-27_dp, & "kg") !! triton mass type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & codata_constant("triton mass energy equivalent", & -real(4.5003878060d-10,dp), real(0.0000000014d-10,dp), & +4.5003878060e-10_dp, 0.0000000014e-10_dp, & "J") !! triton mass energy equivalent type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant("triton mass energy equivalent in MeV", & -real(2808.92113298d0,dp), real(0.00000085d0,dp), & +2808.92113298_dp, 0.00000085_dp, & "MeV") !! triton mass energy equivalent in MeV type(codata_constant), parameter, public :: TRITON_MASS_IN_U = & codata_constant("triton mass in u", & -real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +3.01550071621_dp, 0.00000000012_dp, & "u") !! triton mass in u type(codata_constant), parameter, public :: TRITON_MOLAR_MASS = & codata_constant("triton molar mass", & -real(3.01550071517d-3,dp), real(0.00000000092d-3,dp), & +3.01550071517e-3_dp, 0.00000000092e-3_dp, & "kg mol^-1") !! triton molar mass type(codata_constant), parameter, public :: TRITON_PROTON_MASS_RATIO = & codata_constant("triton-proton mass ratio", & -real(2.99371703414d0,dp), real(0.00000000015d0,dp), & +2.99371703414_dp, 0.00000000015_dp, & "") !! triton-proton mass ratio type(codata_constant), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & codata_constant("triton relative atomic mass", & -real(3.01550071621d0,dp), real(0.00000000012d0,dp), & +3.01550071621_dp, 0.00000000012_dp, & "") !! triton relative atomic mass type(codata_constant), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & codata_constant("triton to proton mag. mom. ratio", & -real(1.0666399191d0,dp), real(0.0000000021d0,dp), & +1.0666399191_dp, 0.0000000021_dp, & "") !! triton to proton mag. mom. ratio type(codata_constant), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & codata_constant("unified atomic mass unit", & -real(1.66053906660d-27,dp), real(0.00000000050d-27,dp), & +1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! unified atomic mass unit type(codata_constant), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & codata_constant("vacuum electric permittivity", & -real(8.8541878128d-12,dp), real(0.0000000013d-12,dp), & +8.8541878128e-12_dp, 0.0000000013e-12_dp, & "F m^-1") !! vacuum electric permittivity type(codata_constant), parameter, public :: VACUUM_MAG_PERMEABILITY = & codata_constant("vacuum mag. permeability", & -real(1.25663706212d-6,dp), real(0.00000000019d-6,dp), & +1.25663706212e-6_dp, 0.00000000019e-6_dp, & "N A^-2") !! vacuum mag. permeability type(codata_constant), parameter, public :: VON_KLITZING_CONSTANT = & codata_constant("von Klitzing constant", & -real(25812.80745d0,dp), real(0.0d0,dp), & +25812.80745_dp, 0.0_dp, & "ohm") !! von Klitzing constant type(codata_constant), parameter, public :: WEAK_MIXING_ANGLE = & codata_constant("weak mixing angle", & -real(0.22290d0,dp), real(0.00030d0,dp), & +0.22290_dp, 0.00030_dp, & "") !! weak mixing angle type(codata_constant), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & codata_constant("Wien frequency displacement law constant", & -real(5.878925757d10,dp), real(0.0d0,dp), & +5.878925757e10_dp, 0.0_dp, & "Hz K^-1") !! Wien frequency displacement law constant type(codata_constant), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & codata_constant("Wien wavelength displacement law constant", & -real(2.897771955d-3,dp), real(0.0d0,dp), & +2.897771955e-3_dp, 0.0_dp, & "m K") !! Wien wavelength displacement law constant type(codata_constant), parameter, public :: W_TO_Z_MASS_RATIO = & codata_constant("W to Z mass ratio", & -real(0.88153d0,dp), real(0.00017d0,dp), & +0.88153_dp, 0.00017_dp, & "") !! W to Z mass ratio end module stdlib_codata \ No newline at end of file diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp new file mode 100644 index 000000000..cfb98834a --- /dev/null +++ b/src/stdlib_codata_type.fypp @@ -0,0 +1,50 @@ +#!:include "common.fypp" +#:set KINDS = ["sp", "dp"] +#:if WITH_QP +#:set KINDS = KINDS + ["qp"] +#:endif +#:set PROPS = ("value", "uncertainty") +module stdlib_codata_type + !! Codata constant type + use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ + use stdlib_io, only: FMT_REAL_DP + private + + type, public :: codata_constant + !! Derived type for representing a Codata constant. + character(len=64) :: name + real(dp) :: value + real(dp) :: uncertainty + character(len=32) :: unit + contains + procedure :: print + #:for p in PROPS + #:for k in KINDS + procedure :: eval_${p}$_${k}$ + #:endfor + #:endfor + #:for p in PROPS + generic :: eval_${p}$ => #{for k in KINDS[:-1]}#eval_${p}$_${k}$, #{endfor}#eval_${p}$_${KINDS[-1]}$ + #:endfor + end type + +contains + +subroutine print(self) + !! Print out the constant's name, value, uncertainty and unit. + class(codata_constant), intent(in) :: self + print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit +end subroutine + +#:for p in PROPS +#:for k in KINDS +elemental real(${k}$) function eval_${p}$_${k}$(self, mold) result(r) + !! Evaluate the constant ${p}$ for the kind ${k}$ + class(codata_constant), intent(in) :: self + real(${k}$), intent(in) :: mold + r = real(self%${p}$, kind(mold)) +end function +#:endfor +#:endfor + +end module stdlib_codata_type diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp new file mode 100644 index 000000000..c71a9494c --- /dev/null +++ b/src/stdlib_constants.fypp @@ -0,0 +1,66 @@ +#!:include "common.fypp" +module stdlib_constants + !! Constants + use stdlib_kinds, only: sp, dp, qp + use stdlib_codata, only: SPEED_OF_LIGHT_IN_VACUUM, & + VACUUM_ELECTRIC_PERMITTIVITY, & + VACUUM_MAG_PERMEABILITY, & + PLANCK_CONSTANT, & + NEWTONIAN_CONSTANT_OF_GRAVITATION, & + STANDARD_ACCELERATION_OF_GRAVITY, & + ELEMENTARY_CHARGE, & + MOLAR_GAS_CONSTANT, & + FINE_STRUCTURE_CONSTANT, & + AVOGADRO_CONSTANT, & + BOLTZMANN_CONSTANT, & + STEFAN_BOLTZMANN_CONSTANT, & + WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT, & + RYDBERG_CONSTANT, & + ELECTRON_MASS, & + PROTON_MASS, & + NEUTRON_MASS, & + ATOMIC_MASS_CONSTANT + private + + ! mathematical constants + #:if WITH_QP + real(qp), parameter, public :: PI_qp = 3.1415926535897932384626433832795028841971_qp !! PI quadruple precision + #:else + real(dp), parameter, public :: PI_dp = 3.1415926535897932384626433832795028841971_dp !! PI double precision + #:endif + real(sp), parameter, public :: PI_sp = real(pi_dp, sp) !! PI single precision + + + ! Physical constants + real(dp), parameter, public :: c = SPEED_OF_LIGHT_IN_VACUUM%value !! Speed of light in vacuum + real(dp), parameter, public :: speed_of_light = SPEED_OF_LIGHT_IN_VACUUM%value !! Speed of light in vacuum + real(dp), parameter, public :: mu_0 = VACUUM_MAG_PERMEABILITY%value !! vacuum mag. permeability + real(dp), parameter, public :: epsilon_0 = VACUUM_ELECTRIC_PERMITTIVITY%value !! vacuum mag. permeability + real(dp), parameter, public :: h = PLANCK_CONSTANT%value !! Planck constant + real(dp), parameter, public :: Planck = PLANCK_CONSTANT%value !! Planck constant + real(dp), parameter, public :: hbar = PLANCK_CONSTANT%value / PI_dp !! Reduced Planck constant + real(dp), parameter, public :: G = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation + real(dp), parameter, public :: gravition_constant = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation + real(dp), parameter, public :: g2 = STANDARD_ACCELERATION_OF_GRAVITY%value !! Standard acceleration of gravity + real(dp), parameter, public :: e = ELEMENTARY_CHARGE%value !! Elementary charge + real(dp), parameter, public :: R = MOLAR_GAS_CONSTANT%value !! Molar gas constant + real(dp), parameter, public :: gas_constant = MOLAR_GAS_CONSTANT%value !! Molar gas constant + real(dp), parameter, public :: alpha = FINE_STRUCTURE_CONSTANT%value !! Fine structure constant + real(dp), parameter, public :: fine_structure = FINE_STRUCTURE_CONSTANT%value !! Fine structure constant + real(dp), parameter, public :: N_A = AVOGADRO_CONSTANT%value !! Avogadro constant + real(dp), parameter, public :: Avogadro = AVOGADRO_CONSTANT%value !! Avogadro constant + real(dp), parameter, public :: k = BOLTZMANN_CONSTANT%value !! Boltzmann constant + real(dp), parameter, public :: Boltzmann = BOLTZMANN_CONSTANT%value !! Boltzmann constant + real(dp), parameter, public :: sigma = STEFAN_BOLTZMANN_CONSTANT%value !! Stefan-Boltzmann constant + real(dp), parameter, public :: Stefan_Boltzmann = STEFAN_BOLTZMANN_CONSTANT%value !! Stefan-Boltzmann constant + real(dp), parameter, public :: Wien = WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT%value !! Wien wavelength displacement law constant + real(dp), parameter, public :: Rydberg = RYDBERG_CONSTANT%value !! Rydberg constant + real(dp), parameter, public :: m_e = ELECTRON_MASS%value !! Electron mass + real(dp), parameter, public :: m_p = PROTON_MASS%value !! Proton mass + real(dp), parameter, public :: m_n = NEUTRON_MASS%value !! Neutron mass + real(dp), parameter, public :: m_u = ATOMIC_MASS_CONSTANT%value !! Atomic mass constant + real(dp), parameter, public :: u = ATOMIC_MASS_CONSTANT%value !! Atomic mass constant + + ! Additional constants if needed + +end module stdlib_constants From 33261515fe7ef1aaf6a57b3110e71295d04fc0db Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 25 Apr 2024 09:08:26 +0200 Subject: [PATCH 074/144] Uncomment fypp include statement. --- src/stdlib_codata_type.fypp | 2 +- src/stdlib_constants.fypp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index cfb98834a..b2a42f604 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -1,4 +1,4 @@ -#!:include "common.fypp" +#:include "common.fypp" #:set KINDS = ["sp", "dp"] #:if WITH_QP #:set KINDS = KINDS + ["qp"] diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index c71a9494c..5d541f1de 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -1,4 +1,4 @@ -#!:include "common.fypp" +#:include "common.fypp" module stdlib_constants !! Constants use stdlib_kinds, only: sp, dp, qp From 2bddb545423b367228e6646da72d6988110a322a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sat, 27 Apr 2024 06:51:13 +0200 Subject: [PATCH 075/144] Fix typo in gravitation_constant. --- src/stdlib_constants.fypp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index 5d541f1de..e1b21ab57 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -40,7 +40,7 @@ module stdlib_constants real(dp), parameter, public :: Planck = PLANCK_CONSTANT%value !! Planck constant real(dp), parameter, public :: hbar = PLANCK_CONSTANT%value / PI_dp !! Reduced Planck constant real(dp), parameter, public :: G = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation - real(dp), parameter, public :: gravition_constant = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation + real(dp), parameter, public :: gravitation_constant = NEWTONIAN_CONSTANT_OF_GRAVITATION%value !! Newtonian constant of gravitation real(dp), parameter, public :: g2 = STANDARD_ACCELERATION_OF_GRAVITY%value !! Standard acceleration of gravity real(dp), parameter, public :: e = ELEMENTARY_CHARGE%value !! Elementary charge real(dp), parameter, public :: R = MOLAR_GAS_CONSTANT%value !! Molar gas constant From 064828d18de8c196638eb0d3ca33d37538941375 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 29 Apr 2024 13:58:06 +0200 Subject: [PATCH 076/144] Set KINDS as REAL_KINDS from common.fypp --- src/stdlib_codata_type.fypp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index b2a42f604..d3c920030 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -1,8 +1,5 @@ #:include "common.fypp" -#:set KINDS = ["sp", "dp"] -#:if WITH_QP -#:set KINDS = KINDS + ["qp"] -#:endif +#:set KINDS = REAL_KINDS #:set PROPS = ("value", "uncertainty") module stdlib_codata_type !! Codata constant type From 970ee5fd26f375ce76e305b3ade1e41f1116115f Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 29 Apr 2024 13:58:56 +0200 Subject: [PATCH 077/144] Set KINDS as REAL_KINDS from common.fypp. --- src/stdlib_constants.fypp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index e1b21ab57..69d880b6c 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -1,7 +1,8 @@ #:include "common.fypp" +#:set KINDS = REAL_KINDS module stdlib_constants !! Constants - use stdlib_kinds, only: sp, dp, qp + use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_codata, only: SPEED_OF_LIGHT_IN_VACUUM, & VACUUM_ELECTRIC_PERMITTIVITY, & VACUUM_MAG_PERMEABILITY, & From 6d2c9f2b7e104fb9dfb6cb57cc789ee351ad211f Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 29 Apr 2024 13:59:42 +0200 Subject: [PATCH 078/144] Automatic generation of PI with different precisions from KINDS. --- src/stdlib_constants.fypp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index 69d880b6c..f02a81098 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -24,13 +24,9 @@ module stdlib_constants private ! mathematical constants - #:if WITH_QP - real(qp), parameter, public :: PI_qp = 3.1415926535897932384626433832795028841971_qp !! PI quadruple precision - #:else - real(dp), parameter, public :: PI_dp = 3.1415926535897932384626433832795028841971_dp !! PI double precision - #:endif - real(sp), parameter, public :: PI_sp = real(pi_dp, sp) !! PI single precision - + #:for k in KINDS + real(${k}$), parameter, public :: PI_${k}$ = acos(-1.0_${k}$) + #:endfor ! Physical constants real(dp), parameter, public :: c = SPEED_OF_LIGHT_IN_VACUUM%value !! Speed of light in vacuum From a77709b99f5a23d8da3ca8bcb30fac6b7d419cae Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 1 May 2024 00:42:32 +0200 Subject: [PATCH 079/144] Add doc stdlib_constants.md in docs/specs/ --- doc/specs/stdlib_constants.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 doc/specs/stdlib_constants.md diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md new file mode 100644 index 000000000..97a7149ad --- /dev/null +++ b/doc/specs/stdlib_constants.md @@ -0,0 +1,24 @@ +--- +title: constants +--- + +[TOC] + +## Introduction + +`stdlib_constants` module provides mathematical and physical constants. +The latter are the last codata constants (2018) taken from [NIST](http://physics.nist.gov/constants.) + +## Procedures and Methods provided + + +The constants are implemented as double precision parameters for Fortran +The names are quite long and you can alias them for shorter names + + + +## Example + +```fortran +{!example/constants/example_constants.f90!} +``` From 1342ae323968807d19fa4e4b27620231d26f3b36 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 1 May 2024 00:43:02 +0200 Subject: [PATCH 080/144] ENH: Add example_constants.f90 in example/constants/. --- example/constants/example_constants.f90 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 example/constants/example_constants.f90 diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 new file mode 100644 index 000000000..73984f25c --- /dev/null +++ b/example/constants/example_constants.f90 @@ -0,0 +1,13 @@ +program example_constants + use stdlib_constants, only: c, PI=>PI_dp + use stdlib_codata, only: alpha=>ALPHA_PARTICLE_ELECTRON_MASS_RATIO + use stdlib_codata, only: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY + + call alpha%print() + + print *, ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY%eval_value(1.0) + + print *, c + print *, PI + +end program example_constants From e14f83aaf3a5dee9126e882d81fe514664d4739c Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 1 May 2024 00:44:27 +0200 Subject: [PATCH 081/144] Modify doc stdlib_constants.md --- doc/specs/stdlib_constants.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 97a7149ad..aac8c3b83 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -9,14 +9,6 @@ title: constants `stdlib_constants` module provides mathematical and physical constants. The latter are the last codata constants (2018) taken from [NIST](http://physics.nist.gov/constants.) -## Procedures and Methods provided - - -The constants are implemented as double precision parameters for Fortran -The names are quite long and you can alias them for shorter names - - - ## Example ```fortran From 409991dc054f694c44ff6e80d03888d1cfe9eb2c Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sat, 4 May 2024 07:42:36 +0200 Subject: [PATCH 082/144] Add constants documentation in index. --- doc/specs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/specs/index.md b/doc/specs/index.md index b61b16042..de3eb8f38 100644 --- a/doc/specs/index.md +++ b/doc/specs/index.md @@ -14,6 +14,7 @@ This is an index/directory of the specifications (specs) for each new module/fea - [ansi](./stdlib_ansi.html) - Terminal color and style escape sequences - [array](./stdlib_array.html) - Procedures for index manipulation and array handling - [ascii](./stdlib_ascii.html) - Procedures for handling ASCII characters + - [constants](./stdlib_constants.html) - Constants - [bitsets](./stdlib_bitsets.html) - Bitset data types and procedures - [error](./stdlib_error.html) - Catching and handling errors - [hash](./stdlib_hash_procedures.html) - Hashing integer From c536ee5628baf80612fa2fda187f5dfc5bad7319 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 8 May 2024 07:33:50 +0200 Subject: [PATCH 083/144] Add to_real for consistency with stdlib. --- src/stdlib_codata_type.fypp | 42 ++++++++++++++++++++++++------------- src/stdlib_constants.fypp | 2 +- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index d3c920030..f838715bd 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -1,10 +1,10 @@ #:include "common.fypp" #:set KINDS = REAL_KINDS -#:set PROPS = ("value", "uncertainty") module stdlib_codata_type !! Codata constant type use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_io, only: FMT_REAL_DP + use stdlib_optval, only: optval private type, public :: codata_constant @@ -15,15 +15,20 @@ module stdlib_codata_type character(len=32) :: unit contains procedure :: print - #:for p in PROPS #:for k in KINDS - procedure :: eval_${p}$_${k}$ - #:endfor - #:endfor - #:for p in PROPS - generic :: eval_${p}$ => #{for k in KINDS[:-1]}#eval_${p}$_${k}$, #{endfor}#eval_${p}$_${KINDS[-1]}$ + procedure :: to_real_${k}$ #:endfor + generic :: to_real => #{for k in KINDS[:-1]}#to_real_${k}$, #{endfor}#to_real_${KINDS[-1]}$ end type + + interface to_real + !! Get the constant value or uncertainty. + #:for k in KINDS + module procedure to_real_${k}$ + #:endfor + end interface + + public :: to_real contains @@ -33,15 +38,24 @@ subroutine print(self) print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit end subroutine -#:for p in PROPS #:for k in KINDS -elemental real(${k}$) function eval_${p}$_${k}$(self, mold) result(r) - !! Evaluate the constant ${p}$ for the kind ${k}$ - class(codata_constant), intent(in) :: self - real(${k}$), intent(in) :: mold - r = real(self%${p}$, kind(mold)) +elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) result(r) + !! Get the constant value or uncertainty for the kind ${k}$ + + class(codata_constant), intent(in) :: self !! Codata constant + real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface + logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required + !! + logical :: u + + u = optval(uncertainty, .false.) + + if(u .eqv. .false.)then + r = real(self%value, kind(mold)) + else + r = real(self%uncertainty, kind(mold)) + end if end function #:endfor -#:endfor end module stdlib_codata_type diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index f02a81098..484327c5c 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -25,7 +25,7 @@ module stdlib_constants ! mathematical constants #:for k in KINDS - real(${k}$), parameter, public :: PI_${k}$ = acos(-1.0_${k}$) + real(${k}$), parameter, public :: PI_${k}$ = acos(-1.0_${k}$) !! PI #:endfor ! Physical constants From dc51fabe21249c68355e919bca45510eb4d16c9e Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 8 May 2024 07:35:42 +0200 Subject: [PATCH 084/144] Update example and add CMakeLists.txt in constant folder. --- example/CMakeLists.txt | 1 + example/constants/CMakeLists.txt | 1 + example/constants/example_constants.f90 | 22 +++++++++++++++++----- 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 example/constants/CMakeLists.txt diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 3dd43694f..cbef7f075 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -9,6 +9,7 @@ endmacro(ADD_EXAMPLE) add_subdirectory(array) add_subdirectory(ascii) add_subdirectory(bitsets) +add_subdirectory(constants) add_subdirectory(error) add_subdirectory(hashmaps) add_subdirectory(hash_procedures) diff --git a/example/constants/CMakeLists.txt b/example/constants/CMakeLists.txt new file mode 100644 index 000000000..98306777c --- /dev/null +++ b/example/constants/CMakeLists.txt @@ -0,0 +1 @@ +ADD_EXAMPLE(constants) diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 index 73984f25c..e2910be76 100644 --- a/example/constants/example_constants.f90 +++ b/example/constants/example_constants.f90 @@ -1,13 +1,25 @@ program example_constants use stdlib_constants, only: c, PI=>PI_dp use stdlib_codata, only: alpha=>ALPHA_PARTICLE_ELECTRON_MASS_RATIO - use stdlib_codata, only: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY + use stdlib_codata_type, only : to_real + use stdlib_kinds, only: dp, sp - call alpha%print() + ! Use most common physical constants defined as deouble precision reals + print *, "speed of light in vacuum= ", c + + ! Use of mathematical constants such as PI + print *, "PI as double precision real= ", PI + + ! Use codata_constant type for evaluating the value to the desired precision + print *, "Value of alpha... evaluated to double precision=", alpha%to_real(1.0_dp) + print *, "Uncertainty of alpha... evaluated to double precision=", alpha%to_real(1.0_sp, .true.) + print *, "Value of alpha... evaluated to single precision=", alpha%to_real(1.0_sp) - print *, ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY%eval_value(1.0) + ! Convert a codata constant to a real + print *, "Value of the alpha... evaluated to double precision=", to_real(alpha, 1.0_dp) - print *, c - print *, PI + + ! Print out codata constant attributes: name, value, uncertainty and unit + call alpha%print() end program example_constants From dc56497d87f881e0b95231c86a84d34d908d39a7 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Wed, 8 May 2024 07:47:10 +0200 Subject: [PATCH 085/144] Update docs/specs/stdlib_constants.md. --- doc/specs/stdlib_constants.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index aac8c3b83..21fab7237 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -6,8 +6,13 @@ title: constants ## Introduction -`stdlib_constants` module provides mathematical and physical constants. -The latter are the last codata constants (2018) taken from [NIST](http://physics.nist.gov/constants.) + +The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. + +The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant]]. +The lastest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) +The names are quite long and can be aliased with shorter names. + ## Example From a061a11a9e85810f50cfce01db5f2a8b6ecdf083 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:31:29 +0200 Subject: [PATCH 086/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 21fab7237..59f0b4787 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -9,7 +9,7 @@ title: constants The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. -The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant]]. +The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant_type]]. The lastest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) The names are quite long and can be aliased with shorter names. From dba4a5a6c31a078b232de14fb5210d7ceac957ee Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:45:47 +0200 Subject: [PATCH 087/144] Update doc/specs/stdlib_constants.md. Spelling error. Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 59f0b4787..cda4d2741 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -10,7 +10,7 @@ title: constants The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant_type]]. -The lastest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) +The latest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) The names are quite long and can be aliased with shorter names. From 546d54c49dd002169ceac7a8ab57f27c00805a45 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:47:09 +0200 Subject: [PATCH 088/144] Update example/constants/example_constants.f90. Co-authored-by: Jeremie Vandenplas --- example/constants/example_constants.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 index e2910be76..b0fce5ec0 100644 --- a/example/constants/example_constants.f90 +++ b/example/constants/example_constants.f90 @@ -1,5 +1,5 @@ program example_constants - use stdlib_constants, only: c, PI=>PI_dp + use stdlib_constants, only: c, pi=>PI_dp use stdlib_codata, only: alpha=>ALPHA_PARTICLE_ELECTRON_MASS_RATIO use stdlib_codata_type, only : to_real use stdlib_kinds, only: dp, sp From 0427b0174a6ce7e9c29c8fdcd7af4e3cba59291b Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:47:46 +0200 Subject: [PATCH 089/144] Update example/constants/example_constants.f90 Co-authored-by: Jeremie Vandenplas --- example/constants/example_constants.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 index b0fce5ec0..4bcf5e887 100644 --- a/example/constants/example_constants.f90 +++ b/example/constants/example_constants.f90 @@ -8,7 +8,7 @@ program example_constants print *, "speed of light in vacuum= ", c ! Use of mathematical constants such as PI - print *, "PI as double precision real= ", PI + print *, "PI as double precision real= ", pi ! Use codata_constant type for evaluating the value to the desired precision print *, "Value of alpha... evaluated to double precision=", alpha%to_real(1.0_dp) From 4ad9ae892d9f697005faef7b7a4d71f5069a457b Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:48:56 +0200 Subject: [PATCH 090/144] Update src/stdlib_codata_type.fypp. Consistency with DT in stdlib. Co-authored-by: Jeremie Vandenplas --- src/stdlib_codata_type.fypp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index f838715bd..81c9b0ea9 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -7,7 +7,7 @@ module stdlib_codata_type use stdlib_optval, only: optval private - type, public :: codata_constant + type, public :: codata_constant_type !! Derived type for representing a Codata constant. character(len=64) :: name real(dp) :: value From 9090c6bb7f6dd5d2495bd30d174db5a5b804fd0b Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:54:09 +0200 Subject: [PATCH 091/144] Update src/stdlib_codata_type.fypp. Docstring for real function. Co-authored-by: Jeremie Vandenplas --- src/stdlib_codata_type.fypp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 81c9b0ea9..9f8adf146 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -40,7 +40,10 @@ end subroutine #:for k in KINDS elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) result(r) + !! version: experimental + !! !! Get the constant value or uncertainty for the kind ${k}$ + !! [Specification](TO_BE_COMPLETED) class(codata_constant), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface From b5bdc149ae7e99cc728a248ceca2bb524dc04256 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 06:55:44 +0200 Subject: [PATCH 092/144] Update src/stdlib_codata_type.fypp. Docstring for DT. Co-authored-by: Jeremie Vandenplas --- src/stdlib_codata_type.fypp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 9f8adf146..62ae4628f 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -8,7 +8,10 @@ module stdlib_codata_type private type, public :: codata_constant_type - !! Derived type for representing a Codata constant. + !! version: experimental + !! + !! Derived type for representing a Codata constant. + !! [Specification](TOBECOMPLETED) character(len=64) :: name real(dp) :: value real(dp) :: uncertainty From e74ec4104203ac687e7fcaa259012caf1ca615ec Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 9 May 2024 23:49:45 +0200 Subject: [PATCH 093/144] Rename DT tp codata_constant_type for consistency with the stdlib. --- src/stdlib_codata.f90 | 1416 +++++++++++++++++------------------ src/stdlib_codata_type.fypp | 4 +- 2 files changed, 710 insertions(+), 710 deletions(-) diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index 398d5bc9e..5920197bb 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -6,1773 +6,1773 @@ module stdlib_codata integer(int32), parameter, public :: YEAR = 2018 !! Year of release. -type(codata_constant), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & -codata_constant("alpha particle-electron mass ratio", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & +codata_constant_type("alpha particle-electron mass ratio", & 7294.29954142_dp, 0.00000024_dp, & "") !! alpha particle-electron mass ratio -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS = & -codata_constant("alpha particle mass", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS = & +codata_constant_type("alpha particle mass", & 6.6446573357e-27_dp, 0.0000000020e-27_dp, & "kg") !! alpha particle mass -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & -codata_constant("alpha particle mass energy equivalent", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("alpha particle mass energy equivalent", & 5.9719201914e-10_dp, 0.0000000018e-10_dp, & "J") !! alpha particle mass energy equivalent -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("alpha particle mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("alpha particle mass energy equivalent in MeV", & 3727.3794066_dp, 0.0000011_dp, & "MeV") !! alpha particle mass energy equivalent in MeV -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & -codata_constant("alpha particle mass in u", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & +codata_constant_type("alpha particle mass in u", & 4.001506179127_dp, 0.000000000063_dp, & "u") !! alpha particle mass in u -type(codata_constant), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & -codata_constant("alpha particle molar mass", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & +codata_constant_type("alpha particle molar mass", & 4.0015061777e-3_dp, 0.0000000012e-3_dp, & "kg mol^-1") !! alpha particle molar mass -type(codata_constant), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & -codata_constant("alpha particle-proton mass ratio", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & +codata_constant_type("alpha particle-proton mass ratio", & 3.97259969009_dp, 0.00000000022_dp, & "") !! alpha particle-proton mass ratio -type(codata_constant), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & -codata_constant("alpha particle relative atomic mass", & +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & +codata_constant_type("alpha particle relative atomic mass", & 4.001506179127_dp, 0.000000000063_dp, & "") !! alpha particle relative atomic mass -type(codata_constant), parameter, public :: ANGSTROM_STAR = & -codata_constant("Angstrom star", & +type(codata_constant_type), parameter, public :: ANGSTROM_STAR = & +codata_constant_type("Angstrom star", & 1.00001495e-10_dp, 0.00000090e-10_dp, & "m") !! Angstrom star -type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT = & -codata_constant("atomic mass constant", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT = & +codata_constant_type("atomic mass constant", & 1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass constant -type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & -codata_constant("atomic mass constant energy equivalent", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & +codata_constant_type("atomic mass constant energy equivalent", & 1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass constant energy equivalent -type(codata_constant), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("atomic mass constant energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("atomic mass constant energy equivalent in MeV", & 931.49410242_dp, 0.00000028_dp, & "MeV") !! atomic mass constant energy equivalent in MeV -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("atomic mass unit-electron volt relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("atomic mass unit-electron volt relationship", & 9.3149410242e8_dp, 0.0000000028e8_dp, & "eV") !! atomic mass unit-electron volt relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & -codata_constant("atomic mass unit-hartree relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & +codata_constant_type("atomic mass unit-hartree relationship", & 3.4231776874e7_dp, 0.0000000010e7_dp, & "E_h") !! atomic mass unit-hartree relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & -codata_constant("atomic mass unit-hertz relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & +codata_constant_type("atomic mass unit-hertz relationship", & 2.25234271871e23_dp, 0.00000000068e23_dp, & "Hz") !! atomic mass unit-hertz relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & -codata_constant("atomic mass unit-inverse meter relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("atomic mass unit-inverse meter relationship", & 7.5130066104e14_dp, 0.0000000023e14_dp, & "m^-1") !! atomic mass unit-inverse meter relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & -codata_constant("atomic mass unit-joule relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & +codata_constant_type("atomic mass unit-joule relationship", & 1.49241808560e-10_dp, 0.00000000045e-10_dp, & "J") !! atomic mass unit-joule relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & -codata_constant("atomic mass unit-kelvin relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & +codata_constant_type("atomic mass unit-kelvin relationship", & 1.08095401916e13_dp, 0.00000000033e13_dp, & "K") !! atomic mass unit-kelvin relationship -type(codata_constant), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & -codata_constant("atomic mass unit-kilogram relationship", & +type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & +codata_constant_type("atomic mass unit-kilogram relationship", & 1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! atomic mass unit-kilogram relationship -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & -codata_constant("atomic unit of 1st hyperpolarizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & +codata_constant_type("atomic unit of 1st hyperpolarizability", & 3.2063613061e-53_dp, 0.0000000015e-53_dp, & "C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & -codata_constant("atomic unit of 2nd hyperpolarizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & +codata_constant_type("atomic unit of 2nd hyperpolarizability", & 6.2353799905e-65_dp, 0.0000000038e-65_dp, & "C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ACTION = & -codata_constant("atomic unit of action", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ACTION = & +codata_constant_type("atomic unit of action", & 1.054571817e-34_dp, 0.0_dp, & "J s") !! atomic unit of action -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & -codata_constant("atomic unit of charge", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CHARGE = & +codata_constant_type("atomic unit of charge", & 1.602176634e-19_dp, 0.0_dp, & "C") !! atomic unit of charge -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & -codata_constant("atomic unit of charge density", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & +codata_constant_type("atomic unit of charge density", & 1.08120238457e12_dp, 0.00000000049e12_dp, & "C m^-3") !! atomic unit of charge density -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & -codata_constant("atomic unit of current", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & +codata_constant_type("atomic unit of current", & 6.623618237510e-3_dp, 0.000000000013e-3_dp, & "A") !! atomic unit of current -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & -codata_constant("atomic unit of electric dipole mom.", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & +codata_constant_type("atomic unit of electric dipole mom.", & 8.4783536255e-30_dp, 0.0000000013e-30_dp, & "C m") !! atomic unit of electric dipole mom. -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & -codata_constant("atomic unit of electric field", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & +codata_constant_type("atomic unit of electric field", & 5.14220674763e11_dp, 0.00000000078e11_dp, & "V m^-1") !! atomic unit of electric field -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & -codata_constant("atomic unit of electric field gradient", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & +codata_constant_type("atomic unit of electric field gradient", & 9.7173624292e21_dp, 0.0000000029e21_dp, & "V m^-2") !! atomic unit of electric field gradient -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & -codata_constant("atomic unit of electric polarizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & +codata_constant_type("atomic unit of electric polarizability", & 1.64877727436e-41_dp, 0.00000000050e-41_dp, & "C^2 m^2 J^-1") !! atomic unit of electric polarizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & -codata_constant("atomic unit of electric potential", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & +codata_constant_type("atomic unit of electric potential", & 27.211386245988_dp, 0.000000000053_dp, & "V") !! atomic unit of electric potential -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & -codata_constant("atomic unit of electric quadrupole mom.", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & +codata_constant_type("atomic unit of electric quadrupole mom.", & 4.4865515246e-40_dp, 0.0000000014e-40_dp, & "C m^2") !! atomic unit of electric quadrupole mom. -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & -codata_constant("atomic unit of energy", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & +codata_constant_type("atomic unit of energy", & 4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! atomic unit of energy -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_FORCE = & -codata_constant("atomic unit of force", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_FORCE = & +codata_constant_type("atomic unit of force", & 8.2387234983e-8_dp, 0.0000000012e-8_dp, & "N") !! atomic unit of force -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & -codata_constant("atomic unit of length", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & +codata_constant_type("atomic unit of length", & 5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! atomic unit of length -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & -codata_constant("atomic unit of mag. dipole mom.", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & +codata_constant_type("atomic unit of mag. dipole mom.", & 1.85480201566e-23_dp, 0.00000000056e-23_dp, & "J T^-1") !! atomic unit of mag. dipole mom. -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & -codata_constant("atomic unit of mag. flux density", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & +codata_constant_type("atomic unit of mag. flux density", & 2.35051756758e5_dp, 0.00000000071e5_dp, & "T") !! atomic unit of mag. flux density -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & -codata_constant("atomic unit of magnetizability", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & +codata_constant_type("atomic unit of magnetizability", & 7.8910366008e-29_dp, 0.0000000048e-29_dp, & "J T^-2") !! atomic unit of magnetizability -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MASS = & -codata_constant("atomic unit of mass", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MASS = & +codata_constant_type("atomic unit of mass", & 9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! atomic unit of mass -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & -codata_constant("atomic unit of momentum", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & +codata_constant_type("atomic unit of momentum", & 1.99285191410e-24_dp, 0.00000000030e-24_dp, & "kg m s^-1") !! atomic unit of momentum -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & -codata_constant("atomic unit of permittivity", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & +codata_constant_type("atomic unit of permittivity", & 1.11265005545e-10_dp, 0.00000000017e-10_dp, & "F m^-1") !! atomic unit of permittivity -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_TIME = & -codata_constant("atomic unit of time", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_TIME = & +codata_constant_type("atomic unit of time", & 2.4188843265857e-17_dp, 0.0000000000047e-17_dp, & "s") !! atomic unit of time -type(codata_constant), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & -codata_constant("atomic unit of velocity", & +type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & +codata_constant_type("atomic unit of velocity", & 2.18769126364e6_dp, 0.00000000033e6_dp, & "m s^-1") !! atomic unit of velocity -type(codata_constant), parameter, public :: AVOGADRO_CONSTANT = & -codata_constant("Avogadro constant", & +type(codata_constant_type), parameter, public :: AVOGADRO_CONSTANT = & +codata_constant_type("Avogadro constant", & 6.02214076e23_dp, 0.0_dp, & "mol^-1") !! Avogadro constant -type(codata_constant), parameter, public :: BOHR_MAGNETON = & -codata_constant("Bohr magneton", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON = & +codata_constant_type("Bohr magneton", & 9.2740100783e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! Bohr magneton -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_EV_T = & -codata_constant("Bohr magneton in eV/T", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_EV_T = & +codata_constant_type("Bohr magneton in eV/T", & 5.7883818060e-5_dp, 0.0000000017e-5_dp, & "eV T^-1") !! Bohr magneton in eV/T -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & -codata_constant("Bohr magneton in Hz/T", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & +codata_constant_type("Bohr magneton in Hz/T", & 1.39962449361e10_dp, 0.00000000042e10_dp, & "Hz T^-1") !! Bohr magneton in Hz/T -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & -codata_constant("Bohr magneton in inverse meter per tesla", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant_type("Bohr magneton in inverse meter per tesla", & 46.686447783_dp, 0.000000014_dp, & "m^-1 T^-1") !! Bohr magneton in inverse meter per tesla -type(codata_constant), parameter, public :: BOHR_MAGNETON_IN_K_T = & -codata_constant("Bohr magneton in K/T", & +type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_K_T = & +codata_constant_type("Bohr magneton in K/T", & 0.67171381563_dp, 0.00000000020_dp, & "K T^-1") !! Bohr magneton in K/T -type(codata_constant), parameter, public :: BOHR_RADIUS = & -codata_constant("Bohr radius", & +type(codata_constant_type), parameter, public :: BOHR_RADIUS = & +codata_constant_type("Bohr radius", & 5.29177210903e-11_dp, 0.00000000080e-11_dp, & "m") !! Bohr radius -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT = & -codata_constant("Boltzmann constant", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT = & +codata_constant_type("Boltzmann constant", & 1.380649e-23_dp, 0.0_dp, & "J K^-1") !! Boltzmann constant -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & -codata_constant("Boltzmann constant in eV/K", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT_IN_EV_K = & +codata_constant_type("Boltzmann constant in eV/K", & 8.617333262e-5_dp, 0.0_dp, & "eV K^-1") !! Boltzmann constant in eV/K -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & -codata_constant("Boltzmann constant in Hz/K", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT_IN_HZ_K = & +codata_constant_type("Boltzmann constant in Hz/K", & 2.083661912e10_dp, 0.0_dp, & "Hz K^-1") !! Boltzmann constant in Hz/K -type(codata_constant), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & -codata_constant("Boltzmann constant in inverse meter per kelvin", & +type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT_IN_INVERSE_METER_PER_KELVIN = & +codata_constant_type("Boltzmann constant in inverse meter per kelvin", & 69.50348004_dp, 0.0_dp, & "m^-1 K^-1") !! Boltzmann constant in inverse meter per kelvin -type(codata_constant), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & -codata_constant("characteristic impedance of vacuum", & +type(codata_constant_type), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & +codata_constant_type("characteristic impedance of vacuum", & 376.730313668_dp, 0.000000057_dp, & "ohm") !! characteristic impedance of vacuum -type(codata_constant), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & -codata_constant("classical electron radius", & +type(codata_constant_type), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & +codata_constant_type("classical electron radius", & 2.8179403262e-15_dp, 0.0000000013e-15_dp, & "m") !! classical electron radius -type(codata_constant), parameter, public :: COMPTON_WAVELENGTH = & -codata_constant("Compton wavelength", & +type(codata_constant_type), parameter, public :: COMPTON_WAVELENGTH = & +codata_constant_type("Compton wavelength", & 2.42631023867e-12_dp, 0.00000000073e-12_dp, & "m") !! Compton wavelength -type(codata_constant), parameter, public :: CONDUCTANCE_QUANTUM = & -codata_constant("conductance quantum", & +type(codata_constant_type), parameter, public :: CONDUCTANCE_QUANTUM = & +codata_constant_type("conductance quantum", & 7.748091729e-5_dp, 0.0_dp, & "S") !! conductance quantum -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & -codata_constant("conventional value of ampere-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_AMPERE_90 = & +codata_constant_type("conventional value of ampere-90", & 1.00000008887_dp, 0.0_dp, & "A") !! conventional value of ampere-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & -codata_constant("conventional value of coulomb-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_COULOMB_90 = & +codata_constant_type("conventional value of coulomb-90", & 1.00000008887_dp, 0.0_dp, & "C") !! conventional value of coulomb-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & -codata_constant("conventional value of farad-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_FARAD_90 = & +codata_constant_type("conventional value of farad-90", & 0.99999998220_dp, 0.0_dp, & "F") !! conventional value of farad-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & -codata_constant("conventional value of henry-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_HENRY_90 = & +codata_constant_type("conventional value of henry-90", & 1.00000001779_dp, 0.0_dp, & "H") !! conventional value of henry-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & -codata_constant("conventional value of Josephson constant", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_JOSEPHSON_CONSTANT = & +codata_constant_type("conventional value of Josephson constant", & 483597.9e9_dp, 0.0_dp, & "Hz V^-1") !! conventional value of Josephson constant -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & -codata_constant("conventional value of ohm-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_OHM_90 = & +codata_constant_type("conventional value of ohm-90", & 1.00000001779_dp, 0.0_dp, & "ohm") !! conventional value of ohm-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & -codata_constant("conventional value of volt-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_VOLT_90 = & +codata_constant_type("conventional value of volt-90", & 1.00000010666_dp, 0.0_dp, & "V") !! conventional value of volt-90 -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & -codata_constant("conventional value of von Klitzing constant", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_VON_KLITZING_CONSTANT = & +codata_constant_type("conventional value of von Klitzing constant", & 25812.807_dp, 0.0_dp, & "ohm") !! conventional value of von Klitzing constant -type(codata_constant), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & -codata_constant("conventional value of watt-90", & +type(codata_constant_type), parameter, public :: CONVENTIONAL_VALUE_OF_WATT_90 = & +codata_constant_type("conventional value of watt-90", & 1.00000019553_dp, 0.0_dp, & "W") !! conventional value of watt-90 -type(codata_constant), parameter, public :: COPPER_X_UNIT = & -codata_constant("Copper x unit", & +type(codata_constant_type), parameter, public :: COPPER_X_UNIT = & +codata_constant_type("Copper x unit", & 1.00207697e-13_dp, 0.00000028e-13_dp, & "m") !! Copper x unit -type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & -codata_constant("deuteron-electron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & +codata_constant_type("deuteron-electron mag. mom. ratio", & -4.664345551e-4_dp, 0.000000012e-4_dp, & "") !! deuteron-electron mag. mom. ratio -type(codata_constant), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & -codata_constant("deuteron-electron mass ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & +codata_constant_type("deuteron-electron mass ratio", & 3670.48296788_dp, 0.00000013_dp, & "") !! deuteron-electron mass ratio -type(codata_constant), parameter, public :: DEUTERON_G_FACTOR = & -codata_constant("deuteron g factor", & +type(codata_constant_type), parameter, public :: DEUTERON_G_FACTOR = & +codata_constant_type("deuteron g factor", & 0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron g factor -type(codata_constant), parameter, public :: DEUTERON_MAG_MOM = & -codata_constant("deuteron mag. mom.", & +type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM = & +codata_constant_type("deuteron mag. mom.", & 4.330735094e-27_dp, 0.000000011e-27_dp, & "J T^-1") !! deuteron mag. mom. -type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("deuteron mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("deuteron mag. mom. to Bohr magneton ratio", & 4.669754570e-4_dp, 0.000000012e-4_dp, & "") !! deuteron mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("deuteron mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("deuteron mag. mom. to nuclear magneton ratio", & 0.8574382338_dp, 0.0000000022_dp, & "") !! deuteron mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: DEUTERON_MASS = & -codata_constant("deuteron mass", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS = & +codata_constant_type("deuteron mass", & 3.3435837724e-27_dp, 0.0000000010e-27_dp, & "kg") !! deuteron mass -type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & -codata_constant("deuteron mass energy equivalent", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("deuteron mass energy equivalent", & 3.00506323102e-10_dp, 0.00000000091e-10_dp, & "J") !! deuteron mass energy equivalent -type(codata_constant), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("deuteron mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("deuteron mass energy equivalent in MeV", & 1875.61294257_dp, 0.00000057_dp, & "MeV") !! deuteron mass energy equivalent in MeV -type(codata_constant), parameter, public :: DEUTERON_MASS_IN_U = & -codata_constant("deuteron mass in u", & +type(codata_constant_type), parameter, public :: DEUTERON_MASS_IN_U = & +codata_constant_type("deuteron mass in u", & 2.013553212745_dp, 0.000000000040_dp, & "u") !! deuteron mass in u -type(codata_constant), parameter, public :: DEUTERON_MOLAR_MASS = & -codata_constant("deuteron molar mass", & +type(codata_constant_type), parameter, public :: DEUTERON_MOLAR_MASS = & +codata_constant_type("deuteron molar mass", & 2.01355321205e-3_dp, 0.00000000061e-3_dp, & "kg mol^-1") !! deuteron molar mass -type(codata_constant), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & -codata_constant("deuteron-neutron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & +codata_constant_type("deuteron-neutron mag. mom. ratio", & -0.44820653_dp, 0.00000011_dp, & "") !! deuteron-neutron mag. mom. ratio -type(codata_constant), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & -codata_constant("deuteron-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("deuteron-proton mag. mom. ratio", & 0.30701220939_dp, 0.00000000079_dp, & "") !! deuteron-proton mag. mom. ratio -type(codata_constant), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & -codata_constant("deuteron-proton mass ratio", & +type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & +codata_constant_type("deuteron-proton mass ratio", & 1.99900750139_dp, 0.00000000011_dp, & "") !! deuteron-proton mass ratio -type(codata_constant), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & -codata_constant("deuteron relative atomic mass", & +type(codata_constant_type), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("deuteron relative atomic mass", & 2.013553212745_dp, 0.000000000040_dp, & "") !! deuteron relative atomic mass -type(codata_constant), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & -codata_constant("deuteron rms charge radius", & +type(codata_constant_type), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & +codata_constant_type("deuteron rms charge radius", & 2.12799e-15_dp, 0.00074e-15_dp, & "m") !! deuteron rms charge radius -type(codata_constant), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & -codata_constant("electron charge to mass quotient", & +type(codata_constant_type), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant_type("electron charge to mass quotient", & -1.75882001076e11_dp, 0.00000000053e11_dp, & "C kg^-1") !! electron charge to mass quotient -type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & -codata_constant("electron-deuteron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & +codata_constant_type("electron-deuteron mag. mom. ratio", & -2143.9234915_dp, 0.0000056_dp, & "") !! electron-deuteron mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & -codata_constant("electron-deuteron mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & +codata_constant_type("electron-deuteron mass ratio", & 2.724437107462e-4_dp, 0.000000000096e-4_dp, & "") !! electron-deuteron mass ratio -type(codata_constant), parameter, public :: ELECTRON_G_FACTOR = & -codata_constant("electron g factor", & +type(codata_constant_type), parameter, public :: ELECTRON_G_FACTOR = & +codata_constant_type("electron g factor", & -2.00231930436256_dp, 0.00000000000035_dp, & "") !! electron g factor -type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO = & -codata_constant("electron gyromag. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO = & +codata_constant_type("electron gyromag. ratio", & 1.76085963023e11_dp, 0.00000000053e11_dp, & "s^-1 T^-1") !! electron gyromag. ratio -type(codata_constant), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("electron gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("electron gyromag. ratio in MHz/T", & 28024.9514242_dp, 0.0000085_dp, & "MHz T^-1") !! electron gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: ELECTRON_HELION_MASS_RATIO = & -codata_constant("electron-helion mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_HELION_MASS_RATIO = & +codata_constant_type("electron-helion mass ratio", & 1.819543074573e-4_dp, 0.000000000079e-4_dp, & "") !! electron-helion mass ratio -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM = & -codata_constant("electron mag. mom.", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM = & +codata_constant_type("electron mag. mom.", & -9.2847647043e-24_dp, 0.0000000028e-24_dp, & "J T^-1") !! electron mag. mom. -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & -codata_constant("electron mag. mom. anomaly", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & +codata_constant_type("electron mag. mom. anomaly", & 1.15965218128e-3_dp, 0.00000000018e-3_dp, & "") !! electron mag. mom. anomaly -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("electron mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("electron mag. mom. to Bohr magneton ratio", & -1.00115965218128_dp, 0.00000000000018_dp, & "") !! electron mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("electron mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("electron mag. mom. to nuclear magneton ratio", & -1838.28197188_dp, 0.00000011_dp, & "") !! electron mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: ELECTRON_MASS = & -codata_constant("electron mass", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS = & +codata_constant_type("electron mass", & 9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! electron mass -type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & -codata_constant("electron mass energy equivalent", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("electron mass energy equivalent", & 8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! electron mass energy equivalent -type(codata_constant), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("electron mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("electron mass energy equivalent in MeV", & 0.51099895000_dp, 0.00000000015_dp, & "MeV") !! electron mass energy equivalent in MeV -type(codata_constant), parameter, public :: ELECTRON_MASS_IN_U = & -codata_constant("electron mass in u", & +type(codata_constant_type), parameter, public :: ELECTRON_MASS_IN_U = & +codata_constant_type("electron mass in u", & 5.48579909065e-4_dp, 0.00000000016e-4_dp, & "u") !! electron mass in u -type(codata_constant), parameter, public :: ELECTRON_MOLAR_MASS = & -codata_constant("electron molar mass", & +type(codata_constant_type), parameter, public :: ELECTRON_MOLAR_MASS = & +codata_constant_type("electron molar mass", & 5.4857990888e-7_dp, 0.0000000017e-7_dp, & "kg mol^-1") !! electron molar mass -type(codata_constant), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & -codata_constant("electron-muon mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & +codata_constant_type("electron-muon mag. mom. ratio", & 206.7669883_dp, 0.0000046_dp, & "") !! electron-muon mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_MUON_MASS_RATIO = & -codata_constant("electron-muon mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_MUON_MASS_RATIO = & +codata_constant_type("electron-muon mass ratio", & 4.83633169e-3_dp, 0.00000011e-3_dp, & "") !! electron-muon mass ratio -type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & -codata_constant("electron-neutron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & +codata_constant_type("electron-neutron mag. mom. ratio", & 960.92050_dp, 0.00023_dp, & "") !! electron-neutron mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & -codata_constant("electron-neutron mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & +codata_constant_type("electron-neutron mass ratio", & 5.4386734424e-4_dp, 0.0000000026e-4_dp, & "") !! electron-neutron mass ratio -type(codata_constant), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & -codata_constant("electron-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("electron-proton mag. mom. ratio", & -658.21068789_dp, 0.00000020_dp, & "") !! electron-proton mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & -codata_constant("electron-proton mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & +codata_constant_type("electron-proton mass ratio", & 5.44617021487e-4_dp, 0.00000000033e-4_dp, & "") !! electron-proton mass ratio -type(codata_constant), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & -codata_constant("electron relative atomic mass", & +type(codata_constant_type), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("electron relative atomic mass", & 5.48579909065e-4_dp, 0.00000000016e-4_dp, & "") !! electron relative atomic mass -type(codata_constant), parameter, public :: ELECTRON_TAU_MASS_RATIO = & -codata_constant("electron-tau mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TAU_MASS_RATIO = & +codata_constant_type("electron-tau mass ratio", & 2.87585e-4_dp, 0.00019e-4_dp, & "") !! electron-tau mass ratio -type(codata_constant), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & -codata_constant("electron to alpha particle mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & +codata_constant_type("electron to alpha particle mass ratio", & 1.370933554787e-4_dp, 0.000000000045e-4_dp, & "") !! electron to alpha particle mass ratio -type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & -codata_constant("electron to shielded helion mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & +codata_constant_type("electron to shielded helion mag. mom. ratio", & 864.058257_dp, 0.000010_dp, & "") !! electron to shielded helion mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & -codata_constant("electron to shielded proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant_type("electron to shielded proton mag. mom. ratio", & -658.2275971_dp, 0.0000072_dp, & "") !! electron to shielded proton mag. mom. ratio -type(codata_constant), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & -codata_constant("electron-triton mass ratio", & +type(codata_constant_type), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & +codata_constant_type("electron-triton mass ratio", & 1.819200062251e-4_dp, 0.000000000090e-4_dp, & "") !! electron-triton mass ratio -type(codata_constant), parameter, public :: ELECTRON_VOLT = & -codata_constant("electron volt", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT = & +codata_constant_type("electron volt", & 1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt -type(codata_constant), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("electron volt-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("electron volt-atomic mass unit relationship", & 1.07354410233e-9_dp, 0.00000000032e-9_dp, & "u") !! electron volt-atomic mass unit relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & -codata_constant("electron volt-hartree relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & +codata_constant_type("electron volt-hartree relationship", & 3.6749322175655e-2_dp, 0.0000000000071e-2_dp, & "E_h") !! electron volt-hartree relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & -codata_constant("electron volt-hertz relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & +codata_constant_type("electron volt-hertz relationship", & 2.417989242e14_dp, 0.0_dp, & "Hz") !! electron volt-hertz relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & -codata_constant("electron volt-inverse meter relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("electron volt-inverse meter relationship", & 8.065543937e5_dp, 0.0_dp, & "m^-1") !! electron volt-inverse meter relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & -codata_constant("electron volt-joule relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_JOULE_RELATIONSHIP = & +codata_constant_type("electron volt-joule relationship", & 1.602176634e-19_dp, 0.0_dp, & "J") !! electron volt-joule relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & -codata_constant("electron volt-kelvin relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_KELVIN_RELATIONSHIP = & +codata_constant_type("electron volt-kelvin relationship", & 1.160451812e4_dp, 0.0_dp, & "K") !! electron volt-kelvin relationship -type(codata_constant), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & -codata_constant("electron volt-kilogram relationship", & +type(codata_constant_type), parameter, public :: ELECTRON_VOLT_KILOGRAM_RELATIONSHIP = & +codata_constant_type("electron volt-kilogram relationship", & 1.782661921e-36_dp, 0.0_dp, & "kg") !! electron volt-kilogram relationship -type(codata_constant), parameter, public :: ELEMENTARY_CHARGE = & -codata_constant("elementary charge", & +type(codata_constant_type), parameter, public :: ELEMENTARY_CHARGE = & +codata_constant_type("elementary charge", & 1.602176634e-19_dp, 0.0_dp, & "C") !! elementary charge -type(codata_constant), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & -codata_constant("elementary charge over h-bar", & +type(codata_constant_type), parameter, public :: ELEMENTARY_CHARGE_OVER_H_BAR = & +codata_constant_type("elementary charge over h-bar", & 1.519267447e15_dp, 0.0_dp, & "A J^-1") !! elementary charge over h-bar -type(codata_constant), parameter, public :: FARADAY_CONSTANT = & -codata_constant("Faraday constant", & +type(codata_constant_type), parameter, public :: FARADAY_CONSTANT = & +codata_constant_type("Faraday constant", & 96485.33212_dp, 0.0_dp, & "C mol^-1") !! Faraday constant -type(codata_constant), parameter, public :: FERMI_COUPLING_CONSTANT = & -codata_constant("Fermi coupling constant", & +type(codata_constant_type), parameter, public :: FERMI_COUPLING_CONSTANT = & +codata_constant_type("Fermi coupling constant", & 1.1663787e-5_dp, 0.0000006e-5_dp, & "GeV^-2") !! Fermi coupling constant -type(codata_constant), parameter, public :: FINE_STRUCTURE_CONSTANT = & -codata_constant("fine-structure constant", & +type(codata_constant_type), parameter, public :: FINE_STRUCTURE_CONSTANT = & +codata_constant_type("fine-structure constant", & 7.2973525693e-3_dp, 0.0000000011e-3_dp, & "") !! fine-structure constant -type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT = & -codata_constant("first radiation constant", & +type(codata_constant_type), parameter, public :: FIRST_RADIATION_CONSTANT = & +codata_constant_type("first radiation constant", & 3.741771852e-16_dp, 0.0_dp, & "W m^2") !! first radiation constant -type(codata_constant), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & -codata_constant("first radiation constant for spectral radiance", & +type(codata_constant_type), parameter, public :: FIRST_RADIATION_CONSTANT_FOR_SPECTRAL_RADIANCE = & +codata_constant_type("first radiation constant for spectral radiance", & 1.191042972e-16_dp, 0.0_dp, & "W m^2 sr^-1") !! first radiation constant for spectral radiance -type(codata_constant), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("hartree-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("hartree-atomic mass unit relationship", & 2.92126232205e-8_dp, 0.00000000088e-8_dp, & "u") !! hartree-atomic mass unit relationship -type(codata_constant), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("hartree-electron volt relationship", & +type(codata_constant_type), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("hartree-electron volt relationship", & 27.211386245988_dp, 0.000000000053_dp, & "eV") !! hartree-electron volt relationship -type(codata_constant), parameter, public :: HARTREE_ENERGY = & -codata_constant("Hartree energy", & +type(codata_constant_type), parameter, public :: HARTREE_ENERGY = & +codata_constant_type("Hartree energy", & 4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! Hartree energy -type(codata_constant), parameter, public :: HARTREE_ENERGY_IN_EV = & -codata_constant("Hartree energy in eV", & +type(codata_constant_type), parameter, public :: HARTREE_ENERGY_IN_EV = & +codata_constant_type("Hartree energy in eV", & 27.211386245988_dp, 0.000000000053_dp, & "eV") !! Hartree energy in eV -type(codata_constant), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & -codata_constant("hartree-hertz relationship", & +type(codata_constant_type), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & +codata_constant_type("hartree-hertz relationship", & 6.579683920502e15_dp, 0.000000000013e15_dp, & "Hz") !! hartree-hertz relationship -type(codata_constant), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & -codata_constant("hartree-inverse meter relationship", & +type(codata_constant_type), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("hartree-inverse meter relationship", & 2.1947463136320e7_dp, 0.0000000000043e7_dp, & "m^-1") !! hartree-inverse meter relationship -type(codata_constant), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & -codata_constant("hartree-joule relationship", & +type(codata_constant_type), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & +codata_constant_type("hartree-joule relationship", & 4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & "J") !! hartree-joule relationship -type(codata_constant), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & -codata_constant("hartree-kelvin relationship", & +type(codata_constant_type), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & +codata_constant_type("hartree-kelvin relationship", & 3.1577502480407e5_dp, 0.0000000000061e5_dp, & "K") !! hartree-kelvin relationship -type(codata_constant), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & -codata_constant("hartree-kilogram relationship", & +type(codata_constant_type), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & +codata_constant_type("hartree-kilogram relationship", & 4.8508702095432e-35_dp, 0.0000000000094e-35_dp, & "kg") !! hartree-kilogram relationship -type(codata_constant), parameter, public :: HELION_ELECTRON_MASS_RATIO = & -codata_constant("helion-electron mass ratio", & +type(codata_constant_type), parameter, public :: HELION_ELECTRON_MASS_RATIO = & +codata_constant_type("helion-electron mass ratio", & 5495.88528007_dp, 0.00000024_dp, & "") !! helion-electron mass ratio -type(codata_constant), parameter, public :: HELION_G_FACTOR = & -codata_constant("helion g factor", & +type(codata_constant_type), parameter, public :: HELION_G_FACTOR = & +codata_constant_type("helion g factor", & -4.255250615_dp, 0.000000050_dp, & "") !! helion g factor -type(codata_constant), parameter, public :: HELION_MAG_MOM = & -codata_constant("helion mag. mom.", & +type(codata_constant_type), parameter, public :: HELION_MAG_MOM = & +codata_constant_type("helion mag. mom.", & -1.074617532e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! helion mag. mom. -type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("helion mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("helion mag. mom. to Bohr magneton ratio", & -1.158740958e-3_dp, 0.000000014e-3_dp, & "") !! helion mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("helion mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("helion mag. mom. to nuclear magneton ratio", & -2.127625307_dp, 0.000000025_dp, & "") !! helion mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: HELION_MASS = & -codata_constant("helion mass", & +type(codata_constant_type), parameter, public :: HELION_MASS = & +codata_constant_type("helion mass", & 5.0064127796e-27_dp, 0.0000000015e-27_dp, & "kg") !! helion mass -type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & -codata_constant("helion mass energy equivalent", & +type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("helion mass energy equivalent", & 4.4995394125e-10_dp, 0.0000000014e-10_dp, & "J") !! helion mass energy equivalent -type(codata_constant), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("helion mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("helion mass energy equivalent in MeV", & 2808.39160743_dp, 0.00000085_dp, & "MeV") !! helion mass energy equivalent in MeV -type(codata_constant), parameter, public :: HELION_MASS_IN_U = & -codata_constant("helion mass in u", & +type(codata_constant_type), parameter, public :: HELION_MASS_IN_U = & +codata_constant_type("helion mass in u", & 3.014932247175_dp, 0.000000000097_dp, & "u") !! helion mass in u -type(codata_constant), parameter, public :: HELION_MOLAR_MASS = & -codata_constant("helion molar mass", & +type(codata_constant_type), parameter, public :: HELION_MOLAR_MASS = & +codata_constant_type("helion molar mass", & 3.01493224613e-3_dp, 0.00000000091e-3_dp, & "kg mol^-1") !! helion molar mass -type(codata_constant), parameter, public :: HELION_PROTON_MASS_RATIO = & -codata_constant("helion-proton mass ratio", & +type(codata_constant_type), parameter, public :: HELION_PROTON_MASS_RATIO = & +codata_constant_type("helion-proton mass ratio", & 2.99315267167_dp, 0.00000000013_dp, & "") !! helion-proton mass ratio -type(codata_constant), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & -codata_constant("helion relative atomic mass", & +type(codata_constant_type), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & +codata_constant_type("helion relative atomic mass", & 3.014932247175_dp, 0.000000000097_dp, & "") !! helion relative atomic mass -type(codata_constant), parameter, public :: HELION_SHIELDING_SHIFT = & -codata_constant("helion shielding shift", & +type(codata_constant_type), parameter, public :: HELION_SHIELDING_SHIFT = & +codata_constant_type("helion shielding shift", & 5.996743e-5_dp, 0.000010e-5_dp, & "") !! helion shielding shift -type(codata_constant), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("hertz-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("hertz-atomic mass unit relationship", & 4.4398216652e-24_dp, 0.0000000013e-24_dp, & "u") !! hertz-atomic mass unit relationship -type(codata_constant), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("hertz-electron volt relationship", & +type(codata_constant_type), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("hertz-electron volt relationship", & 4.135667696e-15_dp, 0.0_dp, & "eV") !! hertz-electron volt relationship -type(codata_constant), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & -codata_constant("hertz-hartree relationship", & +type(codata_constant_type), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & +codata_constant_type("hertz-hartree relationship", & 1.5198298460570e-16_dp, 0.0000000000029e-16_dp, & "E_h") !! hertz-hartree relationship -type(codata_constant), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & -codata_constant("hertz-inverse meter relationship", & +type(codata_constant_type), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("hertz-inverse meter relationship", & 3.335640951e-9_dp, 0.0_dp, & "m^-1") !! hertz-inverse meter relationship -type(codata_constant), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & -codata_constant("hertz-joule relationship", & +type(codata_constant_type), parameter, public :: HERTZ_JOULE_RELATIONSHIP = & +codata_constant_type("hertz-joule relationship", & 6.62607015e-34_dp, 0.0_dp, & "J") !! hertz-joule relationship -type(codata_constant), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & -codata_constant("hertz-kelvin relationship", & +type(codata_constant_type), parameter, public :: HERTZ_KELVIN_RELATIONSHIP = & +codata_constant_type("hertz-kelvin relationship", & 4.799243073e-11_dp, 0.0_dp, & "K") !! hertz-kelvin relationship -type(codata_constant), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & -codata_constant("hertz-kilogram relationship", & +type(codata_constant_type), parameter, public :: HERTZ_KILOGRAM_RELATIONSHIP = & +codata_constant_type("hertz-kilogram relationship", & 7.372497323e-51_dp, 0.0_dp, & "kg") !! hertz-kilogram relationship -type(codata_constant), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & -codata_constant("hyperfine transition frequency of Cs-133", & +type(codata_constant_type), parameter, public :: HYPERFINE_TRANSITION_FREQUENCY_OF_CS_133 = & +codata_constant_type("hyperfine transition frequency of Cs-133", & 9192631770_dp, 0.0_dp, & "Hz") !! hyperfine transition frequency of Cs-133 -type(codata_constant), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & -codata_constant("inverse fine-structure constant", & +type(codata_constant_type), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & +codata_constant_type("inverse fine-structure constant", & 137.035999084_dp, 0.000000021_dp, & "") !! inverse fine-structure constant -type(codata_constant), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("inverse meter-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("inverse meter-atomic mass unit relationship", & 1.33102505010e-15_dp, 0.00000000040e-15_dp, & "u") !! inverse meter-atomic mass unit relationship -type(codata_constant), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("inverse meter-electron volt relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("inverse meter-electron volt relationship", & 1.239841984e-6_dp, 0.0_dp, & "eV") !! inverse meter-electron volt relationship -type(codata_constant), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & -codata_constant("inverse meter-hartree relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & +codata_constant_type("inverse meter-hartree relationship", & 4.5563352529120e-8_dp, 0.0000000000088e-8_dp, & "E_h") !! inverse meter-hartree relationship -type(codata_constant), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & -codata_constant("inverse meter-hertz relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & +codata_constant_type("inverse meter-hertz relationship", & 299792458_dp, 0.0_dp, & "Hz") !! inverse meter-hertz relationship -type(codata_constant), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & -codata_constant("inverse meter-joule relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_JOULE_RELATIONSHIP = & +codata_constant_type("inverse meter-joule relationship", & 1.986445857e-25_dp, 0.0_dp, & "J") !! inverse meter-joule relationship -type(codata_constant), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & -codata_constant("inverse meter-kelvin relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_KELVIN_RELATIONSHIP = & +codata_constant_type("inverse meter-kelvin relationship", & 1.438776877e-2_dp, 0.0_dp, & "K") !! inverse meter-kelvin relationship -type(codata_constant), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & -codata_constant("inverse meter-kilogram relationship", & +type(codata_constant_type), parameter, public :: INVERSE_METER_KILOGRAM_RELATIONSHIP = & +codata_constant_type("inverse meter-kilogram relationship", & 2.210219094e-42_dp, 0.0_dp, & "kg") !! inverse meter-kilogram relationship -type(codata_constant), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & -codata_constant("inverse of conductance quantum", & +type(codata_constant_type), parameter, public :: INVERSE_OF_CONDUCTANCE_QUANTUM = & +codata_constant_type("inverse of conductance quantum", & 12906.40372_dp, 0.0_dp, & "ohm") !! inverse of conductance quantum -type(codata_constant), parameter, public :: JOSEPHSON_CONSTANT = & -codata_constant("Josephson constant", & +type(codata_constant_type), parameter, public :: JOSEPHSON_CONSTANT = & +codata_constant_type("Josephson constant", & 483597.8484e9_dp, 0.0_dp, & "Hz V^-1") !! Josephson constant -type(codata_constant), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("joule-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("joule-atomic mass unit relationship", & 6.7005352565e9_dp, 0.0000000020e9_dp, & "u") !! joule-atomic mass unit relationship -type(codata_constant), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("joule-electron volt relationship", & +type(codata_constant_type), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("joule-electron volt relationship", & 6.241509074e18_dp, 0.0_dp, & "eV") !! joule-electron volt relationship -type(codata_constant), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & -codata_constant("joule-hartree relationship", & +type(codata_constant_type), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & +codata_constant_type("joule-hartree relationship", & 2.2937122783963e17_dp, 0.0000000000045e17_dp, & "E_h") !! joule-hartree relationship -type(codata_constant), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & -codata_constant("joule-hertz relationship", & +type(codata_constant_type), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & +codata_constant_type("joule-hertz relationship", & 1.509190179e33_dp, 0.0_dp, & "Hz") !! joule-hertz relationship -type(codata_constant), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & -codata_constant("joule-inverse meter relationship", & +type(codata_constant_type), parameter, public :: JOULE_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("joule-inverse meter relationship", & 5.034116567e24_dp, 0.0_dp, & "m^-1") !! joule-inverse meter relationship -type(codata_constant), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & -codata_constant("joule-kelvin relationship", & +type(codata_constant_type), parameter, public :: JOULE_KELVIN_RELATIONSHIP = & +codata_constant_type("joule-kelvin relationship", & 7.242970516e22_dp, 0.0_dp, & "K") !! joule-kelvin relationship -type(codata_constant), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & -codata_constant("joule-kilogram relationship", & +type(codata_constant_type), parameter, public :: JOULE_KILOGRAM_RELATIONSHIP = & +codata_constant_type("joule-kilogram relationship", & 1.112650056e-17_dp, 0.0_dp, & "kg") !! joule-kilogram relationship -type(codata_constant), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("kelvin-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("kelvin-atomic mass unit relationship", & 9.2510873014e-14_dp, 0.0000000028e-14_dp, & "u") !! kelvin-atomic mass unit relationship -type(codata_constant), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("kelvin-electron volt relationship", & +type(codata_constant_type), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("kelvin-electron volt relationship", & 8.617333262e-5_dp, 0.0_dp, & "eV") !! kelvin-electron volt relationship -type(codata_constant), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & -codata_constant("kelvin-hartree relationship", & +type(codata_constant_type), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & +codata_constant_type("kelvin-hartree relationship", & 3.1668115634556e-6_dp, 0.0000000000061e-6_dp, & "E_h") !! kelvin-hartree relationship -type(codata_constant), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & -codata_constant("kelvin-hertz relationship", & +type(codata_constant_type), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & +codata_constant_type("kelvin-hertz relationship", & 2.083661912e10_dp, 0.0_dp, & "Hz") !! kelvin-hertz relationship -type(codata_constant), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & -codata_constant("kelvin-inverse meter relationship", & +type(codata_constant_type), parameter, public :: KELVIN_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("kelvin-inverse meter relationship", & 69.50348004_dp, 0.0_dp, & "m^-1") !! kelvin-inverse meter relationship -type(codata_constant), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & -codata_constant("kelvin-joule relationship", & +type(codata_constant_type), parameter, public :: KELVIN_JOULE_RELATIONSHIP = & +codata_constant_type("kelvin-joule relationship", & 1.380649e-23_dp, 0.0_dp, & "J") !! kelvin-joule relationship -type(codata_constant), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & -codata_constant("kelvin-kilogram relationship", & +type(codata_constant_type), parameter, public :: KELVIN_KILOGRAM_RELATIONSHIP = & +codata_constant_type("kelvin-kilogram relationship", & 1.536179187e-40_dp, 0.0_dp, & "kg") !! kelvin-kilogram relationship -type(codata_constant), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & -codata_constant("kilogram-atomic mass unit relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & +codata_constant_type("kilogram-atomic mass unit relationship", & 6.0221407621e26_dp, 0.0000000018e26_dp, & "u") !! kilogram-atomic mass unit relationship -type(codata_constant), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & -codata_constant("kilogram-electron volt relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & +codata_constant_type("kilogram-electron volt relationship", & 5.609588603e35_dp, 0.0_dp, & "eV") !! kilogram-electron volt relationship -type(codata_constant), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & -codata_constant("kilogram-hartree relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & +codata_constant_type("kilogram-hartree relationship", & 2.0614857887409e34_dp, 0.0000000000040e34_dp, & "E_h") !! kilogram-hartree relationship -type(codata_constant), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & -codata_constant("kilogram-hertz relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & +codata_constant_type("kilogram-hertz relationship", & 1.356392489e50_dp, 0.0_dp, & "Hz") !! kilogram-hertz relationship -type(codata_constant), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & -codata_constant("kilogram-inverse meter relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_INVERSE_METER_RELATIONSHIP = & +codata_constant_type("kilogram-inverse meter relationship", & 4.524438335e41_dp, 0.0_dp, & "m^-1") !! kilogram-inverse meter relationship -type(codata_constant), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & -codata_constant("kilogram-joule relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_JOULE_RELATIONSHIP = & +codata_constant_type("kilogram-joule relationship", & 8.987551787e16_dp, 0.0_dp, & "J") !! kilogram-joule relationship -type(codata_constant), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & -codata_constant("kilogram-kelvin relationship", & +type(codata_constant_type), parameter, public :: KILOGRAM_KELVIN_RELATIONSHIP = & +codata_constant_type("kilogram-kelvin relationship", & 6.509657260e39_dp, 0.0_dp, & "K") !! kilogram-kelvin relationship -type(codata_constant), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & -codata_constant("lattice parameter of silicon", & +type(codata_constant_type), parameter, public :: LATTICE_PARAMETER_OF_SILICON = & +codata_constant_type("lattice parameter of silicon", & 5.431020511e-10_dp, 0.000000089e-10_dp, & "m") !! lattice parameter of silicon -type(codata_constant), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & -codata_constant("lattice spacing of ideal Si (220)", & +type(codata_constant_type), parameter, public :: LATTICE_SPACING_OF_IDEAL_SI_220 = & +codata_constant_type("lattice spacing of ideal Si (220)", & 1.920155716e-10_dp, 0.000000032e-10_dp, & "m") !! lattice spacing of ideal Si (220) -type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & -codata_constant("Loschmidt constant (273.15 K, 100 kPa)", & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & +codata_constant_type("Loschmidt constant (273.15 K, 100 kPa)", & 2.651645804e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 100 kPa) -type(codata_constant), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & -codata_constant("Loschmidt constant (273.15 K, 101.325 kPa)", & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & +codata_constant_type("Loschmidt constant (273.15 K, 101.325 kPa)", & 2.686780111e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) -type(codata_constant), parameter, public :: LUMINOUS_EFFICACY = & -codata_constant("luminous efficacy", & +type(codata_constant_type), parameter, public :: LUMINOUS_EFFICACY = & +codata_constant_type("luminous efficacy", & 683_dp, 0.0_dp, & "lm W^-1") !! luminous efficacy -type(codata_constant), parameter, public :: MAG_FLUX_QUANTUM = & -codata_constant("mag. flux quantum", & +type(codata_constant_type), parameter, public :: MAG_FLUX_QUANTUM = & +codata_constant_type("mag. flux quantum", & 2.067833848e-15_dp, 0.0_dp, & "Wb") !! mag. flux quantum -type(codata_constant), parameter, public :: MOLAR_GAS_CONSTANT = & -codata_constant("molar gas constant", & +type(codata_constant_type), parameter, public :: MOLAR_GAS_CONSTANT = & +codata_constant_type("molar gas constant", & 8.314462618_dp, 0.0_dp, & "J mol^-1 K^-1") !! molar gas constant -type(codata_constant), parameter, public :: MOLAR_MASS_CONSTANT = & -codata_constant("molar mass constant", & +type(codata_constant_type), parameter, public :: MOLAR_MASS_CONSTANT = & +codata_constant_type("molar mass constant", & 0.99999999965e-3_dp, 0.00000000030e-3_dp, & "kg mol^-1") !! molar mass constant -type(codata_constant), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & -codata_constant("molar mass of carbon-12", & +type(codata_constant_type), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & +codata_constant_type("molar mass of carbon-12", & 11.9999999958e-3_dp, 0.0000000036e-3_dp, & "kg mol^-1") !! molar mass of carbon-12 -type(codata_constant), parameter, public :: MOLAR_PLANCK_CONSTANT = & -codata_constant("molar Planck constant", & +type(codata_constant_type), parameter, public :: MOLAR_PLANCK_CONSTANT = & +codata_constant_type("molar Planck constant", & 3.990312712e-10_dp, 0.0_dp, & "J Hz^-1 mol^-1") !! molar Planck constant -type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & -codata_constant("molar volume of ideal gas (273.15 K, 100 kPa)", & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & +codata_constant_type("molar volume of ideal gas (273.15 K, 100 kPa)", & 22.71095464e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) -type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & -codata_constant("molar volume of ideal gas (273.15 K, 101.325 kPa)", & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & +codata_constant_type("molar volume of ideal gas (273.15 K, 101.325 kPa)", & 22.41396954e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) -type(codata_constant), parameter, public :: MOLAR_VOLUME_OF_SILICON = & -codata_constant("molar volume of silicon", & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_SILICON = & +codata_constant_type("molar volume of silicon", & 1.205883199e-5_dp, 0.000000060e-5_dp, & "m^3 mol^-1") !! molar volume of silicon -type(codata_constant), parameter, public :: MOLYBDENUM_X_UNIT = & -codata_constant("Molybdenum x unit", & +type(codata_constant_type), parameter, public :: MOLYBDENUM_X_UNIT = & +codata_constant_type("Molybdenum x unit", & 1.00209952e-13_dp, 0.00000053e-13_dp, & "m") !! Molybdenum x unit -type(codata_constant), parameter, public :: MUON_COMPTON_WAVELENGTH = & -codata_constant("muon Compton wavelength", & +type(codata_constant_type), parameter, public :: MUON_COMPTON_WAVELENGTH = & +codata_constant_type("muon Compton wavelength", & 1.173444110e-14_dp, 0.000000026e-14_dp, & "m") !! muon Compton wavelength -type(codata_constant), parameter, public :: MUON_ELECTRON_MASS_RATIO = & -codata_constant("muon-electron mass ratio", & +type(codata_constant_type), parameter, public :: MUON_ELECTRON_MASS_RATIO = & +codata_constant_type("muon-electron mass ratio", & 206.7682830_dp, 0.0000046_dp, & "") !! muon-electron mass ratio -type(codata_constant), parameter, public :: MUON_G_FACTOR = & -codata_constant("muon g factor", & +type(codata_constant_type), parameter, public :: MUON_G_FACTOR = & +codata_constant_type("muon g factor", & -2.0023318418_dp, 0.0000000013_dp, & "") !! muon g factor -type(codata_constant), parameter, public :: MUON_MAG_MOM = & -codata_constant("muon mag. mom.", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM = & +codata_constant_type("muon mag. mom.", & -4.49044830e-26_dp, 0.00000010e-26_dp, & "J T^-1") !! muon mag. mom. -type(codata_constant), parameter, public :: MUON_MAG_MOM_ANOMALY = & -codata_constant("muon mag. mom. anomaly", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM_ANOMALY = & +codata_constant_type("muon mag. mom. anomaly", & 1.16592089e-3_dp, 0.00000063e-3_dp, & "") !! muon mag. mom. anomaly -type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("muon mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("muon mag. mom. to Bohr magneton ratio", & -4.84197047e-3_dp, 0.00000011e-3_dp, & "") !! muon mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("muon mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("muon mag. mom. to nuclear magneton ratio", & -8.89059703_dp, 0.00000020_dp, & "") !! muon mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: MUON_MASS = & -codata_constant("muon mass", & +type(codata_constant_type), parameter, public :: MUON_MASS = & +codata_constant_type("muon mass", & 1.883531627e-28_dp, 0.000000042e-28_dp, & "kg") !! muon mass -type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & -codata_constant("muon mass energy equivalent", & +type(codata_constant_type), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("muon mass energy equivalent", & 1.692833804e-11_dp, 0.000000038e-11_dp, & "J") !! muon mass energy equivalent -type(codata_constant), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("muon mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: MUON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("muon mass energy equivalent in MeV", & 105.6583755_dp, 0.0000023_dp, & "MeV") !! muon mass energy equivalent in MeV -type(codata_constant), parameter, public :: MUON_MASS_IN_U = & -codata_constant("muon mass in u", & +type(codata_constant_type), parameter, public :: MUON_MASS_IN_U = & +codata_constant_type("muon mass in u", & 0.1134289259_dp, 0.0000000025_dp, & "u") !! muon mass in u -type(codata_constant), parameter, public :: MUON_MOLAR_MASS = & -codata_constant("muon molar mass", & +type(codata_constant_type), parameter, public :: MUON_MOLAR_MASS = & +codata_constant_type("muon molar mass", & 1.134289259e-4_dp, 0.000000025e-4_dp, & "kg mol^-1") !! muon molar mass -type(codata_constant), parameter, public :: MUON_NEUTRON_MASS_RATIO = & -codata_constant("muon-neutron mass ratio", & +type(codata_constant_type), parameter, public :: MUON_NEUTRON_MASS_RATIO = & +codata_constant_type("muon-neutron mass ratio", & 0.1124545170_dp, 0.0000000025_dp, & "") !! muon-neutron mass ratio -type(codata_constant), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & -codata_constant("muon-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("muon-proton mag. mom. ratio", & -3.183345142_dp, 0.000000071_dp, & "") !! muon-proton mag. mom. ratio -type(codata_constant), parameter, public :: MUON_PROTON_MASS_RATIO = & -codata_constant("muon-proton mass ratio", & +type(codata_constant_type), parameter, public :: MUON_PROTON_MASS_RATIO = & +codata_constant_type("muon-proton mass ratio", & 0.1126095264_dp, 0.0000000025_dp, & "") !! muon-proton mass ratio -type(codata_constant), parameter, public :: MUON_TAU_MASS_RATIO = & -codata_constant("muon-tau mass ratio", & +type(codata_constant_type), parameter, public :: MUON_TAU_MASS_RATIO = & +codata_constant_type("muon-tau mass ratio", & 5.94635e-2_dp, 0.00040e-2_dp, & "") !! muon-tau mass ratio -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION = & -codata_constant("natural unit of action", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ACTION = & +codata_constant_type("natural unit of action", & 1.054571817e-34_dp, 0.0_dp, & "J s") !! natural unit of action -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & -codata_constant("natural unit of action in eV s", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ACTION_IN_EV_S = & +codata_constant_type("natural unit of action in eV s", & 6.582119569e-16_dp, 0.0_dp, & "eV s") !! natural unit of action in eV s -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY = & -codata_constant("natural unit of energy", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY = & +codata_constant_type("natural unit of energy", & 8.1871057769e-14_dp, 0.0000000025e-14_dp, & "J") !! natural unit of energy -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & -codata_constant("natural unit of energy in MeV", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & +codata_constant_type("natural unit of energy in MeV", & 0.51099895000_dp, 0.00000000015_dp, & "MeV") !! natural unit of energy in MeV -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_LENGTH = & -codata_constant("natural unit of length", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_LENGTH = & +codata_constant_type("natural unit of length", & 3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! natural unit of length -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MASS = & -codata_constant("natural unit of mass", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MASS = & +codata_constant_type("natural unit of mass", & 9.1093837015e-31_dp, 0.0000000028e-31_dp, & "kg") !! natural unit of mass -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & -codata_constant("natural unit of momentum", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & +codata_constant_type("natural unit of momentum", & 2.73092453075e-22_dp, 0.00000000082e-22_dp, & "kg m s^-1") !! natural unit of momentum -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & -codata_constant("natural unit of momentum in MeV/c", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & +codata_constant_type("natural unit of momentum in MeV/c", & 0.51099895000_dp, 0.00000000015_dp, & "MeV/c") !! natural unit of momentum in MeV/c -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_TIME = & -codata_constant("natural unit of time", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_TIME = & +codata_constant_type("natural unit of time", & 1.28808866819e-21_dp, 0.00000000039e-21_dp, & "s") !! natural unit of time -type(codata_constant), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & -codata_constant("natural unit of velocity", & +type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & +codata_constant_type("natural unit of velocity", & 299792458_dp, 0.0_dp, & "m s^-1") !! natural unit of velocity -type(codata_constant), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & -codata_constant("neutron Compton wavelength", & +type(codata_constant_type), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & +codata_constant_type("neutron Compton wavelength", & 1.31959090581e-15_dp, 0.00000000075e-15_dp, & "m") !! neutron Compton wavelength -type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & -codata_constant("neutron-electron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & +codata_constant_type("neutron-electron mag. mom. ratio", & 1.04066882e-3_dp, 0.00000025e-3_dp, & "") !! neutron-electron mag. mom. ratio -type(codata_constant), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & -codata_constant("neutron-electron mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & +codata_constant_type("neutron-electron mass ratio", & 1838.68366173_dp, 0.00000089_dp, & "") !! neutron-electron mass ratio -type(codata_constant), parameter, public :: NEUTRON_G_FACTOR = & -codata_constant("neutron g factor", & +type(codata_constant_type), parameter, public :: NEUTRON_G_FACTOR = & +codata_constant_type("neutron g factor", & -3.82608545_dp, 0.00000090_dp, & "") !! neutron g factor -type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO = & -codata_constant("neutron gyromag. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO = & +codata_constant_type("neutron gyromag. ratio", & 1.83247171e8_dp, 0.00000043e8_dp, & "s^-1 T^-1") !! neutron gyromag. ratio -type(codata_constant), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("neutron gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("neutron gyromag. ratio in MHz/T", & 29.1646931_dp, 0.0000069_dp, & "MHz T^-1") !! neutron gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: NEUTRON_MAG_MOM = & -codata_constant("neutron mag. mom.", & +type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM = & +codata_constant_type("neutron mag. mom.", & -9.6623651e-27_dp, 0.0000023e-27_dp, & "J T^-1") !! neutron mag. mom. -type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("neutron mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("neutron mag. mom. to Bohr magneton ratio", & -1.04187563e-3_dp, 0.00000025e-3_dp, & "") !! neutron mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("neutron mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("neutron mag. mom. to nuclear magneton ratio", & -1.91304273_dp, 0.00000045_dp, & "") !! neutron mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: NEUTRON_MASS = & -codata_constant("neutron mass", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS = & +codata_constant_type("neutron mass", & 1.67492749804e-27_dp, 0.00000000095e-27_dp, & "kg") !! neutron mass -type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & -codata_constant("neutron mass energy equivalent", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("neutron mass energy equivalent", & 1.50534976287e-10_dp, 0.00000000086e-10_dp, & "J") !! neutron mass energy equivalent -type(codata_constant), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("neutron mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("neutron mass energy equivalent in MeV", & 939.56542052_dp, 0.00000054_dp, & "MeV") !! neutron mass energy equivalent in MeV -type(codata_constant), parameter, public :: NEUTRON_MASS_IN_U = & -codata_constant("neutron mass in u", & +type(codata_constant_type), parameter, public :: NEUTRON_MASS_IN_U = & +codata_constant_type("neutron mass in u", & 1.00866491595_dp, 0.00000000049_dp, & "u") !! neutron mass in u -type(codata_constant), parameter, public :: NEUTRON_MOLAR_MASS = & -codata_constant("neutron molar mass", & +type(codata_constant_type), parameter, public :: NEUTRON_MOLAR_MASS = & +codata_constant_type("neutron molar mass", & 1.00866491560e-3_dp, 0.00000000057e-3_dp, & "kg mol^-1") !! neutron molar mass -type(codata_constant), parameter, public :: NEUTRON_MUON_MASS_RATIO = & -codata_constant("neutron-muon mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_MUON_MASS_RATIO = & +codata_constant_type("neutron-muon mass ratio", & 8.89248406_dp, 0.00000020_dp, & "") !! neutron-muon mass ratio -type(codata_constant), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & -codata_constant("neutron-proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & +codata_constant_type("neutron-proton mag. mom. ratio", & -0.68497934_dp, 0.00000016_dp, & "") !! neutron-proton mag. mom. ratio -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & -codata_constant("neutron-proton mass difference", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & +codata_constant_type("neutron-proton mass difference", & 2.30557435e-30_dp, 0.00000082e-30_dp, & "kg") !! neutron-proton mass difference -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & -codata_constant("neutron-proton mass difference energy equivalent", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & +codata_constant_type("neutron-proton mass difference energy equivalent", & 2.07214689e-13_dp, 0.00000074e-13_dp, & "J") !! neutron-proton mass difference energy equivalent -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("neutron-proton mass difference energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("neutron-proton mass difference energy equivalent in MeV", & 1.29333236_dp, 0.00000046_dp, & "MeV") !! neutron-proton mass difference energy equivalent in MeV -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & -codata_constant("neutron-proton mass difference in u", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & +codata_constant_type("neutron-proton mass difference in u", & 1.38844933e-3_dp, 0.00000049e-3_dp, & "u") !! neutron-proton mass difference in u -type(codata_constant), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & -codata_constant("neutron-proton mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & +codata_constant_type("neutron-proton mass ratio", & 1.00137841931_dp, 0.00000000049_dp, & "") !! neutron-proton mass ratio -type(codata_constant), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & -codata_constant("neutron relative atomic mass", & +type(codata_constant_type), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("neutron relative atomic mass", & 1.00866491595_dp, 0.00000000049_dp, & "") !! neutron relative atomic mass -type(codata_constant), parameter, public :: NEUTRON_TAU_MASS_RATIO = & -codata_constant("neutron-tau mass ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_TAU_MASS_RATIO = & +codata_constant_type("neutron-tau mass ratio", & 0.528779_dp, 0.000036_dp, & "") !! neutron-tau mass ratio -type(codata_constant), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & -codata_constant("neutron to shielded proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: NEUTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant_type("neutron to shielded proton mag. mom. ratio", & -0.68499694_dp, 0.00000016_dp, & "") !! neutron to shielded proton mag. mom. ratio -type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & -codata_constant("Newtonian constant of gravitation", & +type(codata_constant_type), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION = & +codata_constant_type("Newtonian constant of gravitation", & 6.67430e-11_dp, 0.00015e-11_dp, & "m^3 kg^-1 s^-2") !! Newtonian constant of gravitation -type(codata_constant), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & -codata_constant("Newtonian constant of gravitation over h-bar c", & +type(codata_constant_type), parameter, public :: NEWTONIAN_CONSTANT_OF_GRAVITATION_OVER_H_BAR_C = & +codata_constant_type("Newtonian constant of gravitation over h-bar c", & 6.70883e-39_dp, 0.00015e-39_dp, & "(GeV/c^2)^-2") !! Newtonian constant of gravitation over h-bar c -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON = & -codata_constant("nuclear magneton", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON = & +codata_constant_type("nuclear magneton", & 5.0507837461e-27_dp, 0.0000000015e-27_dp, & "J T^-1") !! nuclear magneton -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & -codata_constant("nuclear magneton in eV/T", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & +codata_constant_type("nuclear magneton in eV/T", & 3.15245125844e-8_dp, 0.00000000096e-8_dp, & "eV T^-1") !! nuclear magneton in eV/T -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & -codata_constant("nuclear magneton in inverse meter per tesla", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & +codata_constant_type("nuclear magneton in inverse meter per tesla", & 2.54262341353e-2_dp, 0.00000000078e-2_dp, & "m^-1 T^-1") !! nuclear magneton in inverse meter per tesla -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & -codata_constant("nuclear magneton in K/T", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & +codata_constant_type("nuclear magneton in K/T", & 3.6582677756e-4_dp, 0.0000000011e-4_dp, & "K T^-1") !! nuclear magneton in K/T -type(codata_constant), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & -codata_constant("nuclear magneton in MHz/T", & +type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & +codata_constant_type("nuclear magneton in MHz/T", & 7.6225932291_dp, 0.0000000023_dp, & "MHz T^-1") !! nuclear magneton in MHz/T -type(codata_constant), parameter, public :: PLANCK_CONSTANT = & -codata_constant("Planck constant", & +type(codata_constant_type), parameter, public :: PLANCK_CONSTANT = & +codata_constant_type("Planck constant", & 6.62607015e-34_dp, 0.0_dp, & "J Hz^-1") !! Planck constant -type(codata_constant), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & -codata_constant("Planck constant in eV/Hz", & +type(codata_constant_type), parameter, public :: PLANCK_CONSTANT_IN_EV_HZ = & +codata_constant_type("Planck constant in eV/Hz", & 4.135667696e-15_dp, 0.0_dp, & "eV Hz^-1") !! Planck constant in eV/Hz -type(codata_constant), parameter, public :: PLANCK_LENGTH = & -codata_constant("Planck length", & +type(codata_constant_type), parameter, public :: PLANCK_LENGTH = & +codata_constant_type("Planck length", & 1.616255e-35_dp, 0.000018e-35_dp, & "m") !! Planck length -type(codata_constant), parameter, public :: PLANCK_MASS = & -codata_constant("Planck mass", & +type(codata_constant_type), parameter, public :: PLANCK_MASS = & +codata_constant_type("Planck mass", & 2.176434e-8_dp, 0.000024e-8_dp, & "kg") !! Planck mass -type(codata_constant), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & -codata_constant("Planck mass energy equivalent in GeV", & +type(codata_constant_type), parameter, public :: PLANCK_MASS_ENERGY_EQUIVALENT_IN_GEV = & +codata_constant_type("Planck mass energy equivalent in GeV", & 1.220890e19_dp, 0.000014e19_dp, & "GeV") !! Planck mass energy equivalent in GeV -type(codata_constant), parameter, public :: PLANCK_TEMPERATURE = & -codata_constant("Planck temperature", & +type(codata_constant_type), parameter, public :: PLANCK_TEMPERATURE = & +codata_constant_type("Planck temperature", & 1.416784e32_dp, 0.000016e32_dp, & "K") !! Planck temperature -type(codata_constant), parameter, public :: PLANCK_TIME = & -codata_constant("Planck time", & +type(codata_constant_type), parameter, public :: PLANCK_TIME = & +codata_constant_type("Planck time", & 5.391247e-44_dp, 0.000060e-44_dp, & "s") !! Planck time -type(codata_constant), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & -codata_constant("proton charge to mass quotient", & +type(codata_constant_type), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & +codata_constant_type("proton charge to mass quotient", & 9.5788331560e7_dp, 0.0000000029e7_dp, & "C kg^-1") !! proton charge to mass quotient -type(codata_constant), parameter, public :: PROTON_COMPTON_WAVELENGTH = & -codata_constant("proton Compton wavelength", & +type(codata_constant_type), parameter, public :: PROTON_COMPTON_WAVELENGTH = & +codata_constant_type("proton Compton wavelength", & 1.32140985539e-15_dp, 0.00000000040e-15_dp, & "m") !! proton Compton wavelength -type(codata_constant), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & -codata_constant("proton-electron mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & +codata_constant_type("proton-electron mass ratio", & 1836.15267343_dp, 0.00000011_dp, & "") !! proton-electron mass ratio -type(codata_constant), parameter, public :: PROTON_G_FACTOR = & -codata_constant("proton g factor", & +type(codata_constant_type), parameter, public :: PROTON_G_FACTOR = & +codata_constant_type("proton g factor", & 5.5856946893_dp, 0.0000000016_dp, & "") !! proton g factor -type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO = & -codata_constant("proton gyromag. ratio", & +type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO = & +codata_constant_type("proton gyromag. ratio", & 2.6752218744e8_dp, 0.0000000011e8_dp, & "s^-1 T^-1") !! proton gyromag. ratio -type(codata_constant), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("proton gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("proton gyromag. ratio in MHz/T", & 42.577478518_dp, 0.000000018_dp, & "MHz T^-1") !! proton gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: PROTON_MAG_MOM = & -codata_constant("proton mag. mom.", & +type(codata_constant_type), parameter, public :: PROTON_MAG_MOM = & +codata_constant_type("proton mag. mom.", & 1.41060679736e-26_dp, 0.00000000060e-26_dp, & "J T^-1") !! proton mag. mom. -type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("proton mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("proton mag. mom. to Bohr magneton ratio", & 1.52103220230e-3_dp, 0.00000000046e-3_dp, & "") !! proton mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("proton mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("proton mag. mom. to nuclear magneton ratio", & 2.79284734463_dp, 0.00000000082_dp, & "") !! proton mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & -codata_constant("proton mag. shielding correction", & +type(codata_constant_type), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & +codata_constant_type("proton mag. shielding correction", & 2.5689e-5_dp, 0.0011e-5_dp, & "") !! proton mag. shielding correction -type(codata_constant), parameter, public :: PROTON_MASS = & -codata_constant("proton mass", & +type(codata_constant_type), parameter, public :: PROTON_MASS = & +codata_constant_type("proton mass", & 1.67262192369e-27_dp, 0.00000000051e-27_dp, & "kg") !! proton mass -type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & -codata_constant("proton mass energy equivalent", & +type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("proton mass energy equivalent", & 1.50327761598e-10_dp, 0.00000000046e-10_dp, & "J") !! proton mass energy equivalent -type(codata_constant), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("proton mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("proton mass energy equivalent in MeV", & 938.27208816_dp, 0.00000029_dp, & "MeV") !! proton mass energy equivalent in MeV -type(codata_constant), parameter, public :: PROTON_MASS_IN_U = & -codata_constant("proton mass in u", & +type(codata_constant_type), parameter, public :: PROTON_MASS_IN_U = & +codata_constant_type("proton mass in u", & 1.007276466621_dp, 0.000000000053_dp, & "u") !! proton mass in u -type(codata_constant), parameter, public :: PROTON_MOLAR_MASS = & -codata_constant("proton molar mass", & +type(codata_constant_type), parameter, public :: PROTON_MOLAR_MASS = & +codata_constant_type("proton molar mass", & 1.00727646627e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! proton molar mass -type(codata_constant), parameter, public :: PROTON_MUON_MASS_RATIO = & -codata_constant("proton-muon mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_MUON_MASS_RATIO = & +codata_constant_type("proton-muon mass ratio", & 8.88024337_dp, 0.00000020_dp, & "") !! proton-muon mass ratio -type(codata_constant), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & -codata_constant("proton-neutron mag. mom. ratio", & +type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & +codata_constant_type("proton-neutron mag. mom. ratio", & -1.45989805_dp, 0.00000034_dp, & "") !! proton-neutron mag. mom. ratio -type(codata_constant), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & -codata_constant("proton-neutron mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & +codata_constant_type("proton-neutron mass ratio", & 0.99862347812_dp, 0.00000000049_dp, & "") !! proton-neutron mass ratio -type(codata_constant), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & -codata_constant("proton relative atomic mass", & +type(codata_constant_type), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("proton relative atomic mass", & 1.007276466621_dp, 0.000000000053_dp, & "") !! proton relative atomic mass -type(codata_constant), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & -codata_constant("proton rms charge radius", & +type(codata_constant_type), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & +codata_constant_type("proton rms charge radius", & 8.414e-16_dp, 0.019e-16_dp, & "m") !! proton rms charge radius -type(codata_constant), parameter, public :: PROTON_TAU_MASS_RATIO = & -codata_constant("proton-tau mass ratio", & +type(codata_constant_type), parameter, public :: PROTON_TAU_MASS_RATIO = & +codata_constant_type("proton-tau mass ratio", & 0.528051_dp, 0.000036_dp, & "") !! proton-tau mass ratio -type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION = & -codata_constant("quantum of circulation", & +type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION = & +codata_constant_type("quantum of circulation", & 3.6369475516e-4_dp, 0.0000000011e-4_dp, & "m^2 s^-1") !! quantum of circulation -type(codata_constant), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & -codata_constant("quantum of circulation times 2", & +type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & +codata_constant_type("quantum of circulation times 2", & 7.2738951032e-4_dp, 0.0000000022e-4_dp, & "m^2 s^-1") !! quantum of circulation times 2 -type(codata_constant), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & -codata_constant("reduced Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & +codata_constant_type("reduced Compton wavelength", & 3.8615926796e-13_dp, 0.0000000012e-13_dp, & "m") !! reduced Compton wavelength -type(codata_constant), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & -codata_constant("reduced muon Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & +codata_constant_type("reduced muon Compton wavelength", & 1.867594306e-15_dp, 0.000000042e-15_dp, & "m") !! reduced muon Compton wavelength -type(codata_constant), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & -codata_constant("reduced neutron Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & +codata_constant_type("reduced neutron Compton wavelength", & 2.1001941552e-16_dp, 0.0000000012e-16_dp, & "m") !! reduced neutron Compton wavelength -type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT = & -codata_constant("reduced Planck constant", & +type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT = & +codata_constant_type("reduced Planck constant", & 1.054571817e-34_dp, 0.0_dp, & "J s") !! reduced Planck constant -type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & -codata_constant("reduced Planck constant in eV s", & +type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT_IN_EV_S = & +codata_constant_type("reduced Planck constant in eV s", & 6.582119569e-16_dp, 0.0_dp, & "eV s") !! reduced Planck constant in eV s -type(codata_constant), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & -codata_constant("reduced Planck constant times c in MeV fm", & +type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT_TIMES_C_IN_MEV_FM = & +codata_constant_type("reduced Planck constant times c in MeV fm", & 197.3269804_dp, 0.0_dp, & "MeV fm") !! reduced Planck constant times c in MeV fm -type(codata_constant), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & -codata_constant("reduced proton Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & +codata_constant_type("reduced proton Compton wavelength", & 2.10308910336e-16_dp, 0.00000000064e-16_dp, & "m") !! reduced proton Compton wavelength -type(codata_constant), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & -codata_constant("reduced tau Compton wavelength", & +type(codata_constant_type), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & +codata_constant_type("reduced tau Compton wavelength", & 1.110538e-16_dp, 0.000075e-16_dp, & "m") !! reduced tau Compton wavelength -type(codata_constant), parameter, public :: RYDBERG_CONSTANT = & -codata_constant("Rydberg constant", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT = & +codata_constant_type("Rydberg constant", & 10973731.568160_dp, 0.000021_dp, & "m^-1") !! Rydberg constant -type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & -codata_constant("Rydberg constant times c in Hz", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & +codata_constant_type("Rydberg constant times c in Hz", & 3.2898419602508e15_dp, 0.0000000000064e15_dp, & "Hz") !! Rydberg constant times c in Hz -type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & -codata_constant("Rydberg constant times hc in eV", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & +codata_constant_type("Rydberg constant times hc in eV", & 13.605693122994_dp, 0.000000000026_dp, & "eV") !! Rydberg constant times hc in eV -type(codata_constant), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & -codata_constant("Rydberg constant times hc in J", & +type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & +codata_constant_type("Rydberg constant times hc in J", & 2.1798723611035e-18_dp, 0.0000000000042e-18_dp, & "J") !! Rydberg constant times hc in J -type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & -codata_constant("Sackur-Tetrode constant (1 K, 100 kPa)", & +type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & +codata_constant_type("Sackur-Tetrode constant (1 K, 100 kPa)", & -1.15170753706_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) -type(codata_constant), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & -codata_constant("Sackur-Tetrode constant (1 K, 101.325 kPa)", & +type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & +codata_constant_type("Sackur-Tetrode constant (1 K, 101.325 kPa)", & -1.16487052358_dp, 0.00000000045_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) -type(codata_constant), parameter, public :: SECOND_RADIATION_CONSTANT = & -codata_constant("second radiation constant", & +type(codata_constant_type), parameter, public :: SECOND_RADIATION_CONSTANT = & +codata_constant_type("second radiation constant", & 1.438776877e-2_dp, 0.0_dp, & "m K") !! second radiation constant -type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & -codata_constant("shielded helion gyromag. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & +codata_constant_type("shielded helion gyromag. ratio", & 2.037894569e8_dp, 0.000000024e8_dp, & "s^-1 T^-1") !! shielded helion gyromag. ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("shielded helion gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("shielded helion gyromag. ratio in MHz/T", & 32.43409942_dp, 0.00000038_dp, & "MHz T^-1") !! shielded helion gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM = & -codata_constant("shielded helion mag. mom.", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM = & +codata_constant_type("shielded helion mag. mom.", & -1.074553090e-26_dp, 0.000000013e-26_dp, & "J T^-1") !! shielded helion mag. mom. -type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("shielded helion mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("shielded helion mag. mom. to Bohr magneton ratio", & -1.158671471e-3_dp, 0.000000014e-3_dp, & "") !! shielded helion mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("shielded helion mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("shielded helion mag. mom. to nuclear magneton ratio", & -2.127497719_dp, 0.000000025_dp, & "") !! shielded helion mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & -codata_constant("shielded helion to proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & +codata_constant_type("shielded helion to proton mag. mom. ratio", & -0.7617665618_dp, 0.0000000089_dp, & "") !! shielded helion to proton mag. mom. ratio -type(codata_constant), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & -codata_constant("shielded helion to shielded proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & +codata_constant_type("shielded helion to shielded proton mag. mom. ratio", & -0.7617861313_dp, 0.0000000033_dp, & "") !! shielded helion to shielded proton mag. mom. ratio -type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & -codata_constant("shielded proton gyromag. ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & +codata_constant_type("shielded proton gyromag. ratio", & 2.675153151e8_dp, 0.000000029e8_dp, & "s^-1 T^-1") !! shielded proton gyromag. ratio -type(codata_constant), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & -codata_constant("shielded proton gyromag. ratio in MHz/T", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & +codata_constant_type("shielded proton gyromag. ratio in MHz/T", & 42.57638474_dp, 0.00000046_dp, & "MHz T^-1") !! shielded proton gyromag. ratio in MHz/T -type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM = & -codata_constant("shielded proton mag. mom.", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM = & +codata_constant_type("shielded proton mag. mom.", & 1.410570560e-26_dp, 0.000000015e-26_dp, & "J T^-1") !! shielded proton mag. mom. -type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("shielded proton mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("shielded proton mag. mom. to Bohr magneton ratio", & 1.520993128e-3_dp, 0.000000017e-3_dp, & "") !! shielded proton mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("shielded proton mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("shielded proton mag. mom. to nuclear magneton ratio", & 2.792775599_dp, 0.000000030_dp, & "") !! shielded proton mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & -codata_constant("shielding difference of d and p in HD", & +type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & +codata_constant_type("shielding difference of d and p in HD", & 2.0200e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of d and p in HD -type(codata_constant), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & -codata_constant("shielding difference of t and p in HT", & +type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & +codata_constant_type("shielding difference of t and p in HT", & 2.4140e-8_dp, 0.0020e-8_dp, & "") !! shielding difference of t and p in HT -type(codata_constant), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & -codata_constant("speed of light in vacuum", & +type(codata_constant_type), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & +codata_constant_type("speed of light in vacuum", & 299792458_dp, 0.0_dp, & "m s^-1") !! speed of light in vacuum -type(codata_constant), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & -codata_constant("standard acceleration of gravity", & +type(codata_constant_type), parameter, public :: STANDARD_ACCELERATION_OF_GRAVITY = & +codata_constant_type("standard acceleration of gravity", & 9.80665_dp, 0.0_dp, & "m s^-2") !! standard acceleration of gravity -type(codata_constant), parameter, public :: STANDARD_ATMOSPHERE = & -codata_constant("standard atmosphere", & +type(codata_constant_type), parameter, public :: STANDARD_ATMOSPHERE = & +codata_constant_type("standard atmosphere", & 101325_dp, 0.0_dp, & "Pa") !! standard atmosphere -type(codata_constant), parameter, public :: STANDARD_STATE_PRESSURE = & -codata_constant("standard-state pressure", & +type(codata_constant_type), parameter, public :: STANDARD_STATE_PRESSURE = & +codata_constant_type("standard-state pressure", & 100000_dp, 0.0_dp, & "Pa") !! standard-state pressure -type(codata_constant), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & -codata_constant("Stefan-Boltzmann constant", & +type(codata_constant_type), parameter, public :: STEFAN_BOLTZMANN_CONSTANT = & +codata_constant_type("Stefan-Boltzmann constant", & 5.670374419e-8_dp, 0.0_dp, & "W m^-2 K^-4") !! Stefan-Boltzmann constant -type(codata_constant), parameter, public :: TAU_COMPTON_WAVELENGTH = & -codata_constant("tau Compton wavelength", & +type(codata_constant_type), parameter, public :: TAU_COMPTON_WAVELENGTH = & +codata_constant_type("tau Compton wavelength", & 6.97771e-16_dp, 0.00047e-16_dp, & "m") !! tau Compton wavelength -type(codata_constant), parameter, public :: TAU_ELECTRON_MASS_RATIO = & -codata_constant("tau-electron mass ratio", & +type(codata_constant_type), parameter, public :: TAU_ELECTRON_MASS_RATIO = & +codata_constant_type("tau-electron mass ratio", & 3477.23_dp, 0.23_dp, & "") !! tau-electron mass ratio -type(codata_constant), parameter, public :: TAU_ENERGY_EQUIVALENT = & -codata_constant("tau energy equivalent", & +type(codata_constant_type), parameter, public :: TAU_ENERGY_EQUIVALENT = & +codata_constant_type("tau energy equivalent", & 1776.86_dp, 0.12_dp, & "MeV") !! tau energy equivalent -type(codata_constant), parameter, public :: TAU_MASS = & -codata_constant("tau mass", & +type(codata_constant_type), parameter, public :: TAU_MASS = & +codata_constant_type("tau mass", & 3.16754e-27_dp, 0.00021e-27_dp, & "kg") !! tau mass -type(codata_constant), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & -codata_constant("tau mass energy equivalent", & +type(codata_constant_type), parameter, public :: TAU_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("tau mass energy equivalent", & 2.84684e-10_dp, 0.00019e-10_dp, & "J") !! tau mass energy equivalent -type(codata_constant), parameter, public :: TAU_MASS_IN_U = & -codata_constant("tau mass in u", & +type(codata_constant_type), parameter, public :: TAU_MASS_IN_U = & +codata_constant_type("tau mass in u", & 1.90754_dp, 0.00013_dp, & "u") !! tau mass in u -type(codata_constant), parameter, public :: TAU_MOLAR_MASS = & -codata_constant("tau molar mass", & +type(codata_constant_type), parameter, public :: TAU_MOLAR_MASS = & +codata_constant_type("tau molar mass", & 1.90754e-3_dp, 0.00013e-3_dp, & "kg mol^-1") !! tau molar mass -type(codata_constant), parameter, public :: TAU_MUON_MASS_RATIO = & -codata_constant("tau-muon mass ratio", & +type(codata_constant_type), parameter, public :: TAU_MUON_MASS_RATIO = & +codata_constant_type("tau-muon mass ratio", & 16.8170_dp, 0.0011_dp, & "") !! tau-muon mass ratio -type(codata_constant), parameter, public :: TAU_NEUTRON_MASS_RATIO = & -codata_constant("tau-neutron mass ratio", & +type(codata_constant_type), parameter, public :: TAU_NEUTRON_MASS_RATIO = & +codata_constant_type("tau-neutron mass ratio", & 1.89115_dp, 0.00013_dp, & "") !! tau-neutron mass ratio -type(codata_constant), parameter, public :: TAU_PROTON_MASS_RATIO = & -codata_constant("tau-proton mass ratio", & +type(codata_constant_type), parameter, public :: TAU_PROTON_MASS_RATIO = & +codata_constant_type("tau-proton mass ratio", & 1.89376_dp, 0.00013_dp, & "") !! tau-proton mass ratio -type(codata_constant), parameter, public :: THOMSON_CROSS_SECTION = & -codata_constant("Thomson cross section", & +type(codata_constant_type), parameter, public :: THOMSON_CROSS_SECTION = & +codata_constant_type("Thomson cross section", & 6.6524587321e-29_dp, 0.0000000060e-29_dp, & "m^2") !! Thomson cross section -type(codata_constant), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & -codata_constant("triton-electron mass ratio", & +type(codata_constant_type), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & +codata_constant_type("triton-electron mass ratio", & 5496.92153573_dp, 0.00000027_dp, & "") !! triton-electron mass ratio -type(codata_constant), parameter, public :: TRITON_G_FACTOR = & -codata_constant("triton g factor", & +type(codata_constant_type), parameter, public :: TRITON_G_FACTOR = & +codata_constant_type("triton g factor", & 5.957924931_dp, 0.000000012_dp, & "") !! triton g factor -type(codata_constant), parameter, public :: TRITON_MAG_MOM = & -codata_constant("triton mag. mom.", & +type(codata_constant_type), parameter, public :: TRITON_MAG_MOM = & +codata_constant_type("triton mag. mom.", & 1.5046095202e-26_dp, 0.0000000030e-26_dp, & "J T^-1") !! triton mag. mom. -type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & -codata_constant("triton mag. mom. to Bohr magneton ratio", & +type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & +codata_constant_type("triton mag. mom. to Bohr magneton ratio", & 1.6223936651e-3_dp, 0.0000000032e-3_dp, & "") !! triton mag. mom. to Bohr magneton ratio -type(codata_constant), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & -codata_constant("triton mag. mom. to nuclear magneton ratio", & +type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & +codata_constant_type("triton mag. mom. to nuclear magneton ratio", & 2.9789624656_dp, 0.0000000059_dp, & "") !! triton mag. mom. to nuclear magneton ratio -type(codata_constant), parameter, public :: TRITON_MASS = & -codata_constant("triton mass", & +type(codata_constant_type), parameter, public :: TRITON_MASS = & +codata_constant_type("triton mass", & 5.0073567446e-27_dp, 0.0000000015e-27_dp, & "kg") !! triton mass -type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & -codata_constant("triton mass energy equivalent", & +type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & +codata_constant_type("triton mass energy equivalent", & 4.5003878060e-10_dp, 0.0000000014e-10_dp, & "J") !! triton mass energy equivalent -type(codata_constant), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & -codata_constant("triton mass energy equivalent in MeV", & +type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & +codata_constant_type("triton mass energy equivalent in MeV", & 2808.92113298_dp, 0.00000085_dp, & "MeV") !! triton mass energy equivalent in MeV -type(codata_constant), parameter, public :: TRITON_MASS_IN_U = & -codata_constant("triton mass in u", & +type(codata_constant_type), parameter, public :: TRITON_MASS_IN_U = & +codata_constant_type("triton mass in u", & 3.01550071621_dp, 0.00000000012_dp, & "u") !! triton mass in u -type(codata_constant), parameter, public :: TRITON_MOLAR_MASS = & -codata_constant("triton molar mass", & +type(codata_constant_type), parameter, public :: TRITON_MOLAR_MASS = & +codata_constant_type("triton molar mass", & 3.01550071517e-3_dp, 0.00000000092e-3_dp, & "kg mol^-1") !! triton molar mass -type(codata_constant), parameter, public :: TRITON_PROTON_MASS_RATIO = & -codata_constant("triton-proton mass ratio", & +type(codata_constant_type), parameter, public :: TRITON_PROTON_MASS_RATIO = & +codata_constant_type("triton-proton mass ratio", & 2.99371703414_dp, 0.00000000015_dp, & "") !! triton-proton mass ratio -type(codata_constant), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & -codata_constant("triton relative atomic mass", & +type(codata_constant_type), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & +codata_constant_type("triton relative atomic mass", & 3.01550071621_dp, 0.00000000012_dp, & "") !! triton relative atomic mass -type(codata_constant), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & -codata_constant("triton to proton mag. mom. ratio", & +type(codata_constant_type), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & +codata_constant_type("triton to proton mag. mom. ratio", & 1.0666399191_dp, 0.0000000021_dp, & "") !! triton to proton mag. mom. ratio -type(codata_constant), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & -codata_constant("unified atomic mass unit", & +type(codata_constant_type), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & +codata_constant_type("unified atomic mass unit", & 1.66053906660e-27_dp, 0.00000000050e-27_dp, & "kg") !! unified atomic mass unit -type(codata_constant), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & -codata_constant("vacuum electric permittivity", & +type(codata_constant_type), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & +codata_constant_type("vacuum electric permittivity", & 8.8541878128e-12_dp, 0.0000000013e-12_dp, & "F m^-1") !! vacuum electric permittivity -type(codata_constant), parameter, public :: VACUUM_MAG_PERMEABILITY = & -codata_constant("vacuum mag. permeability", & +type(codata_constant_type), parameter, public :: VACUUM_MAG_PERMEABILITY = & +codata_constant_type("vacuum mag. permeability", & 1.25663706212e-6_dp, 0.00000000019e-6_dp, & "N A^-2") !! vacuum mag. permeability -type(codata_constant), parameter, public :: VON_KLITZING_CONSTANT = & -codata_constant("von Klitzing constant", & +type(codata_constant_type), parameter, public :: VON_KLITZING_CONSTANT = & +codata_constant_type("von Klitzing constant", & 25812.80745_dp, 0.0_dp, & "ohm") !! von Klitzing constant -type(codata_constant), parameter, public :: WEAK_MIXING_ANGLE = & -codata_constant("weak mixing angle", & +type(codata_constant_type), parameter, public :: WEAK_MIXING_ANGLE = & +codata_constant_type("weak mixing angle", & 0.22290_dp, 0.00030_dp, & "") !! weak mixing angle -type(codata_constant), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & -codata_constant("Wien frequency displacement law constant", & +type(codata_constant_type), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & +codata_constant_type("Wien frequency displacement law constant", & 5.878925757e10_dp, 0.0_dp, & "Hz K^-1") !! Wien frequency displacement law constant -type(codata_constant), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & -codata_constant("Wien wavelength displacement law constant", & +type(codata_constant_type), parameter, public :: WIEN_WAVELENGTH_DISPLACEMENT_LAW_CONSTANT = & +codata_constant_type("Wien wavelength displacement law constant", & 2.897771955e-3_dp, 0.0_dp, & "m K") !! Wien wavelength displacement law constant -type(codata_constant), parameter, public :: W_TO_Z_MASS_RATIO = & -codata_constant("W to Z mass ratio", & +type(codata_constant_type), parameter, public :: W_TO_Z_MASS_RATIO = & +codata_constant_type("W to Z mass ratio", & 0.88153_dp, 0.00017_dp, & "") !! W to Z mass ratio diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 62ae4628f..de0fbc9ad 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -37,7 +37,7 @@ contains subroutine print(self) !! Print out the constant's name, value, uncertainty and unit. - class(codata_constant), intent(in) :: self + class(codata_constant_type), intent(in) :: self print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit end subroutine @@ -48,7 +48,7 @@ elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) resul !! Get the constant value or uncertainty for the kind ${k}$ !! [Specification](TO_BE_COMPLETED) - class(codata_constant), intent(in) :: self !! Codata constant + class(codata_constant_type), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required !! From 00c789accaad77846cb2ec1b21f2a33dac6cfe0a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Fri, 10 May 2024 06:42:51 +0200 Subject: [PATCH 094/144] Update doc/specs/stdlib_constants. --- doc/specs/stdlib_constants.md | 27 +++++++++++++++++++++++++-- src/stdlib_codata_type.fypp | 5 +++-- src/stdlib_constants.fypp | 1 + 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index cda4d2741..004052066 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -9,10 +9,33 @@ title: constants The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. -The [[stdlib_codata]] module defines all codata constants as derived type [[codata_constant_type]]. -The latest codata constants were released in 2018 by the [NIST](http://physics.nist.gov/constants.) + +## Codata + +The [[stdlib_codata(module)]] module defines all codata (physical) constants as derived +type. The latest codata constants +were released in 2018 by the [NIST](http://physics.nist.gov/constants) +All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. +The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defines: +procedures. + +* 4 members: + + * `name` (string) + * `value` (double precision real) + * `uncertainty` (double precision real) + * `unit` (string) + +* 2 type-bound procedures: + + * `print` for print the values of the constant members. + * `to_real` for converting the value or the uncertainty to the desired precision. + +A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for converting the constant value +or uncertainty. + ## Example diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index de0fbc9ad..fdbd71140 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -2,6 +2,7 @@ #:set KINDS = REAL_KINDS module stdlib_codata_type !! Codata constant type + !! ([Specification](../page/specs/stdlib_constants.html)) use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_io, only: FMT_REAL_DP use stdlib_optval, only: optval @@ -11,7 +12,7 @@ module stdlib_codata_type !! version: experimental !! !! Derived type for representing a Codata constant. - !! [Specification](TOBECOMPLETED) + !! ([Specification](../page/specs/stdlib_constants.html)) character(len=64) :: name real(dp) :: value real(dp) :: uncertainty @@ -46,7 +47,7 @@ elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) resul !! version: experimental !! !! Get the constant value or uncertainty for the kind ${k}$ - !! [Specification](TO_BE_COMPLETED) + !! ([Specification](../page/specs/stdlib_constants.html)) class(codata_constant_type), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface diff --git a/src/stdlib_constants.fypp b/src/stdlib_constants.fypp index 484327c5c..e169dbb3b 100644 --- a/src/stdlib_constants.fypp +++ b/src/stdlib_constants.fypp @@ -2,6 +2,7 @@ #:set KINDS = REAL_KINDS module stdlib_constants !! Constants + !! ([Specification](../page/specs/stdlib_constants.html)) use stdlib_kinds, only: #{for k in KINDS[:-1]}#${k}$, #{endfor}#${KINDS[-1]}$ use stdlib_codata, only: SPEED_OF_LIGHT_IN_VACUUM, & VACUUM_ELECTRIC_PERMITTIVITY, & From 3ddef7a28712ce05fd9ff5b0a28cf9c2ae3ed7a6 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 05:29:16 +0200 Subject: [PATCH 095/144] Update codata constants with the 2022 release. --- src/stdlib_codata.f90 | 477 +++++++++++++++++++++--------------------- 1 file changed, 241 insertions(+), 236 deletions(-) diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index 5920197bb..050c68b52 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -4,48 +4,53 @@ module stdlib_codata use stdlib_codata_type private -integer(int32), parameter, public :: YEAR = 2018 !! Year of release. +integer(int32), parameter, public :: YEAR = 2022 !! Year of release. type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_ELECTRON_MASS_RATIO = & codata_constant_type("alpha particle-electron mass ratio", & -7294.29954142_dp, 0.00000024_dp, & +7294.29954171_dp, 0.00000017_dp, & "") !! alpha particle-electron mass ratio type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS = & codata_constant_type("alpha particle mass", & -6.6446573357e-27_dp, 0.0000000020e-27_dp, & +6.6446573450e-27_dp, 0.0000000021e-27_dp, & "kg") !! alpha particle mass type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT = & codata_constant_type("alpha particle mass energy equivalent", & -5.9719201914e-10_dp, 0.0000000018e-10_dp, & +5.9719201997e-10_dp, 0.0000000019e-10_dp, & "J") !! alpha particle mass energy equivalent type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("alpha particle mass energy equivalent in MeV", & -3727.3794066_dp, 0.0000011_dp, & +3727.3794118_dp, 0.0000012_dp, & "MeV") !! alpha particle mass energy equivalent in MeV type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MASS_IN_U = & codata_constant_type("alpha particle mass in u", & -4.001506179127_dp, 0.000000000063_dp, & +4.001506179129_dp, 0.000000000062_dp, & "u") !! alpha particle mass in u type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_MOLAR_MASS = & codata_constant_type("alpha particle molar mass", & -4.0015061777e-3_dp, 0.0000000012e-3_dp, & +4.0015061833e-3_dp, 0.0000000012e-3_dp, & "kg mol^-1") !! alpha particle molar mass type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_PROTON_MASS_RATIO = & codata_constant_type("alpha particle-proton mass ratio", & -3.97259969009_dp, 0.00000000022_dp, & +3.972599690252_dp, 0.000000000070_dp, & "") !! alpha particle-proton mass ratio type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_RELATIVE_ATOMIC_MASS = & codata_constant_type("alpha particle relative atomic mass", & -4.001506179127_dp, 0.000000000063_dp, & +4.001506179129_dp, 0.000000000062_dp, & "") !! alpha particle relative atomic mass +type(codata_constant_type), parameter, public :: ALPHA_PARTICLE_RMS_CHARGE_RADIUS = & +codata_constant_type("alpha particle rms charge radius", & +1.6785e-15_dp, 0.0021e-15_dp, & +"m") !! alpha particle rms charge radius + type(codata_constant_type), parameter, public :: ANGSTROM_STAR = & codata_constant_type("Angstrom star", & 1.00001495e-10_dp, 0.00000090e-10_dp, & @@ -53,62 +58,62 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT = & codata_constant_type("atomic mass constant", & -1.66053906660e-27_dp, 0.00000000050e-27_dp, & +1.66053906892e-27_dp, 0.00000000052e-27_dp, & "kg") !! atomic mass constant type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT = & codata_constant_type("atomic mass constant energy equivalent", & -1.49241808560e-10_dp, 0.00000000045e-10_dp, & +1.49241808768e-10_dp, 0.00000000046e-10_dp, & "J") !! atomic mass constant energy equivalent type(codata_constant_type), parameter, public :: ATOMIC_MASS_CONSTANT_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("atomic mass constant energy equivalent in MeV", & -931.49410242_dp, 0.00000028_dp, & +931.49410372_dp, 0.00000029_dp, & "MeV") !! atomic mass constant energy equivalent in MeV type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_ELECTRON_VOLT_RELATIONSHIP = & codata_constant_type("atomic mass unit-electron volt relationship", & -9.3149410242e8_dp, 0.0000000028e8_dp, & +9.3149410372e8_dp, 0.0000000029e8_dp, & "eV") !! atomic mass unit-electron volt relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HARTREE_RELATIONSHIP = & codata_constant_type("atomic mass unit-hartree relationship", & -3.4231776874e7_dp, 0.0000000010e7_dp, & +3.4231776922e7_dp, 0.0000000011e7_dp, & "E_h") !! atomic mass unit-hartree relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_HERTZ_RELATIONSHIP = & codata_constant_type("atomic mass unit-hertz relationship", & -2.25234271871e23_dp, 0.00000000068e23_dp, & +2.25234272185e23_dp, 0.00000000070e23_dp, & "Hz") !! atomic mass unit-hertz relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_INVERSE_METER_RELATIONSHIP = & codata_constant_type("atomic mass unit-inverse meter relationship", & -7.5130066104e14_dp, 0.0000000023e14_dp, & +7.5130066209e14_dp, 0.0000000023e14_dp, & "m^-1") !! atomic mass unit-inverse meter relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_JOULE_RELATIONSHIP = & codata_constant_type("atomic mass unit-joule relationship", & -1.49241808560e-10_dp, 0.00000000045e-10_dp, & +1.49241808768e-10_dp, 0.00000000046e-10_dp, & "J") !! atomic mass unit-joule relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KELVIN_RELATIONSHIP = & codata_constant_type("atomic mass unit-kelvin relationship", & -1.08095401916e13_dp, 0.00000000033e13_dp, & +1.08095402067e13_dp, 0.00000000034e13_dp, & "K") !! atomic mass unit-kelvin relationship type(codata_constant_type), parameter, public :: ATOMIC_MASS_UNIT_KILOGRAM_RELATIONSHIP = & codata_constant_type("atomic mass unit-kilogram relationship", & -1.66053906660e-27_dp, 0.00000000050e-27_dp, & +1.66053906892e-27_dp, 0.00000000052e-27_dp, & "kg") !! atomic mass unit-kilogram relationship type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_1ST_HYPERPOLARIZABILITY = & codata_constant_type("atomic unit of 1st hyperpolarizability", & -3.2063613061e-53_dp, 0.0000000015e-53_dp, & +3.2063612996e-53_dp, 0.0000000015e-53_dp, & "C^3 m^3 J^-2") !! atomic unit of 1st hyperpolarizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_2ND_HYPERPOLARIZABILITY = & codata_constant_type("atomic unit of 2nd hyperpolarizability", & -6.2353799905e-65_dp, 0.0000000038e-65_dp, & +6.2353799735e-65_dp, 0.0000000039e-65_dp, & "C^4 m^4 J^-3") !! atomic unit of 2nd hyperpolarizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ACTION = & @@ -123,97 +128,97 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CHARGE_DENSITY = & codata_constant_type("atomic unit of charge density", & -1.08120238457e12_dp, 0.00000000049e12_dp, & +1.08120238677e12_dp, 0.00000000051e12_dp, & "C m^-3") !! atomic unit of charge density type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_CURRENT = & codata_constant_type("atomic unit of current", & -6.623618237510e-3_dp, 0.000000000013e-3_dp, & +6.6236182375082e-3_dp, 0.0000000000072e-3_dp, & "A") !! atomic unit of current type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_DIPOLE_MOM = & codata_constant_type("atomic unit of electric dipole mom.", & -8.4783536255e-30_dp, 0.0000000013e-30_dp, & +8.4783536198e-30_dp, 0.0000000013e-30_dp, & "C m") !! atomic unit of electric dipole mom. type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD = & codata_constant_type("atomic unit of electric field", & -5.14220674763e11_dp, 0.00000000078e11_dp, & +5.14220675112e11_dp, 0.00000000080e11_dp, & "V m^-1") !! atomic unit of electric field type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_FIELD_GRADIENT = & codata_constant_type("atomic unit of electric field gradient", & -9.7173624292e21_dp, 0.0000000029e21_dp, & +9.7173624424e21_dp, 0.0000000030e21_dp, & "V m^-2") !! atomic unit of electric field gradient type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POLARIZABILITY = & codata_constant_type("atomic unit of electric polarizability", & -1.64877727436e-41_dp, 0.00000000050e-41_dp, & +1.64877727212e-41_dp, 0.00000000051e-41_dp, & "C^2 m^2 J^-1") !! atomic unit of electric polarizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_POTENTIAL = & codata_constant_type("atomic unit of electric potential", & -27.211386245988_dp, 0.000000000053_dp, & +27.211386245981_dp, 0.000000000030_dp, & "V") !! atomic unit of electric potential type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ELECTRIC_QUADRUPOLE_MOM = & codata_constant_type("atomic unit of electric quadrupole mom.", & -4.4865515246e-40_dp, 0.0000000014e-40_dp, & +4.4865515185e-40_dp, 0.0000000014e-40_dp, & "C m^2") !! atomic unit of electric quadrupole mom. type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_ENERGY = & codata_constant_type("atomic unit of energy", & -4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & +4.3597447222060e-18_dp, 0.0000000000048e-18_dp, & "J") !! atomic unit of energy type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_FORCE = & codata_constant_type("atomic unit of force", & -8.2387234983e-8_dp, 0.0000000012e-8_dp, & +8.2387235038e-8_dp, 0.0000000013e-8_dp, & "N") !! atomic unit of force type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_LENGTH = & codata_constant_type("atomic unit of length", & -5.29177210903e-11_dp, 0.00000000080e-11_dp, & +5.29177210544e-11_dp, 0.00000000082e-11_dp, & "m") !! atomic unit of length type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_DIPOLE_MOM = & codata_constant_type("atomic unit of mag. dipole mom.", & -1.85480201566e-23_dp, 0.00000000056e-23_dp, & +1.85480201315e-23_dp, 0.00000000058e-23_dp, & "J T^-1") !! atomic unit of mag. dipole mom. type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAG_FLUX_DENSITY = & codata_constant_type("atomic unit of mag. flux density", & -2.35051756758e5_dp, 0.00000000071e5_dp, & +2.35051757077e5_dp, 0.00000000073e5_dp, & "T") !! atomic unit of mag. flux density type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MAGNETIZABILITY = & codata_constant_type("atomic unit of magnetizability", & -7.8910366008e-29_dp, 0.0000000048e-29_dp, & +7.8910365794e-29_dp, 0.0000000049e-29_dp, & "J T^-2") !! atomic unit of magnetizability type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MASS = & codata_constant_type("atomic unit of mass", & -9.1093837015e-31_dp, 0.0000000028e-31_dp, & +9.1093837139e-31_dp, 0.0000000028e-31_dp, & "kg") !! atomic unit of mass type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_MOMENTUM = & codata_constant_type("atomic unit of momentum", & -1.99285191410e-24_dp, 0.00000000030e-24_dp, & +1.99285191545e-24_dp, 0.00000000031e-24_dp, & "kg m s^-1") !! atomic unit of momentum type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_PERMITTIVITY = & codata_constant_type("atomic unit of permittivity", & -1.11265005545e-10_dp, 0.00000000017e-10_dp, & +1.11265005620e-10_dp, 0.00000000017e-10_dp, & "F m^-1") !! atomic unit of permittivity type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_TIME = & codata_constant_type("atomic unit of time", & -2.4188843265857e-17_dp, 0.0000000000047e-17_dp, & +2.4188843265864e-17_dp, 0.0000000000026e-17_dp, & "s") !! atomic unit of time type(codata_constant_type), parameter, public :: ATOMIC_UNIT_OF_VELOCITY = & codata_constant_type("atomic unit of velocity", & -2.18769126364e6_dp, 0.00000000033e6_dp, & +2.18769126216e6_dp, 0.00000000034e6_dp, & "m s^-1") !! atomic unit of velocity type(codata_constant_type), parameter, public :: AVOGADRO_CONSTANT = & @@ -223,32 +228,32 @@ module stdlib_codata type(codata_constant_type), parameter, public :: BOHR_MAGNETON = & codata_constant_type("Bohr magneton", & -9.2740100783e-24_dp, 0.0000000028e-24_dp, & +9.2740100657e-24_dp, 0.0000000029e-24_dp, & "J T^-1") !! Bohr magneton type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_EV_T = & codata_constant_type("Bohr magneton in eV/T", & -5.7883818060e-5_dp, 0.0000000017e-5_dp, & +5.7883817982e-5_dp, 0.0000000018e-5_dp, & "eV T^-1") !! Bohr magneton in eV/T type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_HZ_T = & codata_constant_type("Bohr magneton in Hz/T", & -1.39962449361e10_dp, 0.00000000042e10_dp, & +1.39962449171e10_dp, 0.00000000044e10_dp, & "Hz T^-1") !! Bohr magneton in Hz/T type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant_type("Bohr magneton in inverse meter per tesla", & -46.686447783_dp, 0.000000014_dp, & +46.686447719_dp, 0.000000015_dp, & "m^-1 T^-1") !! Bohr magneton in inverse meter per tesla type(codata_constant_type), parameter, public :: BOHR_MAGNETON_IN_K_T = & codata_constant_type("Bohr magneton in K/T", & -0.67171381563_dp, 0.00000000020_dp, & +0.67171381472_dp, 0.00000000021_dp, & "K T^-1") !! Bohr magneton in K/T type(codata_constant_type), parameter, public :: BOHR_RADIUS = & codata_constant_type("Bohr radius", & -5.29177210903e-11_dp, 0.00000000080e-11_dp, & +5.29177210544e-11_dp, 0.00000000082e-11_dp, & "m") !! Bohr radius type(codata_constant_type), parameter, public :: BOLTZMANN_CONSTANT = & @@ -273,17 +278,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: CHARACTERISTIC_IMPEDANCE_OF_VACUUM = & codata_constant_type("characteristic impedance of vacuum", & -376.730313668_dp, 0.000000057_dp, & +376.730313412_dp, 0.000000059_dp, & "ohm") !! characteristic impedance of vacuum type(codata_constant_type), parameter, public :: CLASSICAL_ELECTRON_RADIUS = & codata_constant_type("classical electron radius", & -2.8179403262e-15_dp, 0.0000000013e-15_dp, & +2.8179403205e-15_dp, 0.0000000013e-15_dp, & "m") !! classical electron radius type(codata_constant_type), parameter, public :: COMPTON_WAVELENGTH = & codata_constant_type("Compton wavelength", & -2.42631023867e-12_dp, 0.00000000073e-12_dp, & +2.42631023538e-12_dp, 0.00000000076e-12_dp, & "m") !! Compton wavelength type(codata_constant_type), parameter, public :: CONDUCTANCE_QUANTUM = & @@ -343,197 +348,197 @@ module stdlib_codata type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MAG_MOM_RATIO = & codata_constant_type("deuteron-electron mag. mom. ratio", & --4.664345551e-4_dp, 0.000000012e-4_dp, & +-4.664345550e-4_dp, 0.000000012e-4_dp, & "") !! deuteron-electron mag. mom. ratio type(codata_constant_type), parameter, public :: DEUTERON_ELECTRON_MASS_RATIO = & codata_constant_type("deuteron-electron mass ratio", & -3670.48296788_dp, 0.00000013_dp, & +3670.482967655_dp, 0.000000063_dp, & "") !! deuteron-electron mass ratio type(codata_constant_type), parameter, public :: DEUTERON_G_FACTOR = & codata_constant_type("deuteron g factor", & -0.8574382338_dp, 0.0000000022_dp, & +0.8574382335_dp, 0.0000000022_dp, & "") !! deuteron g factor type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM = & codata_constant_type("deuteron mag. mom.", & -4.330735094e-27_dp, 0.000000011e-27_dp, & +4.330735087e-27_dp, 0.000000011e-27_dp, & "J T^-1") !! deuteron mag. mom. type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("deuteron mag. mom. to Bohr magneton ratio", & -4.669754570e-4_dp, 0.000000012e-4_dp, & +4.669754568e-4_dp, 0.000000012e-4_dp, & "") !! deuteron mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: DEUTERON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("deuteron mag. mom. to nuclear magneton ratio", & -0.8574382338_dp, 0.0000000022_dp, & +0.8574382335_dp, 0.0000000022_dp, & "") !! deuteron mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: DEUTERON_MASS = & codata_constant_type("deuteron mass", & -3.3435837724e-27_dp, 0.0000000010e-27_dp, & +3.3435837768e-27_dp, 0.0000000010e-27_dp, & "kg") !! deuteron mass type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("deuteron mass energy equivalent", & -3.00506323102e-10_dp, 0.00000000091e-10_dp, & +3.00506323491e-10_dp, 0.00000000094e-10_dp, & "J") !! deuteron mass energy equivalent type(codata_constant_type), parameter, public :: DEUTERON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("deuteron mass energy equivalent in MeV", & -1875.61294257_dp, 0.00000057_dp, & +1875.61294500_dp, 0.00000058_dp, & "MeV") !! deuteron mass energy equivalent in MeV type(codata_constant_type), parameter, public :: DEUTERON_MASS_IN_U = & codata_constant_type("deuteron mass in u", & -2.013553212745_dp, 0.000000000040_dp, & +2.013553212544_dp, 0.000000000015_dp, & "u") !! deuteron mass in u type(codata_constant_type), parameter, public :: DEUTERON_MOLAR_MASS = & codata_constant_type("deuteron molar mass", & -2.01355321205e-3_dp, 0.00000000061e-3_dp, & +2.01355321466e-3_dp, 0.00000000063e-3_dp, & "kg mol^-1") !! deuteron molar mass type(codata_constant_type), parameter, public :: DEUTERON_NEUTRON_MAG_MOM_RATIO = & codata_constant_type("deuteron-neutron mag. mom. ratio", & --0.44820653_dp, 0.00000011_dp, & +-0.44820652_dp, 0.00000011_dp, & "") !! deuteron-neutron mag. mom. ratio type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MAG_MOM_RATIO = & codata_constant_type("deuteron-proton mag. mom. ratio", & -0.30701220939_dp, 0.00000000079_dp, & +0.30701220930_dp, 0.00000000079_dp, & "") !! deuteron-proton mag. mom. ratio type(codata_constant_type), parameter, public :: DEUTERON_PROTON_MASS_RATIO = & codata_constant_type("deuteron-proton mass ratio", & -1.99900750139_dp, 0.00000000011_dp, & +1.9990075012699_dp, 0.0000000000084_dp, & "") !! deuteron-proton mass ratio type(codata_constant_type), parameter, public :: DEUTERON_RELATIVE_ATOMIC_MASS = & codata_constant_type("deuteron relative atomic mass", & -2.013553212745_dp, 0.000000000040_dp, & +2.013553212544_dp, 0.000000000015_dp, & "") !! deuteron relative atomic mass type(codata_constant_type), parameter, public :: DEUTERON_RMS_CHARGE_RADIUS = & codata_constant_type("deuteron rms charge radius", & -2.12799e-15_dp, 0.00074e-15_dp, & +2.12778e-15_dp, 0.00027e-15_dp, & "m") !! deuteron rms charge radius type(codata_constant_type), parameter, public :: ELECTRON_CHARGE_TO_MASS_QUOTIENT = & codata_constant_type("electron charge to mass quotient", & --1.75882001076e11_dp, 0.00000000053e11_dp, & +-1.75882000838e11_dp, 0.00000000055e11_dp, & "C kg^-1") !! electron charge to mass quotient type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MAG_MOM_RATIO = & codata_constant_type("electron-deuteron mag. mom. ratio", & --2143.9234915_dp, 0.0000056_dp, & +-2143.9234921_dp, 0.0000056_dp, & "") !! electron-deuteron mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_DEUTERON_MASS_RATIO = & codata_constant_type("electron-deuteron mass ratio", & -2.724437107462e-4_dp, 0.000000000096e-4_dp, & +2.724437107629e-4_dp, 0.000000000047e-4_dp, & "") !! electron-deuteron mass ratio type(codata_constant_type), parameter, public :: ELECTRON_G_FACTOR = & codata_constant_type("electron g factor", & --2.00231930436256_dp, 0.00000000000035_dp, & +-2.00231930436092_dp, 0.00000000000036_dp, & "") !! electron g factor type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO = & codata_constant_type("electron gyromag. ratio", & -1.76085963023e11_dp, 0.00000000053e11_dp, & +1.76085962784e11_dp, 0.00000000055e11_dp, & "s^-1 T^-1") !! electron gyromag. ratio type(codata_constant_type), parameter, public :: ELECTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("electron gyromag. ratio in MHz/T", & -28024.9514242_dp, 0.0000085_dp, & +28024.9513861_dp, 0.0000087_dp, & "MHz T^-1") !! electron gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: ELECTRON_HELION_MASS_RATIO = & codata_constant_type("electron-helion mass ratio", & -1.819543074573e-4_dp, 0.000000000079e-4_dp, & +1.819543074649e-4_dp, 0.000000000053e-4_dp, & "") !! electron-helion mass ratio type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM = & codata_constant_type("electron mag. mom.", & --9.2847647043e-24_dp, 0.0000000028e-24_dp, & +-9.2847646917e-24_dp, 0.0000000029e-24_dp, & "J T^-1") !! electron mag. mom. type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_ANOMALY = & codata_constant_type("electron mag. mom. anomaly", & -1.15965218128e-3_dp, 0.00000000018e-3_dp, & +1.15965218046e-3_dp, 0.00000000018e-3_dp, & "") !! electron mag. mom. anomaly type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("electron mag. mom. to Bohr magneton ratio", & --1.00115965218128_dp, 0.00000000000018_dp, & +-1.00115965218046_dp, 0.00000000000018_dp, & "") !! electron mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: ELECTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("electron mag. mom. to nuclear magneton ratio", & --1838.28197188_dp, 0.00000011_dp, & +-1838.281971877_dp, 0.000000032_dp, & "") !! electron mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: ELECTRON_MASS = & codata_constant_type("electron mass", & -9.1093837015e-31_dp, 0.0000000028e-31_dp, & +9.1093837139e-31_dp, 0.0000000028e-31_dp, & "kg") !! electron mass type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("electron mass energy equivalent", & -8.1871057769e-14_dp, 0.0000000025e-14_dp, & +8.1871057880e-14_dp, 0.0000000026e-14_dp, & "J") !! electron mass energy equivalent type(codata_constant_type), parameter, public :: ELECTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("electron mass energy equivalent in MeV", & -0.51099895000_dp, 0.00000000015_dp, & +0.51099895069_dp, 0.00000000016_dp, & "MeV") !! electron mass energy equivalent in MeV type(codata_constant_type), parameter, public :: ELECTRON_MASS_IN_U = & codata_constant_type("electron mass in u", & -5.48579909065e-4_dp, 0.00000000016e-4_dp, & +5.485799090441e-4_dp, 0.000000000097e-4_dp, & "u") !! electron mass in u type(codata_constant_type), parameter, public :: ELECTRON_MOLAR_MASS = & codata_constant_type("electron molar mass", & -5.4857990888e-7_dp, 0.0000000017e-7_dp, & +5.4857990962e-7_dp, 0.0000000017e-7_dp, & "kg mol^-1") !! electron molar mass type(codata_constant_type), parameter, public :: ELECTRON_MUON_MAG_MOM_RATIO = & codata_constant_type("electron-muon mag. mom. ratio", & -206.7669883_dp, 0.0000046_dp, & +206.7669881_dp, 0.0000046_dp, & "") !! electron-muon mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_MUON_MASS_RATIO = & codata_constant_type("electron-muon mass ratio", & -4.83633169e-3_dp, 0.00000011e-3_dp, & +4.83633170e-3_dp, 0.00000011e-3_dp, & "") !! electron-muon mass ratio type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MAG_MOM_RATIO = & codata_constant_type("electron-neutron mag. mom. ratio", & -960.92050_dp, 0.00023_dp, & +960.92048_dp, 0.00023_dp, & "") !! electron-neutron mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_NEUTRON_MASS_RATIO = & codata_constant_type("electron-neutron mass ratio", & -5.4386734424e-4_dp, 0.0000000026e-4_dp, & +5.4386734416e-4_dp, 0.0000000022e-4_dp, & "") !! electron-neutron mass ratio type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MAG_MOM_RATIO = & codata_constant_type("electron-proton mag. mom. ratio", & --658.21068789_dp, 0.00000020_dp, & +-658.21068789_dp, 0.00000019_dp, & "") !! electron-proton mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_PROTON_MASS_RATIO = & codata_constant_type("electron-proton mass ratio", & -5.44617021487e-4_dp, 0.00000000033e-4_dp, & +5.446170214889e-4_dp, 0.000000000094e-4_dp, & "") !! electron-proton mass ratio type(codata_constant_type), parameter, public :: ELECTRON_RELATIVE_ATOMIC_MASS = & codata_constant_type("electron relative atomic mass", & -5.48579909065e-4_dp, 0.00000000016e-4_dp, & +5.485799090441e-4_dp, 0.000000000097e-4_dp, & "") !! electron relative atomic mass type(codata_constant_type), parameter, public :: ELECTRON_TAU_MASS_RATIO = & @@ -543,22 +548,22 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ELECTRON_TO_ALPHA_PARTICLE_MASS_RATIO = & codata_constant_type("electron to alpha particle mass ratio", & -1.370933554787e-4_dp, 0.000000000045e-4_dp, & +1.370933554733e-4_dp, 0.000000000032e-4_dp, & "") !! electron to alpha particle mass ratio type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_HELION_MAG_MOM_RATIO = & codata_constant_type("electron to shielded helion mag. mom. ratio", & -864.058257_dp, 0.000010_dp, & +864.05823986_dp, 0.00000070_dp, & "") !! electron to shielded helion mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant_type("electron to shielded proton mag. mom. ratio", & --658.2275971_dp, 0.0000072_dp, & +-658.2275856_dp, 0.0000027_dp, & "") !! electron to shielded proton mag. mom. ratio type(codata_constant_type), parameter, public :: ELECTRON_TRITON_MASS_RATIO = & codata_constant_type("electron-triton mass ratio", & -1.819200062251e-4_dp, 0.000000000090e-4_dp, & +1.819200062327e-4_dp, 0.000000000068e-4_dp, & "") !! electron-triton mass ratio type(codata_constant_type), parameter, public :: ELECTRON_VOLT = & @@ -568,12 +573,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: ELECTRON_VOLT_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("electron volt-atomic mass unit relationship", & -1.07354410233e-9_dp, 0.00000000032e-9_dp, & +1.07354410083e-9_dp, 0.00000000033e-9_dp, & "u") !! electron volt-atomic mass unit relationship type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HARTREE_RELATIONSHIP = & codata_constant_type("electron volt-hartree relationship", & -3.6749322175655e-2_dp, 0.0000000000071e-2_dp, & +3.6749322175665e-2_dp, 0.0000000000040e-2_dp, & "E_h") !! electron volt-hartree relationship type(codata_constant_type), parameter, public :: ELECTRON_VOLT_HERTZ_RELATIONSHIP = & @@ -623,7 +628,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: FINE_STRUCTURE_CONSTANT = & codata_constant_type("fine-structure constant", & -7.2973525693e-3_dp, 0.0000000011e-3_dp, & +7.2973525643e-3_dp, 0.0000000011e-3_dp, & "") !! fine-structure constant type(codata_constant_type), parameter, public :: FIRST_RADIATION_CONSTANT = & @@ -638,117 +643,117 @@ module stdlib_codata type(codata_constant_type), parameter, public :: HARTREE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("hartree-atomic mass unit relationship", & -2.92126232205e-8_dp, 0.00000000088e-8_dp, & +2.92126231797e-8_dp, 0.00000000091e-8_dp, & "u") !! hartree-atomic mass unit relationship type(codata_constant_type), parameter, public :: HARTREE_ELECTRON_VOLT_RELATIONSHIP = & codata_constant_type("hartree-electron volt relationship", & -27.211386245988_dp, 0.000000000053_dp, & +27.211386245981_dp, 0.000000000030_dp, & "eV") !! hartree-electron volt relationship type(codata_constant_type), parameter, public :: HARTREE_ENERGY = & codata_constant_type("Hartree energy", & -4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & +4.3597447222060e-18_dp, 0.0000000000048e-18_dp, & "J") !! Hartree energy type(codata_constant_type), parameter, public :: HARTREE_ENERGY_IN_EV = & codata_constant_type("Hartree energy in eV", & -27.211386245988_dp, 0.000000000053_dp, & +27.211386245981_dp, 0.000000000030_dp, & "eV") !! Hartree energy in eV type(codata_constant_type), parameter, public :: HARTREE_HERTZ_RELATIONSHIP = & codata_constant_type("hartree-hertz relationship", & -6.579683920502e15_dp, 0.000000000013e15_dp, & +6.5796839204999e15_dp, 0.0000000000072e15_dp, & "Hz") !! hartree-hertz relationship type(codata_constant_type), parameter, public :: HARTREE_INVERSE_METER_RELATIONSHIP = & codata_constant_type("hartree-inverse meter relationship", & -2.1947463136320e7_dp, 0.0000000000043e7_dp, & +2.1947463136314e7_dp, 0.0000000000024e7_dp, & "m^-1") !! hartree-inverse meter relationship type(codata_constant_type), parameter, public :: HARTREE_JOULE_RELATIONSHIP = & codata_constant_type("hartree-joule relationship", & -4.3597447222071e-18_dp, 0.0000000000085e-18_dp, & +4.3597447222060e-18_dp, 0.0000000000048e-18_dp, & "J") !! hartree-joule relationship type(codata_constant_type), parameter, public :: HARTREE_KELVIN_RELATIONSHIP = & codata_constant_type("hartree-kelvin relationship", & -3.1577502480407e5_dp, 0.0000000000061e5_dp, & +3.1577502480398e5_dp, 0.0000000000034e5_dp, & "K") !! hartree-kelvin relationship type(codata_constant_type), parameter, public :: HARTREE_KILOGRAM_RELATIONSHIP = & codata_constant_type("hartree-kilogram relationship", & -4.8508702095432e-35_dp, 0.0000000000094e-35_dp, & +4.8508702095419e-35_dp, 0.0000000000053e-35_dp, & "kg") !! hartree-kilogram relationship type(codata_constant_type), parameter, public :: HELION_ELECTRON_MASS_RATIO = & codata_constant_type("helion-electron mass ratio", & -5495.88528007_dp, 0.00000024_dp, & +5495.88527984_dp, 0.00000016_dp, & "") !! helion-electron mass ratio type(codata_constant_type), parameter, public :: HELION_G_FACTOR = & codata_constant_type("helion g factor", & --4.255250615_dp, 0.000000050_dp, & +-4.2552506995_dp, 0.0000000034_dp, & "") !! helion g factor type(codata_constant_type), parameter, public :: HELION_MAG_MOM = & codata_constant_type("helion mag. mom.", & --1.074617532e-26_dp, 0.000000013e-26_dp, & +-1.07461755198e-26_dp, 0.00000000093e-26_dp, & "J T^-1") !! helion mag. mom. type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("helion mag. mom. to Bohr magneton ratio", & --1.158740958e-3_dp, 0.000000014e-3_dp, & +-1.15874098083e-3_dp, 0.00000000094e-3_dp, & "") !! helion mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("helion mag. mom. to nuclear magneton ratio", & --2.127625307_dp, 0.000000025_dp, & +-2.1276253498_dp, 0.0000000017_dp, & "") !! helion mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: HELION_MASS = & codata_constant_type("helion mass", & -5.0064127796e-27_dp, 0.0000000015e-27_dp, & +5.0064127862e-27_dp, 0.0000000016e-27_dp, & "kg") !! helion mass type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT = & codata_constant_type("helion mass energy equivalent", & -4.4995394125e-10_dp, 0.0000000014e-10_dp, & +4.4995394185e-10_dp, 0.0000000014e-10_dp, & "J") !! helion mass energy equivalent type(codata_constant_type), parameter, public :: HELION_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("helion mass energy equivalent in MeV", & -2808.39160743_dp, 0.00000085_dp, & +2808.39161112_dp, 0.00000088_dp, & "MeV") !! helion mass energy equivalent in MeV type(codata_constant_type), parameter, public :: HELION_MASS_IN_U = & codata_constant_type("helion mass in u", & -3.014932247175_dp, 0.000000000097_dp, & +3.014932246932_dp, 0.000000000074_dp, & "u") !! helion mass in u type(codata_constant_type), parameter, public :: HELION_MOLAR_MASS = & codata_constant_type("helion molar mass", & -3.01493224613e-3_dp, 0.00000000091e-3_dp, & +3.01493225010e-3_dp, 0.00000000094e-3_dp, & "kg mol^-1") !! helion molar mass type(codata_constant_type), parameter, public :: HELION_PROTON_MASS_RATIO = & codata_constant_type("helion-proton mass ratio", & -2.99315267167_dp, 0.00000000013_dp, & +2.993152671552_dp, 0.000000000070_dp, & "") !! helion-proton mass ratio type(codata_constant_type), parameter, public :: HELION_RELATIVE_ATOMIC_MASS = & codata_constant_type("helion relative atomic mass", & -3.014932247175_dp, 0.000000000097_dp, & +3.014932246932_dp, 0.000000000074_dp, & "") !! helion relative atomic mass type(codata_constant_type), parameter, public :: HELION_SHIELDING_SHIFT = & codata_constant_type("helion shielding shift", & -5.996743e-5_dp, 0.000010e-5_dp, & +5.9967029e-5_dp, 0.0000023e-5_dp, & "") !! helion shielding shift type(codata_constant_type), parameter, public :: HERTZ_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("hertz-atomic mass unit relationship", & -4.4398216652e-24_dp, 0.0000000013e-24_dp, & +4.4398216590e-24_dp, 0.0000000014e-24_dp, & "u") !! hertz-atomic mass unit relationship type(codata_constant_type), parameter, public :: HERTZ_ELECTRON_VOLT_RELATIONSHIP = & @@ -758,7 +763,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: HERTZ_HARTREE_RELATIONSHIP = & codata_constant_type("hertz-hartree relationship", & -1.5198298460570e-16_dp, 0.0000000000029e-16_dp, & +1.5198298460574e-16_dp, 0.0000000000017e-16_dp, & "E_h") !! hertz-hartree relationship type(codata_constant_type), parameter, public :: HERTZ_INVERSE_METER_RELATIONSHIP = & @@ -788,12 +793,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: INVERSE_FINE_STRUCTURE_CONSTANT = & codata_constant_type("inverse fine-structure constant", & -137.035999084_dp, 0.000000021_dp, & +137.035999177_dp, 0.000000021_dp, & "") !! inverse fine-structure constant type(codata_constant_type), parameter, public :: INVERSE_METER_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("inverse meter-atomic mass unit relationship", & -1.33102505010e-15_dp, 0.00000000040e-15_dp, & +1.33102504824e-15_dp, 0.00000000041e-15_dp, & "u") !! inverse meter-atomic mass unit relationship type(codata_constant_type), parameter, public :: INVERSE_METER_ELECTRON_VOLT_RELATIONSHIP = & @@ -803,7 +808,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: INVERSE_METER_HARTREE_RELATIONSHIP = & codata_constant_type("inverse meter-hartree relationship", & -4.5563352529120e-8_dp, 0.0000000000088e-8_dp, & +4.5563352529132e-8_dp, 0.0000000000050e-8_dp, & "E_h") !! inverse meter-hartree relationship type(codata_constant_type), parameter, public :: INVERSE_METER_HERTZ_RELATIONSHIP = & @@ -838,7 +843,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: JOULE_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("joule-atomic mass unit relationship", & -6.7005352565e9_dp, 0.0000000020e9_dp, & +6.7005352471e9_dp, 0.0000000021e9_dp, & "u") !! joule-atomic mass unit relationship type(codata_constant_type), parameter, public :: JOULE_ELECTRON_VOLT_RELATIONSHIP = & @@ -848,7 +853,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: JOULE_HARTREE_RELATIONSHIP = & codata_constant_type("joule-hartree relationship", & -2.2937122783963e17_dp, 0.0000000000045e17_dp, & +2.2937122783969e17_dp, 0.0000000000025e17_dp, & "E_h") !! joule-hartree relationship type(codata_constant_type), parameter, public :: JOULE_HERTZ_RELATIONSHIP = & @@ -873,7 +878,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KELVIN_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("kelvin-atomic mass unit relationship", & -9.2510873014e-14_dp, 0.0000000028e-14_dp, & +9.2510872884e-14_dp, 0.0000000029e-14_dp, & "u") !! kelvin-atomic mass unit relationship type(codata_constant_type), parameter, public :: KELVIN_ELECTRON_VOLT_RELATIONSHIP = & @@ -883,7 +888,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KELVIN_HARTREE_RELATIONSHIP = & codata_constant_type("kelvin-hartree relationship", & -3.1668115634556e-6_dp, 0.0000000000061e-6_dp, & +3.1668115634564e-6_dp, 0.0000000000035e-6_dp, & "E_h") !! kelvin-hartree relationship type(codata_constant_type), parameter, public :: KELVIN_HERTZ_RELATIONSHIP = & @@ -908,7 +913,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KILOGRAM_ATOMIC_MASS_UNIT_RELATIONSHIP = & codata_constant_type("kilogram-atomic mass unit relationship", & -6.0221407621e26_dp, 0.0000000018e26_dp, & +6.0221407537e26_dp, 0.0000000019e26_dp, & "u") !! kilogram-atomic mass unit relationship type(codata_constant_type), parameter, public :: KILOGRAM_ELECTRON_VOLT_RELATIONSHIP = & @@ -918,7 +923,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: KILOGRAM_HARTREE_RELATIONSHIP = & codata_constant_type("kilogram-hartree relationship", & -2.0614857887409e34_dp, 0.0000000000040e34_dp, & +2.0614857887415e34_dp, 0.0000000000022e34_dp, & "E_h") !! kilogram-hartree relationship type(codata_constant_type), parameter, public :: KILOGRAM_HERTZ_RELATIONSHIP = & @@ -978,12 +983,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MOLAR_MASS_CONSTANT = & codata_constant_type("molar mass constant", & -0.99999999965e-3_dp, 0.00000000030e-3_dp, & +1.00000000105e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! molar mass constant type(codata_constant_type), parameter, public :: MOLAR_MASS_OF_CARBON_12 = & codata_constant_type("molar mass of carbon-12", & -11.9999999958e-3_dp, 0.0000000036e-3_dp, & +12.0000000126e-3_dp, 0.0000000037e-3_dp, & "kg mol^-1") !! molar mass of carbon-12 type(codata_constant_type), parameter, public :: MOLAR_PLANCK_CONSTANT = & @@ -1018,12 +1023,12 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MUON_ELECTRON_MASS_RATIO = & codata_constant_type("muon-electron mass ratio", & -206.7682830_dp, 0.0000046_dp, & +206.7682827_dp, 0.0000046_dp, & "") !! muon-electron mass ratio type(codata_constant_type), parameter, public :: MUON_G_FACTOR = & codata_constant_type("muon g factor", & --2.0023318418_dp, 0.0000000013_dp, & +-2.00233184123_dp, 0.00000000082_dp, & "") !! muon g factor type(codata_constant_type), parameter, public :: MUON_MAG_MOM = & @@ -1033,17 +1038,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MUON_MAG_MOM_ANOMALY = & codata_constant_type("muon mag. mom. anomaly", & -1.16592089e-3_dp, 0.00000063e-3_dp, & +1.16592062e-3_dp, 0.00000041e-3_dp, & "") !! muon mag. mom. anomaly type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("muon mag. mom. to Bohr magneton ratio", & --4.84197047e-3_dp, 0.00000011e-3_dp, & +-4.84197048e-3_dp, 0.00000011e-3_dp, & "") !! muon mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: MUON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("muon mag. mom. to nuclear magneton ratio", & --8.89059703_dp, 0.00000020_dp, & +-8.89059704_dp, 0.00000020_dp, & "") !! muon mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: MUON_MASS = & @@ -1063,27 +1068,27 @@ module stdlib_codata type(codata_constant_type), parameter, public :: MUON_MASS_IN_U = & codata_constant_type("muon mass in u", & -0.1134289259_dp, 0.0000000025_dp, & +0.1134289257_dp, 0.0000000025_dp, & "u") !! muon mass in u type(codata_constant_type), parameter, public :: MUON_MOLAR_MASS = & codata_constant_type("muon molar mass", & -1.134289259e-4_dp, 0.000000025e-4_dp, & +1.134289258e-4_dp, 0.000000025e-4_dp, & "kg mol^-1") !! muon molar mass type(codata_constant_type), parameter, public :: MUON_NEUTRON_MASS_RATIO = & codata_constant_type("muon-neutron mass ratio", & -0.1124545170_dp, 0.0000000025_dp, & +0.1124545168_dp, 0.0000000025_dp, & "") !! muon-neutron mass ratio type(codata_constant_type), parameter, public :: MUON_PROTON_MAG_MOM_RATIO = & codata_constant_type("muon-proton mag. mom. ratio", & --3.183345142_dp, 0.000000071_dp, & +-3.183345146_dp, 0.000000071_dp, & "") !! muon-proton mag. mom. ratio type(codata_constant_type), parameter, public :: MUON_PROTON_MASS_RATIO = & codata_constant_type("muon-proton mass ratio", & -0.1126095264_dp, 0.0000000025_dp, & +0.1126095262_dp, 0.0000000025_dp, & "") !! muon-proton mass ratio type(codata_constant_type), parameter, public :: MUON_TAU_MASS_RATIO = & @@ -1103,37 +1108,37 @@ module stdlib_codata type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY = & codata_constant_type("natural unit of energy", & -8.1871057769e-14_dp, 0.0000000025e-14_dp, & +8.1871057880e-14_dp, 0.0000000026e-14_dp, & "J") !! natural unit of energy type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_ENERGY_IN_MEV = & codata_constant_type("natural unit of energy in MeV", & -0.51099895000_dp, 0.00000000015_dp, & +0.51099895069_dp, 0.00000000016_dp, & "MeV") !! natural unit of energy in MeV type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_LENGTH = & codata_constant_type("natural unit of length", & -3.8615926796e-13_dp, 0.0000000012e-13_dp, & +3.8615926744e-13_dp, 0.0000000012e-13_dp, & "m") !! natural unit of length type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MASS = & codata_constant_type("natural unit of mass", & -9.1093837015e-31_dp, 0.0000000028e-31_dp, & +9.1093837139e-31_dp, 0.0000000028e-31_dp, & "kg") !! natural unit of mass type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM = & codata_constant_type("natural unit of momentum", & -2.73092453075e-22_dp, 0.00000000082e-22_dp, & +2.73092453446e-22_dp, 0.00000000085e-22_dp, & "kg m s^-1") !! natural unit of momentum type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_MOMENTUM_IN_MEV_C = & codata_constant_type("natural unit of momentum in MeV/c", & -0.51099895000_dp, 0.00000000015_dp, & +0.51099895069_dp, 0.00000000016_dp, & "MeV/c") !! natural unit of momentum in MeV/c type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_TIME = & codata_constant_type("natural unit of time", & -1.28808866819e-21_dp, 0.00000000039e-21_dp, & +1.28808866644e-21_dp, 0.00000000040e-21_dp, & "s") !! natural unit of time type(codata_constant_type), parameter, public :: NATURAL_UNIT_OF_VELOCITY = & @@ -1143,112 +1148,112 @@ module stdlib_codata type(codata_constant_type), parameter, public :: NEUTRON_COMPTON_WAVELENGTH = & codata_constant_type("neutron Compton wavelength", & -1.31959090581e-15_dp, 0.00000000075e-15_dp, & +1.31959090382e-15_dp, 0.00000000067e-15_dp, & "m") !! neutron Compton wavelength type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MAG_MOM_RATIO = & codata_constant_type("neutron-electron mag. mom. ratio", & -1.04066882e-3_dp, 0.00000025e-3_dp, & +1.04066884e-3_dp, 0.00000024e-3_dp, & "") !! neutron-electron mag. mom. ratio type(codata_constant_type), parameter, public :: NEUTRON_ELECTRON_MASS_RATIO = & codata_constant_type("neutron-electron mass ratio", & -1838.68366173_dp, 0.00000089_dp, & +1838.68366200_dp, 0.00000074_dp, & "") !! neutron-electron mass ratio type(codata_constant_type), parameter, public :: NEUTRON_G_FACTOR = & codata_constant_type("neutron g factor", & --3.82608545_dp, 0.00000090_dp, & +-3.82608552_dp, 0.00000090_dp, & "") !! neutron g factor type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO = & codata_constant_type("neutron gyromag. ratio", & -1.83247171e8_dp, 0.00000043e8_dp, & +1.83247174e8_dp, 0.00000043e8_dp, & "s^-1 T^-1") !! neutron gyromag. ratio type(codata_constant_type), parameter, public :: NEUTRON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("neutron gyromag. ratio in MHz/T", & -29.1646931_dp, 0.0000069_dp, & +29.1646935_dp, 0.0000069_dp, & "MHz T^-1") !! neutron gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM = & codata_constant_type("neutron mag. mom.", & --9.6623651e-27_dp, 0.0000023e-27_dp, & +-9.6623653e-27_dp, 0.0000023e-27_dp, & "J T^-1") !! neutron mag. mom. type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("neutron mag. mom. to Bohr magneton ratio", & --1.04187563e-3_dp, 0.00000025e-3_dp, & +-1.04187565e-3_dp, 0.00000025e-3_dp, & "") !! neutron mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: NEUTRON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("neutron mag. mom. to nuclear magneton ratio", & --1.91304273_dp, 0.00000045_dp, & +-1.91304276_dp, 0.00000045_dp, & "") !! neutron mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: NEUTRON_MASS = & codata_constant_type("neutron mass", & -1.67492749804e-27_dp, 0.00000000095e-27_dp, & +1.67492750056e-27_dp, 0.00000000085e-27_dp, & "kg") !! neutron mass type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("neutron mass energy equivalent", & -1.50534976287e-10_dp, 0.00000000086e-10_dp, & +1.50534976514e-10_dp, 0.00000000076e-10_dp, & "J") !! neutron mass energy equivalent type(codata_constant_type), parameter, public :: NEUTRON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("neutron mass energy equivalent in MeV", & -939.56542052_dp, 0.00000054_dp, & +939.56542194_dp, 0.00000048_dp, & "MeV") !! neutron mass energy equivalent in MeV type(codata_constant_type), parameter, public :: NEUTRON_MASS_IN_U = & codata_constant_type("neutron mass in u", & -1.00866491595_dp, 0.00000000049_dp, & +1.00866491606_dp, 0.00000000040_dp, & "u") !! neutron mass in u type(codata_constant_type), parameter, public :: NEUTRON_MOLAR_MASS = & codata_constant_type("neutron molar mass", & -1.00866491560e-3_dp, 0.00000000057e-3_dp, & +1.00866491712e-3_dp, 0.00000000051e-3_dp, & "kg mol^-1") !! neutron molar mass type(codata_constant_type), parameter, public :: NEUTRON_MUON_MASS_RATIO = & codata_constant_type("neutron-muon mass ratio", & -8.89248406_dp, 0.00000020_dp, & +8.89248408_dp, 0.00000020_dp, & "") !! neutron-muon mass ratio type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MAG_MOM_RATIO = & codata_constant_type("neutron-proton mag. mom. ratio", & --0.68497934_dp, 0.00000016_dp, & +-0.68497935_dp, 0.00000016_dp, & "") !! neutron-proton mag. mom. ratio type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE = & codata_constant_type("neutron-proton mass difference", & -2.30557435e-30_dp, 0.00000082e-30_dp, & +2.30557461e-30_dp, 0.00000067e-30_dp, & "kg") !! neutron-proton mass difference type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT = & codata_constant_type("neutron-proton mass difference energy equivalent", & -2.07214689e-13_dp, 0.00000074e-13_dp, & +2.07214712e-13_dp, 0.00000060e-13_dp, & "J") !! neutron-proton mass difference energy equivalent type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("neutron-proton mass difference energy equivalent in MeV", & -1.29333236_dp, 0.00000046_dp, & +1.29333251_dp, 0.00000038_dp, & "MeV") !! neutron-proton mass difference energy equivalent in MeV type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_DIFFERENCE_IN_U = & codata_constant_type("neutron-proton mass difference in u", & -1.38844933e-3_dp, 0.00000049e-3_dp, & +1.38844948e-3_dp, 0.00000040e-3_dp, & "u") !! neutron-proton mass difference in u type(codata_constant_type), parameter, public :: NEUTRON_PROTON_MASS_RATIO = & codata_constant_type("neutron-proton mass ratio", & -1.00137841931_dp, 0.00000000049_dp, & +1.00137841946_dp, 0.00000000040_dp, & "") !! neutron-proton mass ratio type(codata_constant_type), parameter, public :: NEUTRON_RELATIVE_ATOMIC_MASS = & codata_constant_type("neutron relative atomic mass", & -1.00866491595_dp, 0.00000000049_dp, & +1.00866491606_dp, 0.00000000040_dp, & "") !! neutron relative atomic mass type(codata_constant_type), parameter, public :: NEUTRON_TAU_MASS_RATIO = & @@ -1273,27 +1278,27 @@ module stdlib_codata type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON = & codata_constant_type("nuclear magneton", & -5.0507837461e-27_dp, 0.0000000015e-27_dp, & +5.0507837393e-27_dp, 0.0000000016e-27_dp, & "J T^-1") !! nuclear magneton type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_EV_T = & codata_constant_type("nuclear magneton in eV/T", & -3.15245125844e-8_dp, 0.00000000096e-8_dp, & +3.15245125417e-8_dp, 0.00000000098e-8_dp, & "eV T^-1") !! nuclear magneton in eV/T type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_INVERSE_METER_PER_TESLA = & codata_constant_type("nuclear magneton in inverse meter per tesla", & -2.54262341353e-2_dp, 0.00000000078e-2_dp, & +2.54262341009e-2_dp, 0.00000000079e-2_dp, & "m^-1 T^-1") !! nuclear magneton in inverse meter per tesla type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_K_T = & codata_constant_type("nuclear magneton in K/T", & -3.6582677756e-4_dp, 0.0000000011e-4_dp, & +3.6582677706e-4_dp, 0.0000000011e-4_dp, & "K T^-1") !! nuclear magneton in K/T type(codata_constant_type), parameter, public :: NUCLEAR_MAGNETON_IN_MHZ_T = & codata_constant_type("nuclear magneton in MHz/T", & -7.6225932291_dp, 0.0000000023_dp, & +7.6225932188_dp, 0.0000000024_dp, & "MHz T^-1") !! nuclear magneton in MHz/T type(codata_constant_type), parameter, public :: PLANCK_CONSTANT = & @@ -1333,17 +1338,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: PROTON_CHARGE_TO_MASS_QUOTIENT = & codata_constant_type("proton charge to mass quotient", & -9.5788331560e7_dp, 0.0000000029e7_dp, & +9.5788331430e7_dp, 0.0000000030e7_dp, & "C kg^-1") !! proton charge to mass quotient type(codata_constant_type), parameter, public :: PROTON_COMPTON_WAVELENGTH = & codata_constant_type("proton Compton wavelength", & -1.32140985539e-15_dp, 0.00000000040e-15_dp, & +1.32140985360e-15_dp, 0.00000000041e-15_dp, & "m") !! proton Compton wavelength type(codata_constant_type), parameter, public :: PROTON_ELECTRON_MASS_RATIO = & codata_constant_type("proton-electron mass ratio", & -1836.15267343_dp, 0.00000011_dp, & +1836.152673426_dp, 0.000000032_dp, & "") !! proton-electron mass ratio type(codata_constant_type), parameter, public :: PROTON_G_FACTOR = & @@ -1353,22 +1358,22 @@ module stdlib_codata type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO = & codata_constant_type("proton gyromag. ratio", & -2.6752218744e8_dp, 0.0000000011e8_dp, & +2.6752218708e8_dp, 0.0000000011e8_dp, & "s^-1 T^-1") !! proton gyromag. ratio type(codata_constant_type), parameter, public :: PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("proton gyromag. ratio in MHz/T", & -42.577478518_dp, 0.000000018_dp, & +42.577478461_dp, 0.000000018_dp, & "MHz T^-1") !! proton gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: PROTON_MAG_MOM = & codata_constant_type("proton mag. mom.", & -1.41060679736e-26_dp, 0.00000000060e-26_dp, & +1.41060679545e-26_dp, 0.00000000060e-26_dp, & "J T^-1") !! proton mag. mom. type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("proton mag. mom. to Bohr magneton ratio", & -1.52103220230e-3_dp, 0.00000000046e-3_dp, & +1.52103220230e-3_dp, 0.00000000045e-3_dp, & "") !! proton mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & @@ -1378,57 +1383,57 @@ module stdlib_codata type(codata_constant_type), parameter, public :: PROTON_MAG_SHIELDING_CORRECTION = & codata_constant_type("proton mag. shielding correction", & -2.5689e-5_dp, 0.0011e-5_dp, & +2.56715e-5_dp, 0.00041e-5_dp, & "") !! proton mag. shielding correction type(codata_constant_type), parameter, public :: PROTON_MASS = & codata_constant_type("proton mass", & -1.67262192369e-27_dp, 0.00000000051e-27_dp, & +1.67262192595e-27_dp, 0.00000000052e-27_dp, & "kg") !! proton mass type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("proton mass energy equivalent", & -1.50327761598e-10_dp, 0.00000000046e-10_dp, & +1.50327761802e-10_dp, 0.00000000047e-10_dp, & "J") !! proton mass energy equivalent type(codata_constant_type), parameter, public :: PROTON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("proton mass energy equivalent in MeV", & -938.27208816_dp, 0.00000029_dp, & +938.27208943_dp, 0.00000029_dp, & "MeV") !! proton mass energy equivalent in MeV type(codata_constant_type), parameter, public :: PROTON_MASS_IN_U = & codata_constant_type("proton mass in u", & -1.007276466621_dp, 0.000000000053_dp, & +1.0072764665789_dp, 0.0000000000083_dp, & "u") !! proton mass in u type(codata_constant_type), parameter, public :: PROTON_MOLAR_MASS = & codata_constant_type("proton molar mass", & -1.00727646627e-3_dp, 0.00000000031e-3_dp, & +1.00727646764e-3_dp, 0.00000000031e-3_dp, & "kg mol^-1") !! proton molar mass type(codata_constant_type), parameter, public :: PROTON_MUON_MASS_RATIO = & codata_constant_type("proton-muon mass ratio", & -8.88024337_dp, 0.00000020_dp, & +8.88024338_dp, 0.00000020_dp, & "") !! proton-muon mass ratio type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MAG_MOM_RATIO = & codata_constant_type("proton-neutron mag. mom. ratio", & --1.45989805_dp, 0.00000034_dp, & +-1.45989802_dp, 0.00000034_dp, & "") !! proton-neutron mag. mom. ratio type(codata_constant_type), parameter, public :: PROTON_NEUTRON_MASS_RATIO = & codata_constant_type("proton-neutron mass ratio", & -0.99862347812_dp, 0.00000000049_dp, & +0.99862347797_dp, 0.00000000040_dp, & "") !! proton-neutron mass ratio type(codata_constant_type), parameter, public :: PROTON_RELATIVE_ATOMIC_MASS = & codata_constant_type("proton relative atomic mass", & -1.007276466621_dp, 0.000000000053_dp, & +1.0072764665789_dp, 0.0000000000083_dp, & "") !! proton relative atomic mass type(codata_constant_type), parameter, public :: PROTON_RMS_CHARGE_RADIUS = & codata_constant_type("proton rms charge radius", & -8.414e-16_dp, 0.019e-16_dp, & +8.4075e-16_dp, 0.0064e-16_dp, & "m") !! proton rms charge radius type(codata_constant_type), parameter, public :: PROTON_TAU_MASS_RATIO = & @@ -1438,17 +1443,17 @@ module stdlib_codata type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION = & codata_constant_type("quantum of circulation", & -3.6369475516e-4_dp, 0.0000000011e-4_dp, & +3.6369475467e-4_dp, 0.0000000011e-4_dp, & "m^2 s^-1") !! quantum of circulation type(codata_constant_type), parameter, public :: QUANTUM_OF_CIRCULATION_TIMES_2 = & codata_constant_type("quantum of circulation times 2", & -7.2738951032e-4_dp, 0.0000000022e-4_dp, & +7.2738950934e-4_dp, 0.0000000023e-4_dp, & "m^2 s^-1") !! quantum of circulation times 2 type(codata_constant_type), parameter, public :: REDUCED_COMPTON_WAVELENGTH = & codata_constant_type("reduced Compton wavelength", & -3.8615926796e-13_dp, 0.0000000012e-13_dp, & +3.8615926744e-13_dp, 0.0000000012e-13_dp, & "m") !! reduced Compton wavelength type(codata_constant_type), parameter, public :: REDUCED_MUON_COMPTON_WAVELENGTH = & @@ -1458,7 +1463,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: REDUCED_NEUTRON_COMPTON_WAVELENGTH = & codata_constant_type("reduced neutron Compton wavelength", & -2.1001941552e-16_dp, 0.0000000012e-16_dp, & +2.1001941520e-16_dp, 0.0000000011e-16_dp, & "m") !! reduced neutron Compton wavelength type(codata_constant_type), parameter, public :: REDUCED_PLANCK_CONSTANT = & @@ -1478,7 +1483,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: REDUCED_PROTON_COMPTON_WAVELENGTH = & codata_constant_type("reduced proton Compton wavelength", & -2.10308910336e-16_dp, 0.00000000064e-16_dp, & +2.10308910051e-16_dp, 0.00000000066e-16_dp, & "m") !! reduced proton Compton wavelength type(codata_constant_type), parameter, public :: REDUCED_TAU_COMPTON_WAVELENGTH = & @@ -1488,32 +1493,32 @@ module stdlib_codata type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT = & codata_constant_type("Rydberg constant", & -10973731.568160_dp, 0.000021_dp, & +10973731.568157_dp, 0.000012_dp, & "m^-1") !! Rydberg constant type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_C_IN_HZ = & codata_constant_type("Rydberg constant times c in Hz", & -3.2898419602508e15_dp, 0.0000000000064e15_dp, & +3.2898419602500e15_dp, 0.0000000000036e15_dp, & "Hz") !! Rydberg constant times c in Hz type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_EV = & codata_constant_type("Rydberg constant times hc in eV", & -13.605693122994_dp, 0.000000000026_dp, & +13.605693122990_dp, 0.000000000015_dp, & "eV") !! Rydberg constant times hc in eV type(codata_constant_type), parameter, public :: RYDBERG_CONSTANT_TIMES_HC_IN_J = & codata_constant_type("Rydberg constant times hc in J", & -2.1798723611035e-18_dp, 0.0000000000042e-18_dp, & +2.1798723611030e-18_dp, 0.0000000000024e-18_dp, & "J") !! Rydberg constant times hc in J type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_100_KPA = & codata_constant_type("Sackur-Tetrode constant (1 K, 100 kPa)", & --1.15170753706_dp, 0.00000000045_dp, & +-1.15170753496_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & codata_constant_type("Sackur-Tetrode constant (1 K, 101.325 kPa)", & --1.16487052358_dp, 0.00000000045_dp, & +-1.16487052149_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) type(codata_constant_type), parameter, public :: SECOND_RADIATION_CONSTANT = & @@ -1523,72 +1528,72 @@ module stdlib_codata type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO = & codata_constant_type("shielded helion gyromag. ratio", & -2.037894569e8_dp, 0.000000024e8_dp, & +2.0378946078e8_dp, 0.0000000018e8_dp, & "s^-1 T^-1") !! shielded helion gyromag. ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("shielded helion gyromag. ratio in MHz/T", & -32.43409942_dp, 0.00000038_dp, & +32.434100033_dp, 0.000000028_dp, & "MHz T^-1") !! shielded helion gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM = & codata_constant_type("shielded helion mag. mom.", & --1.074553090e-26_dp, 0.000000013e-26_dp, & +-1.07455311035e-26_dp, 0.00000000093e-26_dp, & "J T^-1") !! shielded helion mag. mom. type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("shielded helion mag. mom. to Bohr magneton ratio", & --1.158671471e-3_dp, 0.000000014e-3_dp, & +-1.15867149457e-3_dp, 0.00000000094e-3_dp, & "") !! shielded helion mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("shielded helion mag. mom. to nuclear magneton ratio", & --2.127497719_dp, 0.000000025_dp, & +-2.1274977624_dp, 0.0000000017_dp, & "") !! shielded helion mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_PROTON_MAG_MOM_RATIO = & codata_constant_type("shielded helion to proton mag. mom. ratio", & --0.7617665618_dp, 0.0000000089_dp, & +-0.76176657721_dp, 0.00000000066_dp, & "") !! shielded helion to proton mag. mom. ratio type(codata_constant_type), parameter, public :: SHIELDED_HELION_TO_SHIELDED_PROTON_MAG_MOM_RATIO = & codata_constant_type("shielded helion to shielded proton mag. mom. ratio", & --0.7617861313_dp, 0.0000000033_dp, & +-0.7617861334_dp, 0.0000000031_dp, & "") !! shielded helion to shielded proton mag. mom. ratio type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO = & codata_constant_type("shielded proton gyromag. ratio", & -2.675153151e8_dp, 0.000000029e8_dp, & +2.675153194e8_dp, 0.000000011e8_dp, & "s^-1 T^-1") !! shielded proton gyromag. ratio type(codata_constant_type), parameter, public :: SHIELDED_PROTON_GYROMAG_RATIO_IN_MHZ_T = & codata_constant_type("shielded proton gyromag. ratio in MHz/T", & -42.57638474_dp, 0.00000046_dp, & +42.57638543_dp, 0.00000017_dp, & "MHz T^-1") !! shielded proton gyromag. ratio in MHz/T type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM = & codata_constant_type("shielded proton mag. mom.", & -1.410570560e-26_dp, 0.000000015e-26_dp, & +1.4105705830e-26_dp, 0.0000000058e-26_dp, & "J T^-1") !! shielded proton mag. mom. type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("shielded proton mag. mom. to Bohr magneton ratio", & -1.520993128e-3_dp, 0.000000017e-3_dp, & +1.5209931551e-3_dp, 0.0000000062e-3_dp, & "") !! shielded proton mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: SHIELDED_PROTON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("shielded proton mag. mom. to nuclear magneton ratio", & -2.792775599_dp, 0.000000030_dp, & +2.792775648_dp, 0.000000011_dp, & "") !! shielded proton mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_D_AND_P_IN_HD = & codata_constant_type("shielding difference of d and p in HD", & -2.0200e-8_dp, 0.0020e-8_dp, & +1.98770e-8_dp, 0.00010e-8_dp, & "") !! shielding difference of d and p in HD type(codata_constant_type), parameter, public :: SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT = & codata_constant_type("shielding difference of t and p in HT", & -2.4140e-8_dp, 0.0020e-8_dp, & +2.39450e-8_dp, 0.00020e-8_dp, & "") !! shielding difference of t and p in HT type(codata_constant_type), parameter, public :: SPEED_OF_LIGHT_IN_VACUUM = & @@ -1668,87 +1673,87 @@ module stdlib_codata type(codata_constant_type), parameter, public :: THOMSON_CROSS_SECTION = & codata_constant_type("Thomson cross section", & -6.6524587321e-29_dp, 0.0000000060e-29_dp, & +6.6524587051e-29_dp, 0.0000000062e-29_dp, & "m^2") !! Thomson cross section type(codata_constant_type), parameter, public :: TRITON_ELECTRON_MASS_RATIO = & codata_constant_type("triton-electron mass ratio", & -5496.92153573_dp, 0.00000027_dp, & +5496.92153551_dp, 0.00000021_dp, & "") !! triton-electron mass ratio type(codata_constant_type), parameter, public :: TRITON_G_FACTOR = & codata_constant_type("triton g factor", & -5.957924931_dp, 0.000000012_dp, & +5.957924930_dp, 0.000000012_dp, & "") !! triton g factor type(codata_constant_type), parameter, public :: TRITON_MAG_MOM = & codata_constant_type("triton mag. mom.", & -1.5046095202e-26_dp, 0.0000000030e-26_dp, & +1.5046095178e-26_dp, 0.0000000030e-26_dp, & "J T^-1") !! triton mag. mom. type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_BOHR_MAGNETON_RATIO = & codata_constant_type("triton mag. mom. to Bohr magneton ratio", & -1.6223936651e-3_dp, 0.0000000032e-3_dp, & +1.6223936648e-3_dp, 0.0000000032e-3_dp, & "") !! triton mag. mom. to Bohr magneton ratio type(codata_constant_type), parameter, public :: TRITON_MAG_MOM_TO_NUCLEAR_MAGNETON_RATIO = & codata_constant_type("triton mag. mom. to nuclear magneton ratio", & -2.9789624656_dp, 0.0000000059_dp, & +2.9789624650_dp, 0.0000000059_dp, & "") !! triton mag. mom. to nuclear magneton ratio type(codata_constant_type), parameter, public :: TRITON_MASS = & codata_constant_type("triton mass", & -5.0073567446e-27_dp, 0.0000000015e-27_dp, & +5.0073567512e-27_dp, 0.0000000016e-27_dp, & "kg") !! triton mass type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT = & codata_constant_type("triton mass energy equivalent", & -4.5003878060e-10_dp, 0.0000000014e-10_dp, & +4.5003878119e-10_dp, 0.0000000014e-10_dp, & "J") !! triton mass energy equivalent type(codata_constant_type), parameter, public :: TRITON_MASS_ENERGY_EQUIVALENT_IN_MEV = & codata_constant_type("triton mass energy equivalent in MeV", & -2808.92113298_dp, 0.00000085_dp, & +2808.92113668_dp, 0.00000088_dp, & "MeV") !! triton mass energy equivalent in MeV type(codata_constant_type), parameter, public :: TRITON_MASS_IN_U = & codata_constant_type("triton mass in u", & -3.01550071621_dp, 0.00000000012_dp, & +3.01550071597_dp, 0.00000000010_dp, & "u") !! triton mass in u type(codata_constant_type), parameter, public :: TRITON_MOLAR_MASS = & codata_constant_type("triton molar mass", & -3.01550071517e-3_dp, 0.00000000092e-3_dp, & +3.01550071913e-3_dp, 0.00000000094e-3_dp, & "kg mol^-1") !! triton molar mass type(codata_constant_type), parameter, public :: TRITON_PROTON_MASS_RATIO = & codata_constant_type("triton-proton mass ratio", & -2.99371703414_dp, 0.00000000015_dp, & +2.99371703403_dp, 0.00000000010_dp, & "") !! triton-proton mass ratio type(codata_constant_type), parameter, public :: TRITON_RELATIVE_ATOMIC_MASS = & codata_constant_type("triton relative atomic mass", & -3.01550071621_dp, 0.00000000012_dp, & +3.01550071597_dp, 0.00000000010_dp, & "") !! triton relative atomic mass type(codata_constant_type), parameter, public :: TRITON_TO_PROTON_MAG_MOM_RATIO = & codata_constant_type("triton to proton mag. mom. ratio", & -1.0666399191_dp, 0.0000000021_dp, & +1.0666399189_dp, 0.0000000021_dp, & "") !! triton to proton mag. mom. ratio type(codata_constant_type), parameter, public :: UNIFIED_ATOMIC_MASS_UNIT = & codata_constant_type("unified atomic mass unit", & -1.66053906660e-27_dp, 0.00000000050e-27_dp, & +1.66053906892e-27_dp, 0.00000000052e-27_dp, & "kg") !! unified atomic mass unit type(codata_constant_type), parameter, public :: VACUUM_ELECTRIC_PERMITTIVITY = & codata_constant_type("vacuum electric permittivity", & -8.8541878128e-12_dp, 0.0000000013e-12_dp, & +8.8541878188e-12_dp, 0.0000000014e-12_dp, & "F m^-1") !! vacuum electric permittivity type(codata_constant_type), parameter, public :: VACUUM_MAG_PERMEABILITY = & codata_constant_type("vacuum mag. permeability", & -1.25663706212e-6_dp, 0.00000000019e-6_dp, & +1.25663706127e-6_dp, 0.00000000020e-6_dp, & "N A^-2") !! vacuum mag. permeability type(codata_constant_type), parameter, public :: VON_KLITZING_CONSTANT = & @@ -1758,7 +1763,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: WEAK_MIXING_ANGLE = & codata_constant_type("weak mixing angle", & -0.22290_dp, 0.00030_dp, & +0.22305_dp, 0.00023_dp, & "") !! weak mixing angle type(codata_constant_type), parameter, public :: WIEN_FREQUENCY_DISPLACEMENT_LAW_CONSTANT = & @@ -1773,7 +1778,7 @@ module stdlib_codata type(codata_constant_type), parameter, public :: W_TO_Z_MASS_RATIO = & codata_constant_type("W to Z mass ratio", & -0.88153_dp, 0.00017_dp, & +0.88145_dp, 0.00013_dp, & "") !! W to Z mass ratio end module stdlib_codata \ No newline at end of file From 4ac5d8440ab8dd24312b15d4863d382b80e844f2 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 05:44:10 +0200 Subject: [PATCH 096/144] Update documentation with the link to the Python script for generating the stdlib_codata module. --- doc/specs/stdlib_constants.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 004052066..fd9844f08 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -13,8 +13,9 @@ The [[stdlib_constants]] module provides mathematical constants and the most com ## Codata The [[stdlib_codata(module)]] module defines all codata (physical) constants as derived -type. The latest codata constants -were released in 2018 by the [NIST](http://physics.nist.gov/constants) +type. The module is automatically generated with a simple +[parser written in Python](https://github.com/MilanSkocic/codata/tree/dev/stdlib) +The latest codata constants were released in 2022 by the [NIST](http://physics.nist.gov/constants) All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. From 6557d91549308254addce89a237f3453483c812a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 06:24:50 +0200 Subject: [PATCH 097/144] Update documentation for the interface to_real. --- doc/specs/stdlib_constants.md | 34 +++++++++++++++++++++++++++++++--- src/stdlib_codata_type.fypp | 2 +- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index fd9844f08..a2e50c8f5 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -32,11 +32,39 @@ procedures. * 2 type-bound procedures: * `print` for print the values of the constant members. - * `to_real` for converting the value or the uncertainty to the desired precision. + * `to_real` for getting the value or the uncertainty to the desired precision. -A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for converting the constant value -or uncertainty. +A module level interface [[stdlib_codata_type(module):to_real(interface)]] is +available for getting the constant value or uncertainty of a constant. +## `to_real` - Get the constant value or uncertainty. + +### Status + +Experimental + +### Description + +Convert a [[stdlib_codata_type(module):stdlib_codata_type(type)]] to a real. +**Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. + +### Syntax + +`r = ` [[stdlib_codata_type(module):to_real(interface)]] `(c, mold [, uncertainty])` + +### Arguments + +`c`: argument has `intent(in) ` and shall be of type [[stdlib_codata_type(module):stdlib_codata_type(type)]]. + +`mold`: argument has `intent(in)` and shall be of `real` type. +**Note**: The type of the `mold` argument defines the type of the result. + +`uncertainty` (optional): argument has `intent(in)` and shall be of `logical` type. +It specifies if the uncertainty needs to be returned instead of the value. Default to `.false.`. + +### Return value + +Returns a scalar of `real` type which is either the value or the uncertainty of a codata constant. ## Example diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index fdbd71140..5a27a4ab7 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -51,7 +51,7 @@ elemental pure real(${k}$) function to_real_${k}$(self, mold, uncertainty) resul class(codata_constant_type), intent(in) :: self !! Codata constant real(${k}$), intent(in) :: mold !! dummy argument to disambiguate at compile time the generic interface - logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required + logical, intent(in), optional :: uncertainty !! Set to true if the uncertainty is required. Default to .false.. !! logical :: u From 9821c0db276da07167cbdb253465126cd7d6d41f Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 12:23:59 +0200 Subject: [PATCH 098/144] Fix underscores in 2 variables. - molar volume of ideal gas at 273.15 K and 101.325 KPa - Loschmidt constant at 273.15 K and 101.325K Pa --- src/stdlib_codata.f90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/stdlib_codata.f90 b/src/stdlib_codata.f90 index 050c68b52..5b6bb48be 100644 --- a/src/stdlib_codata.f90 +++ b/src/stdlib_codata.f90 @@ -956,12 +956,12 @@ module stdlib_codata 1.920155716e-10_dp, 0.000000032e-10_dp, & "m") !! lattice spacing of ideal Si (220) -type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_100_KPA = & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_273_15_K_100_KPA = & codata_constant_type("Loschmidt constant (273.15 K, 100 kPa)", & 2.651645804e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 100 kPa) -type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_27315_K_101325_KPA = & +type(codata_constant_type), parameter, public :: LOSCHMIDT_CONSTANT_273_15_K_101_325_KPA = & codata_constant_type("Loschmidt constant (273.15 K, 101.325 kPa)", & 2.686780111e25_dp, 0.0_dp, & "m^-3") !! Loschmidt constant (273.15 K, 101.325 kPa) @@ -996,12 +996,12 @@ module stdlib_codata 3.990312712e-10_dp, 0.0_dp, & "J Hz^-1 mol^-1") !! molar Planck constant -type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_100_KPA = & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_100_KPA = & codata_constant_type("molar volume of ideal gas (273.15 K, 100 kPa)", & 22.71095464e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 100 kPa) -type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_27315_K_101325_KPA = & +type(codata_constant_type), parameter, public :: MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA = & codata_constant_type("molar volume of ideal gas (273.15 K, 101.325 kPa)", & 22.41396954e-3_dp, 0.0_dp, & "m^3 mol^-1") !! molar volume of ideal gas (273.15 K, 101.325 kPa) @@ -1516,7 +1516,7 @@ module stdlib_codata -1.15170753496_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 100 kPa) -type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101325_KPA = & +type(codata_constant_type), parameter, public :: SACKUR_TETRODE_CONSTANT_1_K_101_325_KPA = & codata_constant_type("Sackur-Tetrode constant (1 K, 101.325 kPa)", & -1.16487052149_dp, 0.00000000047_dp, & "") !! Sackur-Tetrode constant (1 K, 101.325 kPa) From add6ff5b69dae8824a234f589d04b28307e8b0bd Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 12:24:35 +0200 Subject: [PATCH 099/144] Add tests for codata constants (values and uncertainties). --- test/constants/test_constants.f90 | 408 ++++++++++++++++++++++++++++++ 1 file changed, 408 insertions(+) create mode 100644 test/constants/test_constants.f90 diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 new file mode 100644 index 000000000..aee8209d7 --- /dev/null +++ b/test/constants/test_constants.f90 @@ -0,0 +1,408 @@ +module test_constants + !! Test constant values only for double precision. + use testdrive, only : new_unittest, unittest_type, error_type, check + use stdlib_kinds, only : dp, int32 + use stdlib_codata, only: YEAR, & + ALPHA_PARTICLE_ELECTRON_MASS_RATIO, & + ALPHA_PARTICLE_MASS, & + ATOMIC_MASS_CONSTANT, & + AVOGADRO_CONSTANT, & + BOLTZMANN_CONSTANT, & + ELECTRON_VOLT, & + ELEMENTARY_CHARGE, & + FARADAY_CONSTANT, & + MOLAR_MASS_CONSTANT,& + MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA, & + PLANCK_CONSTANT,& + SPEED_OF_LIGHT_IN_VACUUM,& + STANDARD_ACCELERATION_OF_GRAVITY + + public :: collect_constants + +contains + +!> Collect all exported unit tests +subroutine collect_constants(testsuite) + implicit none + !> Collection of tests + type(unittest_type), allocatable, intent(out) :: testsuite(:) + testsuite = [new_unittest("YEAR", test_year), & + new_unittest("ALPHA_PARTICLE_ELECTRON_MASS_RATIO", test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO),& + new_unittest("ALPHA_PARTICLE_MASS", test_ALPHA_PARTICLE_MASS),& + new_unittest("ATOMIC_MASS_CONSTANT", test_ATOMIC_MASS_CONSTANT),& + new_unittest("AVOGADRO_CONSTANT", test_AVOGADRO_CONSTANT),& + new_unittest("BOLTZMANN_CONSTANT", test_BOLTZMANN_CONSTANT),& + new_unittest("ELECTRON_VOLT", test_ELECTRON_VOLT),& + new_unittest("ELEMENTARY_CHARGE", test_ELEMENTARY_CHARGE),& + new_unittest("FARADAY_CONSTANT", test_FARADAY_CONSTANT),& + new_unittest("MOLAR_MASS_CONSTANT", test_MOLAR_MASS_CONSTANT),& + new_unittest("MOLAR_VOLUME_OF_IDEAL_GAS__273_15K__101_325_KPA", test_MOLAR_VOLUME_NTP),& + new_unittest("PLANCK_CONSTANT", test_PLANCK_CONSTANT),& + new_unittest("SPEED_OF_LIGHT_IN_VACUUM", test_SPEED_OF_LIGHT),& + new_unittest("STANDARD_ACCELERATION_OF_GRAVITY", test_STANDARD_ACCELERATION_OF_GRAVITY),& + new_unittest("U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO", test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO),& + new_unittest("U_ALPHA_PARTICLE_MASS", test_U_ALPHA_PARTICLE_MASS),& + new_unittest("U_ATOMIC_MASS_CONSTANT", test_U_ATOMIC_MASS_CONSTANT),& + new_unittest("U_AVOGADRO_CONSTANT", test_U_AVOGADRO_CONSTANT),& + new_unittest("U_BOLTZMANN_CONSTANT", test_U_BOLTZMANN_CONSTANT),& + new_unittest("U_ELECTRON_VOLT", test_U_ELECTRON_VOLT),& + new_unittest("U_ELEMENTARY_CHARGE", test_U_ELEMENTARY_CHARGE),& + new_unittest("U_FARADAY_CONSTANT", test_U_FARADAY_CONSTANT),& + new_unittest("U_MOLAR_MASS_CONSTANT", test_U_MOLAR_MASS_CONSTANT),& + new_unittest("U_MOLAR_VOLUME_OF_IDEAL_GAS__273_15K__101_325_KPA", test_U_MOLAR_VOLUME_NTP),& + new_unittest("U_PLANCK_CONSTANT", test_U_PLANCK_CONSTANT),& + new_unittest("U_SPEED_OF_LIGHT_IN_VACUUM", test_U_SPEED_OF_LIGHT),& + new_unittest("U_STANDARD_ACCELERATION_OF_GRAVITY", test_U_STANDARD_ACCELERATION_OF_GRAVITY)] +end subroutine + +subroutine test_year(error) + implicit none + type(error_type), allocatable, intent(out) :: error + + integer(int32) :: value, expected, diff + + expected = 2022 + value = YEAR + diff = expected - value + call check(error, diff, 0) + if (allocated(error)) return +end subroutine + +subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 7294.29954171d0 * fac + value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ALPHA_PARTICLE_MASS(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d27 + expected = 6.6446573450d-27 * fac + value = ALPHA_PARTICLE_MASS%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ATOMIC_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d27 + expected = 1.66053906892d-27 * fac + value = ATOMIC_MASS_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_AVOGADRO_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d-23 + expected = 6.02214076d23 * fac + value = AVOGADRO_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_BOLTZMANN_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d23 + expected = 1.380649d-23 * fac + value = BOLTZMANN_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ELECTRON_VOLT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d19 + expected = 1.602176634d-19 * fac + value = ELECTRON_VOLT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_ELEMENTARY_CHARGE(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d19 + expected = 1.602176634d-19 * fac + value = ELEMENTARY_CHARGE%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_FARADAY_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 96485.33212d0 * fac + value = FARADAY_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_MOLAR_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d3 + expected = 1.00000000105d-3 * fac + value = MOLAR_MASS_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_MOLAR_VOLUME_NTP(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d3 + expected = 22.41396954d-3 * fac + value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_PLANCK_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d34 + expected = 6.62607015d-34 * fac + value = PLANCK_CONSTANT%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_SPEED_OF_LIGHT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 299792458.0d0 * fac + value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 9.80665d0 * fac + value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d7 + expected = 0.00000017d0 * fac + value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ALPHA_PARTICLE_MASS(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d36 + expected = 0.0000000021d-27 * fac + value = ALPHA_PARTICLE_MASS%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ATOMIC_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d37 + expected = 0.00000000052d-27 * fac + value = ATOMIC_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_AVOGADRO_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = AVOGADRO_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_BOLTZMANN_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = BOLTZMANN_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ELECTRON_VOLT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = ELECTRON_VOLT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_ELEMENTARY_CHARGE(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = ELEMENTARY_CHARGE%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_FARADAY_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = FARADAY_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_MOLAR_MASS_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d13 + expected = 0.00000000031d-3 * fac + value = MOLAR_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_MOLAR_VOLUME_NTP(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_PLANCK_CONSTANT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = PLANCK_CONSTANT%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_SPEED_OF_LIGHT(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) + implicit none + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff, fac + fac = 1.0d0 + expected = 0.0d0 * fac + value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac, uncertainty=.true.) * fac + diff = expected - value + call check(error, diff, 0.0d0) + if (allocated(error)) return +end subroutine + +end module test_constants + +program tester + use iso_fortran_env + use testdrive, only : run_testsuite, new_testsuite, testsuite_type + use test_constants, only : collect_constants + implicit none + type(testsuite_type), allocatable :: testsuites(:) + character(len=*), parameter :: fmt = '("#", *(1x, a))' + integer :: stat, is + + stat = 0 + + testsuites = [new_testsuite("constants", collect_constants)] + + do is = 1, size(testsuites) + write(error_unit, fmt) "Testing:", testsuites(is)%name + call run_testsuite(testsuites(is)%collect, error_unit, stat) + end do + + if (stat > 0) then + write(error_unit, '(i0, 1x, a)') stat, "test(s) failed!" + error stop + end if + +end program \ No newline at end of file From 5c496051f05a1f7c2447c2f71af804efe975afb0 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Mon, 13 May 2024 12:25:15 +0200 Subject: [PATCH 100/144] Set cmake files for the tests of the codata constants. --- test/CMakeLists.txt | 1 + test/constants/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 test/constants/CMakeLists.txt diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 857aaa142..4d83548db 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -13,6 +13,7 @@ endmacro(ADDTEST) add_subdirectory(array) add_subdirectory(ascii) add_subdirectory(bitsets) +add_subdirectory(constants) add_subdirectory(hash_functions) add_subdirectory(hash_functions_perf) add_subdirectory(hashmaps) diff --git a/test/constants/CMakeLists.txt b/test/constants/CMakeLists.txt new file mode 100644 index 000000000..0e0b0efd8 --- /dev/null +++ b/test/constants/CMakeLists.txt @@ -0,0 +1 @@ +ADDTEST(constants) From 1c6fc23caee34ff162fd9132b53ba406e1c2ab6b Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 16 May 2024 05:16:53 +0200 Subject: [PATCH 101/144] Fix format for the print function. --- src/stdlib_codata_type.fypp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stdlib_codata_type.fypp b/src/stdlib_codata_type.fypp index 5a27a4ab7..1df032bef 100644 --- a/src/stdlib_codata_type.fypp +++ b/src/stdlib_codata_type.fypp @@ -39,7 +39,7 @@ contains subroutine print(self) !! Print out the constant's name, value, uncertainty and unit. class(codata_constant_type), intent(in) :: self - print "(A64, SP, "//FMT_REAL_DP//" A5, "//FMT_REAL_DP//", X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit + print "(A64, SP, "//FMT_REAL_DP//", A5, "//FMT_REAL_DP//", 1X, A32)", self%name, self%value, "+/-", self%uncertainty, self%unit end subroutine #:for k in KINDS From 340454dbd69df3416b5f9c1e6eccb3f0d39ecf72 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 16 May 2024 14:36:10 +0200 Subject: [PATCH 102/144] Fix reference to codata_constant_type in documentation. --- doc/specs/stdlib_constants.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index a2e50c8f5..3ce426777 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -45,7 +45,7 @@ Experimental ### Description -Convert a [[stdlib_codata_type(module):stdlib_codata_type(type)]] to a real. +Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a real. **Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. ### Syntax @@ -54,7 +54,7 @@ Convert a [[stdlib_codata_type(module):stdlib_codata_type(type)]] to a real. ### Arguments -`c`: argument has `intent(in) ` and shall be of type [[stdlib_codata_type(module):stdlib_codata_type(type)]]. +`c`: argument has `intent(in) ` and shall be of type [[stdlib_codata_type(module):codata_constant_type(type)]]. `mold`: argument has `intent(in)` and shall be of `real` type. **Note**: The type of the `mold` argument defines the type of the result. From d07d9c89b6b615731d942eef0585be3938e51b32 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Thu, 16 May 2024 14:37:26 +0200 Subject: [PATCH 103/144] Fix link to the repo where the python script for generating the codata constants. --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 3ce426777..0508392dc 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -14,7 +14,7 @@ The [[stdlib_constants]] module provides mathematical constants and the most com The [[stdlib_codata(module)]] module defines all codata (physical) constants as derived type. The module is automatically generated with a simple -[parser written in Python](https://github.com/MilanSkocic/codata/tree/dev/stdlib) +[parser written in Python](https://github.com/MilanSkocic/codata/) The latest codata constants were released in 2022 by the [NIST](http://physics.nist.gov/constants) All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. From c62e526a31e091828c647fcaaaf9868baad848ba Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sat, 18 May 2024 07:46:50 +0200 Subject: [PATCH 104/144] Fix typo. --- doc/specs/stdlib_constants.md | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 0508392dc..e92f0e5bc 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -20,7 +20,6 @@ All values for the codata constants are provided as double precision reals. The names are quite long and can be aliased with shorter names. The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defines: -procedures. * 4 members: From 26ff73c9d4e833ca05598bed565730fcb7c4a595 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:40:12 +0200 Subject: [PATCH 105/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index e92f0e5bc..4e7f5df23 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -30,7 +30,7 @@ The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defin * 2 type-bound procedures: - * `print` for print the values of the constant members. + * `print`: to print the values of the constant members; * `to_real` for getting the value or the uncertainty to the desired precision. A module level interface [[stdlib_codata_type(module):to_real(interface)]] is From 35b5da62be02a57284e9c1aab22610ead5f3873c Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:40:29 +0200 Subject: [PATCH 106/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 4e7f5df23..f413f98b8 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -31,7 +31,7 @@ The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defin * 2 type-bound procedures: * `print`: to print the values of the constant members; - * `to_real` for getting the value or the uncertainty to the desired precision. + * `to_real`: to get the value or the uncertainty to the desired precision. A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for getting the constant value or uncertainty of a constant. From de867cc091f7d492d120622203aebee017402146 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:41:13 +0200 Subject: [PATCH 107/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index f413f98b8..0eeab4c67 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -36,7 +36,7 @@ The derived type [[stdlib_codata_type(module):codata_constant_type(type)]] defin A module level interface [[stdlib_codata_type(module):to_real(interface)]] is available for getting the constant value or uncertainty of a constant. -## `to_real` - Get the constant value or uncertainty. +## `to_real` - Get the constant value or its uncertainty. ### Status From 5775ff745f99df75a20916f146d8ebafd7a6aa19 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:41:50 +0200 Subject: [PATCH 108/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 0eeab4c67..585c2a556 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -44,7 +44,7 @@ Experimental ### Description -Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a real. +Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a `real` (at least `sp`, or `dp`) scalar. **Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. ### Syntax From d999a01ab4d5f1dc6afde91fcdc516b0a6ce6e55 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:42:16 +0200 Subject: [PATCH 109/144] Update doc/specs/stdlib_constants.md Co-authored-by: Jeremie Vandenplas --- doc/specs/stdlib_constants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 585c2a556..178a9e854 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -45,7 +45,7 @@ Experimental ### Description Convert a [[stdlib_codata_type(module):codata_constant_type(type)]] to a `real` (at least `sp`, or `dp`) scalar. -**Warning**: Some constants cannot be converted to simple precision reals due to the values of the exponents. +**Warning**: Some constants cannot be converted to single precision `sp` reals due to the value of the exponents. ### Syntax From 304519ac19c7ea838b3abf8b3dbee03663d2ea20 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:43:01 +0200 Subject: [PATCH 110/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index aee8209d7..937d5c286 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -16,7 +16,7 @@ module test_constants PLANCK_CONSTANT,& SPEED_OF_LIGHT_IN_VACUUM,& STANDARD_ACCELERATION_OF_GRAVITY - + implicit none public :: collect_constants contains From 7bfcd510e062e9794c9dfeffddd09a71c3984be1 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:43:30 +0200 Subject: [PATCH 111/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 937d5c286..4a9f65d68 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -17,6 +17,7 @@ module test_constants SPEED_OF_LIGHT_IN_VACUUM,& STANDARD_ACCELERATION_OF_GRAVITY implicit none + private public :: collect_constants contains From 7a9437caf6f5f091812a8ddf811e999f2901b8f4 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:43:57 +0200 Subject: [PATCH 112/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 4a9f65d68..2957a289a 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -24,7 +24,6 @@ module test_constants !> Collect all exported unit tests subroutine collect_constants(testsuite) - implicit none !> Collection of tests type(unittest_type), allocatable, intent(out) :: testsuite(:) testsuite = [new_unittest("YEAR", test_year), & From 98427e451c79e8f8a5c9fbd47e564e657fbbc8b4 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:51:29 +0200 Subject: [PATCH 113/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 2957a289a..cf87dc293 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -56,7 +56,6 @@ subroutine collect_constants(testsuite) end subroutine subroutine test_year(error) - implicit none type(error_type), allocatable, intent(out) :: error integer(int32) :: value, expected, diff From c751fd0614e2e0732b12cb6f1908fc62ae57a195 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:52:09 +0200 Subject: [PATCH 114/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index cf87dc293..0e39a7496 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -68,7 +68,6 @@ subroutine test_year(error) end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 415b3b6c09e9febb27f2fd7158d4b8a8fce7127a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:53:05 +0200 Subject: [PATCH 115/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 0e39a7496..273006601 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -79,7 +79,6 @@ subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d27 From 9a120f51e0ca6f46e1d99879a45cd8c63cb76aeb Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:54:06 +0200 Subject: [PATCH 116/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 273006601..7d380c746 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -90,7 +90,6 @@ subroutine test_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d27 From fa6bd80d6651aa796dbd642bd5cecb2d42ece9f2 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:56:00 +0200 Subject: [PATCH 117/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 7d380c746..41eb81c02 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -101,7 +101,6 @@ subroutine test_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_AVOGADRO_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d-23 From f729f89f1809e8ba7f4010898345ffe093553976 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:56:33 +0200 Subject: [PATCH 118/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 41eb81c02..57273382f 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -112,7 +112,6 @@ subroutine test_AVOGADRO_CONSTANT(error) end subroutine subroutine test_BOLTZMANN_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d23 From 852a02af02466fc76f37a59b4af9c43079d0b1fc Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:56:57 +0200 Subject: [PATCH 119/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 57273382f..ecf4dea08 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -123,7 +123,6 @@ subroutine test_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_ELECTRON_VOLT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d19 From ccaa29f5fdda23a171d6d962e85c4bf81d599898 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:57:20 +0200 Subject: [PATCH 120/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index ecf4dea08..f37469f2c 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -134,7 +134,6 @@ subroutine test_ELECTRON_VOLT(error) end subroutine subroutine test_ELEMENTARY_CHARGE(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d19 From ba133285092d85ddc5adcbeee380661ce5368132 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:58:17 +0200 Subject: [PATCH 121/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index f37469f2c..7a384f482 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -145,7 +145,6 @@ subroutine test_ELEMENTARY_CHARGE(error) end subroutine subroutine test_FARADAY_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 03171233ef7c78da0faf1cf11c457ad451587a7d Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:58:43 +0200 Subject: [PATCH 122/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 7a384f482..b80221b25 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -156,7 +156,6 @@ subroutine test_FARADAY_CONSTANT(error) end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d3 From d1e1b740cba52a5496db981c518f3291e0973a01 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:59:09 +0200 Subject: [PATCH 123/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index b80221b25..1ddeebe1e 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -167,7 +167,6 @@ subroutine test_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_MOLAR_VOLUME_NTP(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d3 From 6ac63333b0e3c69abe0707c51e10567b8bf0d18d Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 06:59:41 +0200 Subject: [PATCH 124/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 1ddeebe1e..5dd3672dd 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -178,7 +178,6 @@ subroutine test_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_PLANCK_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d34 From a413e24e54da1c95a33be39b64c261684838ff2a Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:00:02 +0200 Subject: [PATCH 125/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 5dd3672dd..66fc9d397 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -189,7 +189,6 @@ subroutine test_PLANCK_CONSTANT(error) end subroutine subroutine test_SPEED_OF_LIGHT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 32a39200db5be4d6d1fc4503485f8ca5e406ac75 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:00:31 +0200 Subject: [PATCH 126/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 66fc9d397..6d7963645 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -200,7 +200,6 @@ subroutine test_SPEED_OF_LIGHT(error) end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 613120530e44be11a280a73a48da0a4ac9c26b71 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:00:51 +0200 Subject: [PATCH 127/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 6d7963645..e3c95b053 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -211,7 +211,6 @@ subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d7 From 62d64734732f4b5cf18d310c10268d37b22bb038 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:01:11 +0200 Subject: [PATCH 128/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index e3c95b053..6090decfd 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -222,7 +222,6 @@ subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d36 From 28e3760e4c1d2f3ddfe3f7a24203b0f5e36a6388 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:01:40 +0200 Subject: [PATCH 129/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 6090decfd..13adbf414 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -233,7 +233,6 @@ subroutine test_U_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d37 From c5c1d5dccc4862106735e4a6023f7565122bb3ed Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:02:23 +0200 Subject: [PATCH 130/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 13adbf414..dd62fbe56 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -244,7 +244,6 @@ subroutine test_U_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_U_AVOGADRO_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From acd099cf21dcd622c830174ff47243a99f224581 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:03:02 +0200 Subject: [PATCH 131/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index dd62fbe56..95d78da74 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -255,7 +255,6 @@ subroutine test_U_AVOGADRO_CONSTANT(error) end subroutine subroutine test_U_BOLTZMANN_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 81d987f2a942e02951306b6f97cf6697164e1b6d Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:03:23 +0200 Subject: [PATCH 132/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 95d78da74..bbec093f4 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -266,7 +266,6 @@ subroutine test_U_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_U_ELECTRON_VOLT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From e75bb8a06e6212edc4036917b5670fdd3e520401 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:04:35 +0200 Subject: [PATCH 133/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index bbec093f4..e9fcdd846 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -277,7 +277,6 @@ subroutine test_U_ELECTRON_VOLT(error) end subroutine subroutine test_U_ELEMENTARY_CHARGE(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 262595ce7410fe662fee067981de6ec5517f329c Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:05:33 +0200 Subject: [PATCH 134/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index e9fcdd846..73d9854a8 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -288,7 +288,6 @@ subroutine test_U_ELEMENTARY_CHARGE(error) end subroutine subroutine test_U_FARADAY_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From b9a16a6ae09ed105f57d387bd16cd785bd4f1648 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:06:41 +0200 Subject: [PATCH 135/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 73d9854a8..35e3c2a9c 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -299,7 +299,6 @@ subroutine test_U_FARADAY_CONSTANT(error) end subroutine subroutine test_U_MOLAR_MASS_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d13 From bac6e47f73a3bef7f65695b4878637fe95956ef0 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:07:25 +0200 Subject: [PATCH 136/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 35e3c2a9c..1d796763a 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -310,7 +310,6 @@ subroutine test_U_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_U_MOLAR_VOLUME_NTP(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From bbcc33e9009cfa060cd28fc39a2620cd37ac9a95 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:08:40 +0200 Subject: [PATCH 137/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 1d796763a..22affb36c 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -321,7 +321,6 @@ subroutine test_U_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_U_PLANCK_CONSTANT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From a79e01f7c01b4ae82c1d00b54b455e8ec3b7f950 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:09:07 +0200 Subject: [PATCH 138/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 22affb36c..a046b0651 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -332,7 +332,6 @@ subroutine test_U_PLANCK_CONSTANT(error) end subroutine subroutine test_U_SPEED_OF_LIGHT(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From a184072f1e08f225bebce5cd6fc7f154bd022fb3 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:09:26 +0200 Subject: [PATCH 139/144] Update test/constants/test_constants.f90 Co-authored-by: Jeremie Vandenplas --- test/constants/test_constants.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index a046b0651..399037460 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -343,7 +343,6 @@ subroutine test_U_SPEED_OF_LIGHT(error) end subroutine subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) - implicit none type(error_type), allocatable, intent(out) :: error real(dp) :: value, expected, diff, fac fac = 1.0d0 From 5948700fb7f48bf7b5ba8795aff3b53ae4a715ff Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Sun, 19 May 2024 07:32:00 +0200 Subject: [PATCH 140/144] Add fac as module level variable. --- test/constants/test_constants.f90 | 115 +++++++++++++++--------------- 1 file changed, 58 insertions(+), 57 deletions(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 399037460..cadafe94b 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -18,6 +18,7 @@ module test_constants STANDARD_ACCELERATION_OF_GRAVITY implicit none private + real(dp) :: fac public :: collect_constants contains @@ -56,10 +57,10 @@ subroutine collect_constants(testsuite) end subroutine subroutine test_year(error) - type(error_type), allocatable, intent(out) :: error - + type(error_type), allocatable, intent(out) :: error + integer(int32) :: value, expected, diff - + expected = 2022 value = YEAR diff = expected - value @@ -68,8 +69,8 @@ subroutine test_year(error) end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 7294.29954171d0 * fac value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac) * fac @@ -79,8 +80,8 @@ subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d27 expected = 6.6446573450d-27 * fac value = ALPHA_PARTICLE_MASS%to_real(fac) * fac @@ -90,8 +91,8 @@ subroutine test_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d27 expected = 1.66053906892d-27 * fac value = ATOMIC_MASS_CONSTANT%to_real(fac) * fac @@ -101,8 +102,8 @@ subroutine test_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_AVOGADRO_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d-23 expected = 6.02214076d23 * fac value = AVOGADRO_CONSTANT%to_real(fac) * fac @@ -112,8 +113,8 @@ subroutine test_AVOGADRO_CONSTANT(error) end subroutine subroutine test_BOLTZMANN_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d23 expected = 1.380649d-23 * fac value = BOLTZMANN_CONSTANT%to_real(fac) * fac @@ -123,8 +124,8 @@ subroutine test_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_ELECTRON_VOLT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d19 expected = 1.602176634d-19 * fac value = ELECTRON_VOLT%to_real(fac) * fac @@ -134,8 +135,8 @@ subroutine test_ELECTRON_VOLT(error) end subroutine subroutine test_ELEMENTARY_CHARGE(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d19 expected = 1.602176634d-19 * fac value = ELEMENTARY_CHARGE%to_real(fac) * fac @@ -145,8 +146,8 @@ subroutine test_ELEMENTARY_CHARGE(error) end subroutine subroutine test_FARADAY_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 96485.33212d0 * fac value = FARADAY_CONSTANT%to_real(fac) * fac @@ -156,8 +157,8 @@ subroutine test_FARADAY_CONSTANT(error) end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d3 expected = 1.00000000105d-3 * fac value = MOLAR_MASS_CONSTANT%to_real(fac) * fac @@ -167,8 +168,8 @@ subroutine test_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_MOLAR_VOLUME_NTP(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d3 expected = 22.41396954d-3 * fac value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac) * fac @@ -178,8 +179,8 @@ subroutine test_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_PLANCK_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d34 expected = 6.62607015d-34 * fac value = PLANCK_CONSTANT%to_real(fac) * fac @@ -189,8 +190,8 @@ subroutine test_PLANCK_CONSTANT(error) end subroutine subroutine test_SPEED_OF_LIGHT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 299792458.0d0 * fac value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac) * fac @@ -200,19 +201,19 @@ subroutine test_SPEED_OF_LIGHT(error) end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 9.80665d0 * fac - value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac + value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac diff = expected - value call check(error, diff, 0.0d0) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d7 expected = 0.00000017d0 * fac value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac, uncertainty=.true.) * fac @@ -222,8 +223,8 @@ subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d36 expected = 0.0000000021d-27 * fac value = ALPHA_PARTICLE_MASS%to_real(fac, uncertainty=.true.) * fac @@ -233,8 +234,8 @@ subroutine test_U_ALPHA_PARTICLE_MASS(error) end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d37 expected = 0.00000000052d-27 * fac value = ATOMIC_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -244,8 +245,8 @@ subroutine test_U_ATOMIC_MASS_CONSTANT(error) end subroutine subroutine test_U_AVOGADRO_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = AVOGADRO_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -255,8 +256,8 @@ subroutine test_U_AVOGADRO_CONSTANT(error) end subroutine subroutine test_U_BOLTZMANN_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = BOLTZMANN_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -266,8 +267,8 @@ subroutine test_U_BOLTZMANN_CONSTANT(error) end subroutine subroutine test_U_ELECTRON_VOLT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = ELECTRON_VOLT%to_real(fac, uncertainty=.true.) * fac @@ -277,8 +278,8 @@ subroutine test_U_ELECTRON_VOLT(error) end subroutine subroutine test_U_ELEMENTARY_CHARGE(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = ELEMENTARY_CHARGE%to_real(fac, uncertainty=.true.) * fac @@ -288,8 +289,8 @@ subroutine test_U_ELEMENTARY_CHARGE(error) end subroutine subroutine test_U_FARADAY_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = FARADAY_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -299,8 +300,8 @@ subroutine test_U_FARADAY_CONSTANT(error) end subroutine subroutine test_U_MOLAR_MASS_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d13 expected = 0.00000000031d-3 * fac value = MOLAR_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -310,8 +311,8 @@ subroutine test_U_MOLAR_MASS_CONSTANT(error) end subroutine subroutine test_U_MOLAR_VOLUME_NTP(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac, uncertainty=.true.) * fac @@ -321,8 +322,8 @@ subroutine test_U_MOLAR_VOLUME_NTP(error) end subroutine subroutine test_U_PLANCK_CONSTANT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = PLANCK_CONSTANT%to_real(fac, uncertainty=.true.) * fac @@ -332,8 +333,8 @@ subroutine test_U_PLANCK_CONSTANT(error) end subroutine subroutine test_U_SPEED_OF_LIGHT(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac, uncertainty=.true.) * fac @@ -343,8 +344,8 @@ subroutine test_U_SPEED_OF_LIGHT(error) end subroutine subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) - type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff, fac + type(error_type), allocatable, intent(out) :: error + real(dp) :: value, expected, diff fac = 1.0d0 expected = 0.0d0 * fac value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac, uncertainty=.true.) * fac @@ -378,4 +379,4 @@ program tester error stop end if -end program \ No newline at end of file +end program From 18989aae11a3f2e0548a454e9e1226fec6eb9e18 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Tue, 21 May 2024 06:52:17 +0200 Subject: [PATCH 141/144] Direct comparison for tests. --- test/constants/test_constants.f90 | 191 +++++------------------------- 1 file changed, 27 insertions(+), 164 deletions(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index cadafe94b..9ab056cf2 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -18,7 +18,6 @@ module test_constants STANDARD_ACCELERATION_OF_GRAVITY implicit none private - real(dp) :: fac public :: collect_constants contains @@ -58,299 +57,163 @@ subroutine collect_constants(testsuite) subroutine test_year(error) type(error_type), allocatable, intent(out) :: error - - integer(int32) :: value, expected, diff - - expected = 2022 - value = YEAR - diff = expected - value - call check(error, diff, 0) + call check(error, 2022 - YEAR, 0) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 7294.29954171d0 * fac - value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 7294.29954171_dp - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d27 - expected = 6.6446573450d-27 * fac - value = ALPHA_PARTICLE_MASS%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 6.6446573450d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d27 - expected = 1.66053906892d-27 * fac - value = ATOMIC_MASS_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.66053906892d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_AVOGADRO_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d-23 - expected = 6.02214076d23 * fac - value = AVOGADRO_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 6.02214076d23 - AVOGADRO_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_BOLTZMANN_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d23 - expected = 1.380649d-23 * fac - value = BOLTZMANN_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.380649d-23 - BOLTZMANN_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ELECTRON_VOLT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d19 - expected = 1.602176634d-19 * fac - value = ELECTRON_VOLT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.602176634d-19 - ELECTRON_VOLT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_ELEMENTARY_CHARGE(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d19 - expected = 1.602176634d-19 * fac - value = ELEMENTARY_CHARGE%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.602176634d-19 - ELEMENTARY_CHARGE%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_FARADAY_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 96485.33212d0 * fac - value = FARADAY_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 96485.33212d0 - FARADAY_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d3 - expected = 1.00000000105d-3 * fac - value = MOLAR_MASS_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 1.00000000105d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_MOLAR_VOLUME_NTP(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d3 - expected = 22.41396954d-3 * fac - value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 22.41396954d-3 - MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_PLANCK_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d34 - expected = 6.62607015d-34 * fac - value = PLANCK_CONSTANT%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 6.62607015d-34 - PLANCK_CONSTANT%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_SPEED_OF_LIGHT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 299792458.0d0 * fac - value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 299792458.0d0 - SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 9.80665d0 * fac - value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 9.80665d0 - STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d7 - expected = 0.00000017d0 * fac - value = ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.00000017d0 - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d36 - expected = 0.0000000021d-27 * fac - value = ALPHA_PARTICLE_MASS%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.0000000021d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d37 - expected = 0.00000000052d-27 * fac - value = ATOMIC_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.00000000052d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_AVOGADRO_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = AVOGADRO_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, AVOGADRO_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_BOLTZMANN_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = BOLTZMANN_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, BOLTZMANN_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ELECTRON_VOLT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = ELECTRON_VOLT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, ELECTRON_VOLT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_ELEMENTARY_CHARGE(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = ELEMENTARY_CHARGE%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, ELEMENTARY_CHARGE%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_FARADAY_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = FARADAY_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, FARADAY_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d13 - expected = 0.00000000031d-3 * fac - value = MOLAR_MASS_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, 0.00000000031d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_MOLAR_VOLUME_NTP(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_PLANCK_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = PLANCK_CONSTANT%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, PLANCK_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_SPEED_OF_LIGHT(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = SPEED_OF_LIGHT_IN_VACUUM%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine subroutine test_U_STANDARD_ACCELERATION_OF_GRAVITY(error) type(error_type), allocatable, intent(out) :: error - real(dp) :: value, expected, diff - fac = 1.0d0 - expected = 0.0d0 * fac - value = STANDARD_ACCELERATION_OF_GRAVITY%to_real(fac, uncertainty=.true.) * fac - diff = expected - value - call check(error, diff, 0.0d0) + call check(error, STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) if (allocated(error)) return end subroutine From caa503466ca6e4ccf13ab400a1a55ed561d7bb43 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Tue, 21 May 2024 08:04:30 +0200 Subject: [PATCH 142/144] Fix arguments order in call to check function. --- test/constants/test_constants.f90 | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/test/constants/test_constants.f90 b/test/constants/test_constants.f90 index 9ab056cf2..b61c140a9 100644 --- a/test/constants/test_constants.f90 +++ b/test/constants/test_constants.f90 @@ -57,103 +57,103 @@ subroutine collect_constants(testsuite) subroutine test_year(error) type(error_type), allocatable, intent(out) :: error - call check(error, 2022 - YEAR, 0) + call check(error, YEAR, 2022) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - call check(error, 7294.29954171_dp - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp), 0.0_dp) + call check(error, ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp), 7294.29954171_dp) if (allocated(error)) return end subroutine subroutine test_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - call check(error, 6.6446573450d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp), 0.0_dp) + call check(error, ALPHA_PARTICLE_MASS%to_real(1.0_dp), 6.6446573450d-27) if (allocated(error)) return end subroutine subroutine test_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.66053906892d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, ATOMIC_MASS_CONSTANT%to_real(1.0_dp), 1.66053906892d-27) if (allocated(error)) return end subroutine subroutine test_AVOGADRO_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 6.02214076d23 - AVOGADRO_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, AVOGADRO_CONSTANT%to_real(1.0_dp), 6.02214076d23) if (allocated(error)) return end subroutine subroutine test_BOLTZMANN_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.380649d-23 - BOLTZMANN_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, BOLTZMANN_CONSTANT%to_real(1.0_dp), 1.380649d-23) if (allocated(error)) return end subroutine subroutine test_ELECTRON_VOLT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.602176634d-19 - ELECTRON_VOLT%to_real(1.0_dp), 0.0_dp) + call check(error, ELECTRON_VOLT%to_real(1.0_dp), 1.602176634d-19) if (allocated(error)) return end subroutine subroutine test_ELEMENTARY_CHARGE(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.602176634d-19 - ELEMENTARY_CHARGE%to_real(1.0_dp), 0.0_dp) + call check(error, ELEMENTARY_CHARGE%to_real(1.0_dp), 1.602176634d-19) if (allocated(error)) return end subroutine subroutine test_FARADAY_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 96485.33212d0 - FARADAY_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, FARADAY_CONSTANT%to_real(1.0_dp), 96485.33212d0) if (allocated(error)) return end subroutine subroutine test_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 1.00000000105d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, MOLAR_MASS_CONSTANT%to_real(1.0_dp), 1.00000000105d-3) if (allocated(error)) return end subroutine subroutine test_MOLAR_VOLUME_NTP(error) type(error_type), allocatable, intent(out) :: error - call check(error, 22.41396954d-3 - MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp), 0.0_dp) + call check(error, MOLAR_VOLUME_OF_IDEAL_GAS_273_15_K_101_325_KPA%to_real(1.0_dp), 22.41396954d-3) if (allocated(error)) return end subroutine subroutine test_PLANCK_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 6.62607015d-34 - PLANCK_CONSTANT%to_real(1.0_dp), 0.0_dp) + call check(error, PLANCK_CONSTANT%to_real(1.0_dp), 6.62607015d-34) if (allocated(error)) return end subroutine subroutine test_SPEED_OF_LIGHT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 299792458.0d0 - SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp), 0.0_dp) + call check(error, SPEED_OF_LIGHT_IN_VACUUM%to_real(1.0_dp), 299792458.0d0) if (allocated(error)) return end subroutine subroutine test_STANDARD_ACCELERATION_OF_GRAVITY(error) type(error_type), allocatable, intent(out) :: error - call check(error, 9.80665d0 - STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp), 0.0_dp) + call check(error, STANDARD_ACCELERATION_OF_GRAVITY%to_real(1.0_dp), 9.80665d0) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_ELECTRON_MASS_RATIO(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.00000017d0 - ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, ALPHA_PARTICLE_ELECTRON_MASS_RATIO%to_real(1.0_dp, uncertainty=.true.), 0.00000017d0) if (allocated(error)) return end subroutine subroutine test_U_ALPHA_PARTICLE_MASS(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.0000000021d-27 - ALPHA_PARTICLE_MASS%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, ALPHA_PARTICLE_MASS%to_real(1.0_dp, uncertainty=.true.), 0.0000000021d-27) if (allocated(error)) return end subroutine subroutine test_U_ATOMIC_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.00000000052d-27 - ATOMIC_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, ATOMIC_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.00000000052d-27) if (allocated(error)) return end subroutine @@ -189,7 +189,7 @@ subroutine test_U_FARADAY_CONSTANT(error) subroutine test_U_MOLAR_MASS_CONSTANT(error) type(error_type), allocatable, intent(out) :: error - call check(error, 0.00000000031d-3 - MOLAR_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.0_dp) + call check(error, MOLAR_MASS_CONSTANT%to_real(1.0_dp, uncertainty=.true.), 0.00000000031d-3) if (allocated(error)) return end subroutine From b24f3c6181fb38228c554a2fdabaf992cfcdaeb8 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Fri, 24 May 2024 11:07:34 +0200 Subject: [PATCH 143/144] Add warning for short names and how to alias them. --- doc/specs/stdlib_constants.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/specs/stdlib_constants.md b/doc/specs/stdlib_constants.md index 178a9e854..c12f29ea1 100644 --- a/doc/specs/stdlib_constants.md +++ b/doc/specs/stdlib_constants.md @@ -9,6 +9,12 @@ title: constants The [[stdlib_constants]] module provides mathematical constants and the most common physical constants. +**Warning**: The names of the most common physical constants are kept short as they are inside a dedicated module. +Nonetheless, in case of overlapping names, they can always be renamed as following: + +```fortran +use stdlib_constants, only: clight => c +``` ## Codata From b824cab8d4cfc0404a485498ab8ffb5c7e6d7c19 Mon Sep 17 00:00:00 2001 From: Milan Skocic Date: Fri, 24 May 2024 11:07:47 +0200 Subject: [PATCH 144/144] Fix spelling in example. --- example/constants/example_constants.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/constants/example_constants.f90 b/example/constants/example_constants.f90 index 4bcf5e887..398d1088f 100644 --- a/example/constants/example_constants.f90 +++ b/example/constants/example_constants.f90 @@ -4,12 +4,12 @@ program example_constants use stdlib_codata_type, only : to_real use stdlib_kinds, only: dp, sp - ! Use most common physical constants defined as deouble precision reals + ! Use most common physical constants defined as double precision reals print *, "speed of light in vacuum= ", c ! Use of mathematical constants such as PI print *, "PI as double precision real= ", pi - + ! Use codata_constant type for evaluating the value to the desired precision print *, "Value of alpha... evaluated to double precision=", alpha%to_real(1.0_dp) print *, "Uncertainty of alpha... evaluated to double precision=", alpha%to_real(1.0_sp, .true.)