ascii_gcp_param Subroutine

public subroutine ascii_gcp_param(unit, mol, param, method)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: unit

Unit for output

type(structure_type), intent(in) :: mol

Molecular structure data

type(gcp_param), intent(in) :: param

Counter-poise parameters

character(len=*), intent(in), optional :: method

Method name


Source Code

subroutine ascii_gcp_param(unit, mol, param, method)

   !> Unit for output
   integer, intent(in) :: unit

   !> Molecular structure data
   type(structure_type), intent(in) :: mol

   !> Counter-poise parameters
   type(gcp_param), intent(in) :: param

   !> Method name
   character(len=*), intent(in), optional :: method

   integer :: isp

   write(unit, '(a,":")') "Global counter-poise parameters"
   write(unit, '(20("-"))')
   if (param%sigma > 0.0_wp .and. param%alpha > 0.0_wp .and. param%beta > 0.0_wp) then
      write(unit, '(a6, t10, f10.4)') &
         & "sigma", param%sigma, &
         & "alpha", param%alpha, &
         & "beta", param%beta
   end if
   if (param%damp) then
      write(unit, '(a6, t10, f10.4)') &
         & "dscal", param%dmp_scal, &
         & "dexpo", param%dmp_exp
   end if
   if (param%srb) then
      write(unit, '(a6, t10, f10.4)') &
         & "rscal", param%rscal, &
         & "qscal", param%qscal
   end if
   write(unit, '(20("-"))')
   write(unit, '(a)')

   if (allocated(param%emiss) .and. allocated(param%xv) &
      & .and. allocated(param%slater)) then
      write(unit, '(a,":")') "Atomic counter-poise parameters"
      write(unit, '(47("-"))')
      write(unit, '(a4,5x,a4,*(1x,a10))') "Z", "Zeff", "Emiss[Eh]", "Virtual", "Slater"
      write(unit, '(47("-"))')
      do isp = 1, mol%nid
         write(unit, '(i4, 1x, a4, i4, *(1x,f10.4))') &
            & mol%num(isp), mol%sym(isp), param%zeff(isp), &
            & param%emiss(isp), param%xv(isp), param%slater(isp)
      end do
      write(unit, '(47("-"))')
      write(unit, '(a)')
   end if

end subroutine ascii_gcp_param