| 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, '(76("-"))') write(unit, "(a4, 5x)", advance="no") "Z" do iref = 1, 2 write(unit, "(a4, 2(1x, a7), 1x, a12)", advance="no") & "#", "CN", "q+Z", "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, 2(1x, f7.4), 1x, f12.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, '(76("-"))') write(unit, "(a)") end subroutine ascii_atomic_references