Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | unit |
Unit for output |
||
class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
class(dispersion_model), | intent(in) | :: | disp |
Dispersion model |
subroutine ascii_atomic_references(unit, mol, disp) !DEC$ ATTRIBUTES DLLEXPORT :: ascii_atomic_references !> Unit for output integer, intent(in) :: unit !> Molecular structure data class(structure_type), intent(in) :: mol !> Dispersion model class(dispersion_model), intent(in) :: disp integer :: isp, iref, mref mref = maxval(disp%ref) write(unit, '(a,":")') "Atomic reference systems (in atomic units)" write(unit, '(70("-"))') write(unit, '(a4, 5x)', advance='no') "Z" do iref = 1, 2 write(unit, '(a4, 2(1x, a7), 1x, a9)', advance='no') & "#", "CN", "q+Z", "C6(AA)" end do write(unit, '(a)') write(unit, '(70("-"))') do isp = 1, mol%nid write(unit, '(i4, 1x, a4)', advance='no') & & mol%num(isp), mol%sym(isp) do iref = 1, disp%ref(isp) write(unit, '(i4, 2(1x, f7.4), 1x, f9.4)', advance='no') & iref, disp%cn(iref, isp), disp%q(iref, isp) + disp%zeff(isp), & disp%c6(iref, iref, isp, isp) if (iref == 2 .and. disp%ref(isp) > 2) then write(unit, '(/,9x)', advance='no') end if if (iref == 4 .and. disp%ref(isp) > 4) then write(unit, '(/,9x)', advance='no') end if if (iref == 6 .and. disp%ref(isp) > 6) then write(unit, '(/,9x)', advance='no') end if end do write(unit, '(a)') end do write(unit, '(70("-"))') write(unit, '(a)') end subroutine ascii_atomic_references