See examples in BS.mw
BF::[center,angular,radial,C,label]=AO basis function, see Atomic Orbitals.BL::[center,shell::string,radial,C,label] shell of basis functions.shell::string=cat(L,t) contains information about the angular quantum number and functional form of the basis functions.
For example, Dm=[XX,YY,ZZ,XY,XZ,YZ], Dt=[Z2,XZ,YZ,X2,XY], Dc=[X2,Z2,YZ,XZ,XY].L::{integer,string} either orbital quantum number (-1 means SP) or its label as one SP,S,P,D,F,G,H.t::"mtc" type of basis functions: "m" for monomials, "t" for trigonometric, "c" for cubic.Ltrig::integer:=-1 for mixed-type basis, it is min L from which trigonometric spherical harmonics are used.BS::list(BF) Basis Set.FBS::list(BL) Folded Basis Set.prefactor::procedure:=((a,l)->sqrt((2*a)^(l+3/2)*2/GAMMA(l+3/2))) multiply each primitive gaussian by this factor when converting FBS to BS.N=|BS|shell2LtN(shell,Ltrig)::[L::integer,t,N] decode shell.LtN2shell(L,torN::{string,posint},$)::shell encode shell.UnfoldBS(FBS,NorL::{N,-Ltrig},prefactor,labelformat::string:="%s",{program::string:="",printout},$)::BS
unfold basis set. Program-specific features can be switched by program (currently not used).FoldBS(BS,prefactor)::FBS fold basis set.ReadBS(filename,A,Ltrig,prefactor)::FBS read folded basis set from file
in the format of Basis Set Exchange GAMESS-US, which is compatible with Firefly and Gaussian.
To read basis from program output use ReadOutput.RewriteBasis(filename,filename1,lsi::list(posint),{maxgeodev::numeric:=1e-6,overwrite})::A1,N1,FBS1,BS1
read basis from Gaussian output filename, reduce it to subset of atoms lsi, and save subset of atoms and its basis to filename1.
If filename1 begins with undescore then it is treated as suffix to filename.