Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | unit |
Unit for output |
||
class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
class(d3_model), | intent(in) | :: | disp |
Dispersion model |
subroutine ascii_atomic_references(unit, mol, disp) !> Unit for output integer, intent(in) :: unit !> Molecular structure data class(structure_type), intent(in) :: mol !> Dispersion model class(d3_model), intent(in) :: disp integer :: isp, iref, mref mref = maxval(disp%ref) write(unit, '(a,":")') "Atomic reference systems (in atomic units)" write(unit, '(76("-"))') write(unit, '(a4, 5x)', advance='no') "Z" do iref = 1, 3 write(unit, '(a4, 1x, a7, 1x, a9)', advance='no') "#", "CN", "C6(AA)" end do write(unit, '(a)') write(unit, '(76("-"))') 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, 1x, f7.4, 1x, f9.4)', advance='no') & iref, disp%cn(iref, isp), disp%c6(iref, iref, isp, isp) if ((iref == 3 .and. disp%ref(isp) > 3) .or. & (iref == 6 .and. disp%ref(isp) > 6)) then write(unit, '(/,9x)', advance='no') end if end do write(unit, '(a)') end do write(unit, '(76("-"))') end subroutine ascii_atomic_references