string length was wrong, IO_warning now also with new style

This commit is contained in:
Martin Diehl 2017-05-15 21:53:25 +02:00
parent 7ccd371f26
commit 1f1a1826a1
1 changed files with 42 additions and 51 deletions

View File

@ -14,10 +14,11 @@ module IO
private private
character(len=5), parameter, public :: & character(len=5), parameter, public :: &
IO_EOF = '#EOF#' !< end of file string IO_EOF = '#EOF#' !< end of file string
character(len=168), parameter, private :: & character(len=207), parameter, private :: &
IO_divider = '───────────────────'//& IO_DIVIDER = '───────────────────'//&
'───────────────────'//& '───────────────────'//&
'──────────────────' '───────────────────'//&
'────────────'
public :: & public :: &
IO_init, & IO_init, &
IO_read, & IO_read, &
@ -1457,11 +1458,11 @@ end function IO_timeStamp
!> @brief write error statements to standard out and terminate the Marc/spectral run with exit #9xxx !> @brief write error statements to standard out and terminate the Marc/spectral run with exit #9xxx
!> in ABAQUS either time step is reduced or execution terminated !> in ABAQUS either time step is reduced or execution terminated
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine IO_error(error_ID,el,ip,g,ext_msg) subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
implicit none implicit none
integer(pInt), intent(in) :: error_ID integer(pInt), intent(in) :: error_ID
integer(pInt), optional, intent(in) :: el,ip,g integer(pInt), optional, intent(in) :: el,ip,g,instance
character(len=*), optional, intent(in) :: ext_msg character(len=*), optional, intent(in) :: ext_msg
external :: quit external :: quit
@ -1672,34 +1673,28 @@ subroutine IO_error(error_ID,el,ip,g,ext_msg)
end select end select
!$OMP CRITICAL (write2out) !$OMP CRITICAL (write2out)
write(0,'(/,a)') ' ┌'//IO_divider//'┐' write(0,'(/,a)') ' ┌'//IO_DIVIDER//'┐'
write(0,'(a)') ' │ error │' write(0,'(a,24x,a,40x,a)') ' │','error', '│'
write(0,'(a)') ' ├'//IO_divider//'┤' write(0,'(a,24x,i3,42x,a)') ' │',error_ID, '│'
write(0,'(a,i3,a)') ' │ ',error_ID,' │' write(0,'(a)') ' ├'//IO_DIVIDER//'┤'
write(0,'(a)') ' │ │'
write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len(trim(msg))),',',& write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len(trim(msg))),',',&
max(1,60-len(trim(msg))-5),'x,a)' max(1,72-len(trim(msg))-4),'x,a)'
write(0,formatString) '│ ',trim(msg), '│' write(0,formatString) '│ ',trim(msg), '│'
if (present(ext_msg)) then if (present(ext_msg)) then
write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len(trim(ext_msg))),',',& write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len(trim(ext_msg))),',',&
max(1,60-len(trim(ext_msg))-5),'x,a)' max(1,72-len(trim(ext_msg))-4),'x,a)'
write(0,formatString) '│ ',trim(ext_msg), '│' write(0,formatString) '│ ',trim(ext_msg), '│'
endif endif
if (present(el)) then if (present(el)) &
if (present(ip)) then write(0,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│'
if (present(g)) then if (present(ip)) &
write(0,'(a13,1x,i9,1x,a2,1x,i2,1x,a5,1x,i4,18x,a1)') ' │ at element',el,'IP',ip,'grain',g,'│' write(0,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│'
else if (present(g)) &
write(0,'(a13,1x,i9,1x,a2,1x,i2,29x,a1)') ' │ at element',el,'IP',ip,'│' write(0,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│'
endif if (present(instance)) &
else write(0,'(a19,1x,i9,44x,a3)') ' │ at instance ',instance, '│'
write(0,'(a13,1x,i9,35x,a1)') ' │ at element',el,'│' write(0,'(a,69x,a)') ' │', '│'
endif write(0,'(a)') ' └'//IO_DIVIDER//'┘'
elseif (present(ip)) then ! now having the meaning of "instance"
write(0,'(a14,1x,i9,34x,a1)') ' │ at instance',ip,'│'
endif
write(0,'(a)') ' │ │'
write(0,'(a)') ' └'//IO_divider//'┘'
flush(0) flush(0)
call quit(9000_pInt+error_ID) call quit(9000_pInt+error_ID)
!$OMP END CRITICAL (write2out) !$OMP END CRITICAL (write2out)
@ -1766,30 +1761,26 @@ subroutine IO_warning(warning_ID,el,ip,g,ext_msg)
end select end select
!$OMP CRITICAL (write2out) !$OMP CRITICAL (write2out)
write(6,'(/,a)') ' +--------------------------------------------------------+' write(6,'(/,a)') ' ┌'//IO_DIVIDER//'┐'
write(6,'(a)') ' + warning +' write(6,'(a,24x,a,38x,a)') ' │','warning', '│'
write(6,'(a,i3,a)') ' + ',warning_ID,' +' write(6,'(a,24x,i3,42x,a)') ' │',warning_ID, '│'
write(6,'(a)') ' + +' write(6,'(a)') ' ├'//IO_DIVIDER//'┤'
write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a2,a',max(1,len(trim(msg))),',',& write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len(trim(msg))),',',&
max(1,60-len(trim(msg))-5),'x,a)' max(1,72-len(trim(msg))-4),'x,a)'
write(6,formatString) '+ ', trim(msg),'+' write(6,formatString) '│ ',trim(msg), '│'
if (present(ext_msg)) then if (present(ext_msg)) then
write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a2,a',max(1,len(trim(ext_msg))),',',& write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len(trim(ext_msg))),',',&
max(1,60-len(trim(ext_msg))-5),'x,a)' max(1,72-len(trim(ext_msg))-4),'x,a)'
write(6,formatString) '+ ', trim(ext_msg),'+' write(6,formatString) '│ ',trim(ext_msg), '│'
endif endif
if (present(el)) then if (present(el)) &
if (present(ip)) then write(6,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│'
if (present(g)) then if (present(ip)) &
write(6,'(a13,1x,i9,1x,a2,1x,i2,1x,a5,1x,i4,18x,a1)') ' + at element',el,'IP',ip,'grain',g,'+' write(6,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│'
else if (present(g)) &
write(6,'(a13,1x,i9,1x,a2,1x,i2,29x,a1)') ' + at element',el,'IP',ip,'+' write(6,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│'
endif write(6,'(a,69x,a)') ' │', '│'
else write(6,'(a)') ' └'//IO_DIVIDER//'┘'
write(6,'(a13,1x,i9,35x,a1)') ' + at element',el,'+'
endif
endif
write(6,'(a)') ' +--------------------------------------------------------+'
flush(6) flush(6)
!$OMP END CRITICAL (write2out) !$OMP END CRITICAL (write2out)