From 1d4c476cd4644feb1a287424d809dcc4b607eb29 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 27 May 2022 06:30:25 +0200 Subject: [PATCH] collect errors for more helpful message --- src/phase.f90 | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/phase.f90 b/src/phase.f90 index 2ce559a99..af7197f7b 100644 --- a/src/phase.f90 +++ b/src/phase.f90 @@ -539,7 +539,8 @@ subroutine crystallite_init() class(tNode), pointer :: & num_crystallite, & phases - + character(len=pStringLen) :: & + extmsg = '' num_crystallite => config_numerics%get('crystallite',defaultVal=emptyDict) @@ -555,22 +556,19 @@ subroutine crystallite_init() num%nState = num_crystallite%get_asInt ('nState', defaultVal=20) num%nStress = num_crystallite%get_asInt ('nStress', defaultVal=40) - if (num%subStepMinCryst <= 0.0_pReal) call IO_error(301,ext_msg='subStepMinCryst') - if (num%subStepSizeCryst <= 0.0_pReal) call IO_error(301,ext_msg='subStepSizeCryst') - if (num%stepIncreaseCryst <= 0.0_pReal) call IO_error(301,ext_msg='stepIncreaseCryst') - - if (num%subStepSizeLp <= 0.0_pReal) call IO_error(301,ext_msg='subStepSizeLp') - if (num%subStepSizeLi <= 0.0_pReal) call IO_error(301,ext_msg='subStepSizeLi') - - if (num%rtol_crystalliteState <= 0.0_pReal) call IO_error(301,ext_msg='rtol_crystalliteState') - if (num%rtol_crystalliteStress <= 0.0_pReal) call IO_error(301,ext_msg='rtol_crystalliteStress') - if (num%atol_crystalliteStress <= 0.0_pReal) call IO_error(301,ext_msg='atol_crystalliteStress') - - if (num%iJacoLpresiduum < 1) call IO_error(301,ext_msg='iJacoLpresiduum') - - if (num%nState < 1) call IO_error(301,ext_msg='nState') - if (num%nStress< 1) call IO_error(301,ext_msg='nStress') + if (num%subStepMinCryst <= 0.0_pReal) extmsg = trim(extmsg)//' subStepMinCryst' + if (num%subStepSizeCryst <= 0.0_pReal) extmsg = trim(extmsg)//' subStepSizeCryst' + if (num%stepIncreaseCryst <= 0.0_pReal) extmsg = trim(extmsg)//' stepIncreaseCryst' + if (num%subStepSizeLp <= 0.0_pReal) extmsg = trim(extmsg)//' subStepSizeLp' + if (num%subStepSizeLi <= 0.0_pReal) extmsg = trim(extmsg)//' subStepSizeLi' + if (num%rtol_crystalliteState <= 0.0_pReal) extmsg = trim(extmsg)//' rtol_crystalliteState' + if (num%rtol_crystalliteStress <= 0.0_pReal) extmsg = trim(extmsg)//' rtol_crystalliteStress' + if (num%atol_crystalliteStress <= 0.0_pReal) extmsg = trim(extmsg)//' atol_crystalliteStress' + if (num%iJacoLpresiduum < 1) extmsg = trim(extmsg)//' iJacoLpresiduum' + if (num%nState < 1) extmsg = trim(extmsg)//' nState' + if (num%nStress < 1) extmsg = trim(extmsg)//' nStress' + if (extmsg /= '') call IO_error(301,ext_msg=trim(extmsg)) phases => config_material%get('phase')