module model_util implicit none private public :: modelPrint interface modelPrint module procedure modelPrintRoot module procedure modelPrintCharacter module procedure modelPrintInteger module procedure modelPrintReal module procedure modelPrintLogical end interface contains subroutine printLoop(unit, count, text) integer, intent(in) :: unit, count character(len=*), intent(in) :: text integer :: i do i=1, count * 3 write(unit, "(A)", advance="NO"), text end do end subroutine subroutine modelPrintRoot(unit, depth, root, name) integer, intent(in) :: unit, depth logical, intent(in) :: root character(len=*), intent(in) :: name call printLoop(unit, depth, " ") if(root) then write (unit, *), "+ ", name else write (unit, *), "|--", name end if end subroutine subroutine modelPrintCharacter(unit, depth, name, value) integer, intent(in) :: unit, depth character(len=*), intent(in) :: name, value call printLoop(unit, depth, " ") write (unit, *), "|--", name, "=", value end subroutine subroutine modelPrintInteger(unit, depth, name, value) integer, intent(in) :: unit, depth character(len=*), intent(in) :: name integer, intent(in) :: value call printLoop(unit, depth, " ") write (unit, *), "|--", name, "=", value end subroutine subroutine modelPrintReal(unit, depth, name, value) integer, intent(in) :: unit, depth character(len=*), intent(in) :: name real, intent(in) :: value call printLoop(unit, depth, " ") write (unit, *), "|--", name, "=", value end subroutine subroutine modelPrintLogical(unit, depth, name, value) integer, intent(in) :: unit, depth character(len=*), intent(in) :: name logical, intent(in) :: value call printLoop(unit, depth, " ") write (unit, *), "|--", name, "=", value end subroutine end module