more flexible reporting
This commit is contained in:
parent
5f0ae4fe7a
commit
f90523eb07
25
src/IO.f90
25
src/IO.f90
|
@ -95,7 +95,7 @@ function IO_readlines(fileName) result(fileContent)
|
|||
if (endPos - startPos > pStringLen-1) then
|
||||
line = rawData(startPos:startPos+pStringLen-1)
|
||||
if (.not. warned) then
|
||||
call IO_warning(207,ext_msg=trim(fileName),el=l)
|
||||
call IO_warning(207,trim(fileName),label1='line',ID1=l)
|
||||
warned = .true.
|
||||
endif
|
||||
else
|
||||
|
@ -574,16 +574,19 @@ end subroutine IO_error
|
|||
!--------------------------------------------------------------------------------------------------
|
||||
!> @brief Write warning statement to standard out.
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
subroutine IO_warning(warning_ID,el,ip,ext_msg)
|
||||
subroutine IO_warning(warning_ID,ext_msg,label1,ID1,label2,ID2)
|
||||
|
||||
integer, intent(in) :: warning_ID
|
||||
integer, optional, intent(in) :: el,ip
|
||||
character(len=*), optional, intent(in) :: ext_msg
|
||||
character(len=*), optional, intent(in) :: ext_msg,label1,label2
|
||||
integer, optional, intent(in) :: ID1,ID2
|
||||
|
||||
character(len=:), allocatable :: msg
|
||||
character(len=pStringLen) :: formatString
|
||||
|
||||
|
||||
if (present(ID1) .and. .not. present(label1)) error stop 'warning value without label (1)'
|
||||
if (present(ID2) .and. .not. present(label2)) error stop 'warning value without label (2)'
|
||||
|
||||
select case (warning_ID)
|
||||
case (47)
|
||||
msg = 'invalid parameter for FFTW, using FFTW_PATIENT'
|
||||
|
@ -612,10 +615,16 @@ subroutine IO_warning(warning_ID,el,ip,ext_msg)
|
|||
max(1,72-len_trim(ext_msg)-4),'x,a)'
|
||||
write(IO_STDERR,formatString) '│ ',trim(ext_msg), '│'
|
||||
endif
|
||||
if (present(el)) &
|
||||
write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│'
|
||||
if (present(ip)) &
|
||||
write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│'
|
||||
if (present(label1)) then
|
||||
write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a7,a',max(1,len_trim(label1)),',i9,',&
|
||||
max(1,72-len_trim(label1)-9-7),'x,a)'
|
||||
write(IO_STDERR,formatString) '│ at ',trim(label1),ID1, '│'
|
||||
endif
|
||||
if (present(label2)) then
|
||||
write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a7,a',max(1,len_trim(label2)),',i9,',&
|
||||
max(1,72-len_trim(label2)-9-7),'x,a)'
|
||||
write(IO_STDERR,formatString) '│ at ',trim(label2),ID2, '│'
|
||||
endif
|
||||
write(IO_STDERR,'(a,69x,a)') ' │', '│'
|
||||
write(IO_STDERR,'(a)') ' └'//IO_DIVIDER//'┘'
|
||||
flush(IO_STDERR)
|
||||
|
|
|
@ -240,7 +240,8 @@ subroutine materialpoint_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip,
|
|||
|
||||
endif
|
||||
|
||||
if (all(abs(materialpoint_dcsdE(1:6,1:6,ip,elCP)) < 1e-10_pReal)) call IO_warning(601,elCP,ip)
|
||||
if (all(abs(materialpoint_dcsdE(1:6,1:6,ip,elCP)) < 1e-10_pReal)) &
|
||||
call IO_warning(601,label1='element (CP)',ID1=elCP,label2='IP',ID2=ip)
|
||||
|
||||
cauchyStress = materialpoint_cs (1:6, ip,elCP)
|
||||
jacobian = materialpoint_dcsdE(1:6,1:6,ip,elCP)
|
||||
|
|
|
@ -249,7 +249,7 @@ subroutine spectral_utilities_init()
|
|||
case('fftw_exhaustive')
|
||||
FFTW_planner_flag = FFTW_EXHAUSTIVE
|
||||
case default
|
||||
call IO_warning(warning_ID=47,ext_msg=trim(IO_lc(num_grid%get_asString('fftw_plan_mode'))))
|
||||
call IO_warning(47,trim(num_grid%get_asString('fftw_plan_mode')))
|
||||
FFTW_planner_flag = FFTW_MEASURE
|
||||
end select
|
||||
|
||||
|
|
|
@ -1167,8 +1167,8 @@ module function phase_mechanical_dPdF(Delta_t,co,ce) result(dPdF)
|
|||
enddo; enddo
|
||||
call math_invert(temp_99,error,math_3333to99(lhs_3333))
|
||||
if (error) then
|
||||
call IO_warning(warning_ID=600, &
|
||||
ext_msg='inversion error in analytic tangent calculation')
|
||||
call IO_warning(600,'inversion error in analytic tangent calculation', &
|
||||
label1='phase',ID1=ph,label2='entry',ID2=en)
|
||||
dFidS = 0.0_pReal
|
||||
else
|
||||
dFidS = math_mul3333xx3333(math_99to3333(temp_99),rhs_3333)
|
||||
|
@ -1201,8 +1201,8 @@ module function phase_mechanical_dPdF(Delta_t,co,ce) result(dPdF)
|
|||
|
||||
call math_invert(temp_99,error,math_eye(9)+math_3333to99(lhs_3333))
|
||||
if (error) then
|
||||
call IO_warning(warning_ID=600, &
|
||||
ext_msg='inversion error in analytic tangent calculation')
|
||||
call IO_warning(600,'inversion error in analytic tangent calculation', &
|
||||
label1='phase',ID1=ph,label2='entry',ID2=en)
|
||||
dSdF = rhs_3333
|
||||
else
|
||||
dSdF = math_mul3333xx3333(math_99to3333(temp_99),rhs_3333)
|
||||
|
|
Loading…
Reference in New Issue