more sanity checks
number of arguments for values per system needs to match the number of systems that are defined
This commit is contained in:
parent
2dc7b4cac6
commit
8832c04dd0
|
@ -1251,6 +1251,8 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
msg = 'negative number systems requested'
|
msg = 'negative number systems requested'
|
||||||
case (145_pInt)
|
case (145_pInt)
|
||||||
msg = 'too many systems requested'
|
msg = 'too many systems requested'
|
||||||
|
case (146_pInt)
|
||||||
|
msg = 'number of values does not match'
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! material error messages and related messages in mesh
|
! material error messages and related messages in mesh
|
||||||
|
|
|
@ -550,7 +550,7 @@ end function getString
|
||||||
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
||||||
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function getFloats(this,key,defaultVal,requiredShape)
|
function getFloats(this,key,defaultVal,requiredShape,requiredSize)
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_error, &
|
IO_error, &
|
||||||
IO_stringValue, &
|
IO_stringValue, &
|
||||||
|
@ -561,7 +561,8 @@ function getFloats(this,key,defaultVal,requiredShape)
|
||||||
class(tPartitionedStringList), target, intent(in) :: this
|
class(tPartitionedStringList), target, intent(in) :: this
|
||||||
character(len=*), intent(in) :: key
|
character(len=*), intent(in) :: key
|
||||||
real(pReal), dimension(:), intent(in), optional :: defaultVal
|
real(pReal), dimension(:), intent(in), optional :: defaultVal
|
||||||
integer(pInt), dimension(:), intent(in), optional :: requiredShape
|
integer(pInt), dimension(:), intent(in), optional :: requiredShape ! not useful (is always 1D array)
|
||||||
|
integer(pInt), intent(in), optional :: requiredSize
|
||||||
type(tPartitionedStringList), pointer :: item
|
type(tPartitionedStringList), pointer :: item
|
||||||
integer(pInt) :: i
|
integer(pInt) :: i
|
||||||
logical :: found, &
|
logical :: found, &
|
||||||
|
@ -588,6 +589,9 @@ function getFloats(this,key,defaultVal,requiredShape)
|
||||||
if (.not. found) then
|
if (.not. found) then
|
||||||
if (present(defaultVal)) then; getFloats = defaultVal; else; call IO_error(140_pInt,ext_msg=key); endif
|
if (present(defaultVal)) then; getFloats = defaultVal; else; call IO_error(140_pInt,ext_msg=key); endif
|
||||||
endif
|
endif
|
||||||
|
if (present(requiredSize)) then
|
||||||
|
if(requiredSize /= size(getFloats)) call IO_error(146,ext_msg=key)
|
||||||
|
endif
|
||||||
|
|
||||||
end function getFloats
|
end function getFloats
|
||||||
|
|
||||||
|
@ -597,7 +601,7 @@ end function getFloats
|
||||||
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
||||||
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function getInts(this,key,defaultVal,requiredShape)
|
function getInts(this,key,defaultVal,requiredShape,requiredSize)
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_error, &
|
IO_error, &
|
||||||
IO_stringValue, &
|
IO_stringValue, &
|
||||||
|
@ -608,7 +612,8 @@ function getInts(this,key,defaultVal,requiredShape)
|
||||||
class(tPartitionedStringList), target, intent(in) :: this
|
class(tPartitionedStringList), target, intent(in) :: this
|
||||||
character(len=*), intent(in) :: key
|
character(len=*), intent(in) :: key
|
||||||
integer(pInt), dimension(:), intent(in), optional :: defaultVal, &
|
integer(pInt), dimension(:), intent(in), optional :: defaultVal, &
|
||||||
requiredShape
|
requiredShape ! not useful (is always 1D array)
|
||||||
|
integer(pInt), intent(in), optional :: requiredSize
|
||||||
type(tPartitionedStringList), pointer :: item
|
type(tPartitionedStringList), pointer :: item
|
||||||
integer(pInt) :: i
|
integer(pInt) :: i
|
||||||
logical :: found, &
|
logical :: found, &
|
||||||
|
@ -635,6 +640,9 @@ function getInts(this,key,defaultVal,requiredShape)
|
||||||
if (.not. found) then
|
if (.not. found) then
|
||||||
if (present(defaultVal)) then; getInts = defaultVal; else; call IO_error(140_pInt,ext_msg=key); endif
|
if (present(defaultVal)) then; getInts = defaultVal; else; call IO_error(140_pInt,ext_msg=key); endif
|
||||||
endif
|
endif
|
||||||
|
if (present(requiredSize)) then
|
||||||
|
if(requiredSize /= size(getInts)) call IO_error(146,ext_msg=key)
|
||||||
|
endif
|
||||||
|
|
||||||
end function getInts
|
end function getInts
|
||||||
|
|
||||||
|
|
|
@ -217,9 +217,9 @@ subroutine plastic_phenopowerlaw_init
|
||||||
config_phase(p)%getFloats('interaction_slipslip'), &
|
config_phase(p)%getFloats('interaction_slipslip'), &
|
||||||
structure(1:3))
|
structure(1:3))
|
||||||
|
|
||||||
prm%xi_slip_0 = config_phase(p)%getFloats('tau0_slip', requiredShape=shape(prm%Nslip))
|
prm%xi_slip_0 = config_phase(p)%getFloats('tau0_slip', requiredSize=size(prm%Nslip))
|
||||||
prm%xi_slip_sat = config_phase(p)%getFloats('tausat_slip', requiredShape=shape(prm%Nslip))
|
prm%xi_slip_sat = config_phase(p)%getFloats('tausat_slip', requiredSize=size(prm%Nslip))
|
||||||
prm%H_int = config_phase(p)%getFloats('h_int', requiredShape=shape(prm%Nslip), &
|
prm%H_int = config_phase(p)%getFloats('h_int', requiredSize=size(prm%Nslip), &
|
||||||
defaultVal=[(0.0_pReal,i=1_pInt,size(prm%Nslip))])
|
defaultVal=[(0.0_pReal,i=1_pInt,size(prm%Nslip))])
|
||||||
|
|
||||||
prm%gdot0_slip = config_phase(p)%getFloat('gdot0_slip')
|
prm%gdot0_slip = config_phase(p)%getFloat('gdot0_slip')
|
||||||
|
@ -256,7 +256,7 @@ subroutine plastic_phenopowerlaw_init
|
||||||
prm%gamma_twin_char = lattice_characteristicShear_twin(prm%Ntwin,structure(1:3),&
|
prm%gamma_twin_char = lattice_characteristicShear_twin(prm%Ntwin,structure(1:3),&
|
||||||
config_phase(p)%getFloat('c/a'))
|
config_phase(p)%getFloat('c/a'))
|
||||||
|
|
||||||
prm%xi_twin_0 = config_phase(p)%getFloats('tau0_twin',requiredShape=shape(prm%Ntwin))
|
prm%xi_twin_0 = config_phase(p)%getFloats('tau0_twin',requiredSize=size(prm%Ntwin))
|
||||||
|
|
||||||
prm%gdot0_twin = config_phase(p)%getFloat('gdot0_twin')
|
prm%gdot0_twin = config_phase(p)%getFloat('gdot0_twin')
|
||||||
prm%n_twin = config_phase(p)%getFloat('n_twin')
|
prm%n_twin = config_phase(p)%getFloat('n_twin')
|
||||||
|
|
Loading…
Reference in New Issue