meaningful error message incase of mismatch in quotes
This commit is contained in:
parent
ae49920256
commit
3d7f15c940
|
@ -6,29 +6,29 @@ homogenization:
|
||||||
|
|
||||||
phase:
|
phase:
|
||||||
Aluminum:
|
Aluminum:
|
||||||
"lattice": 'cF'
|
lattice: cF
|
||||||
mechanical:
|
mechanical:
|
||||||
output: [F, P, F_e, F_p, L_p, O]
|
output: [F, P, F_e, F_p, L_p, O]
|
||||||
elastic: {type: "Hooke", C_11: 106.75e+9, C_12: 60.41e+9, C_44: 28.34e+9}
|
elastic: {type: Hooke, C_11: 106.75e+9, C_12: 60.41e+9, C_44: 28.34e+9}
|
||||||
plastic:
|
plastic:
|
||||||
'type': "phenopowerlaw"
|
type: phenopowerlaw
|
||||||
"N_sl": [12]
|
N_sl: [12]
|
||||||
a_sl: 2.25
|
a_sl: 2.25
|
||||||
atol_xi: 1.0
|
atol_xi: 1.0
|
||||||
dot_gamma_0_sl: 0.001
|
dot_gamma_0_sl: 0.001
|
||||||
h_0_sl-sl: 75.e+6
|
h_0_sl-sl: 75.e+6
|
||||||
h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4]
|
h_sl-sl: [1, 1, 1.4, 1.4, 1.4, 1.4, 1.4]
|
||||||
n_sl: 20
|
n_sl: 20
|
||||||
'output': ['xi_sl']
|
output: [xi_sl]
|
||||||
xi_0_sl: [31.e+6]
|
xi_0_sl: [31.e+6]
|
||||||
xi_inf_sl: [63.e+6]
|
xi_inf_sl: [63.e+6]
|
||||||
|
|
||||||
material:
|
material:
|
||||||
- homogenization: SX
|
- homogenization: SX
|
||||||
constituents:
|
constituents:
|
||||||
- 'phase': "Aluminum"
|
- phase: Aluminum
|
||||||
'v': 1.0
|
v: 1.0
|
||||||
"O": [1.0, 0.0, 0.0, 0.0]
|
O: [1.0, 0.0, 0.0, 0.0]
|
||||||
- homogenization: SX
|
- homogenization: SX
|
||||||
constituents:
|
constituents:
|
||||||
- phase: Aluminum
|
- phase: Aluminum
|
||||||
|
|
|
@ -494,6 +494,8 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
msg = '--- expected after YAML file header'
|
msg = '--- expected after YAML file header'
|
||||||
case (709)
|
case (709)
|
||||||
msg = 'Length mismatch'
|
msg = 'Length mismatch'
|
||||||
|
case (710)
|
||||||
|
msg = 'Quotation missing in string'
|
||||||
|
|
||||||
!-------------------------------------------------------------------------------------------------
|
!-------------------------------------------------------------------------------------------------
|
||||||
! errors related to the grid solver
|
! errors related to the grid solver
|
||||||
|
|
|
@ -72,7 +72,7 @@ recursive function parse_flow(YAML_flow) result(node)
|
||||||
d = s + scan(flow_string(s+1:),':')
|
d = s + scan(flow_string(s+1:),':')
|
||||||
e = d + find_end(flow_string(d+1:),'}')
|
e = d + find_end(flow_string(d+1:),'}')
|
||||||
key = trim(adjustl(flow_string(s+1:d-1)))
|
key = trim(adjustl(flow_string(s+1:d-1)))
|
||||||
if (key(1:1) == '"' .or. key(1:1) == "'" ) key = key(2:len(key)-1)
|
if(quotedString(key)) key = key(2:len(key)-1)
|
||||||
myVal => parse_flow(flow_string(d+1:e-1)) ! parse items (recursively)
|
myVal => parse_flow(flow_string(d+1:e-1)) ! parse items (recursively)
|
||||||
|
|
||||||
select type (node)
|
select type (node)
|
||||||
|
@ -97,7 +97,7 @@ recursive function parse_flow(YAML_flow) result(node)
|
||||||
allocate(tScalar::node)
|
allocate(tScalar::node)
|
||||||
select type (node)
|
select type (node)
|
||||||
class is (tScalar)
|
class is (tScalar)
|
||||||
if (flow_string(1:1) == '"' .or. flow_string(1:1) == "'") then
|
if(quotedString(flow_string)) then
|
||||||
node = trim(adjustl(flow_string(2:len(flow_string)-1)))
|
node = trim(adjustl(flow_string(2:len(flow_string)-1)))
|
||||||
else
|
else
|
||||||
node = trim(adjustl(flow_string))
|
node = trim(adjustl(flow_string))
|
||||||
|
@ -138,6 +138,23 @@ integer function find_end(str,e_char)
|
||||||
end function find_end
|
end function find_end
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
! @brief check whether a string is enclosed with single or double quotes
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
logical function quotedString(line)
|
||||||
|
|
||||||
|
character(len=*), intent(in) :: line
|
||||||
|
|
||||||
|
quotedString = .false.
|
||||||
|
|
||||||
|
if (line(1:1) == '"' .or. line(1:1) == "'") then
|
||||||
|
quotedString = .true.
|
||||||
|
if(line(len(line):len(line)) /= line(1:1)) call IO_error(710,ext_msg=line)
|
||||||
|
endif
|
||||||
|
|
||||||
|
end function quotedString
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! @brief Returns Indentation.
|
! @brief Returns Indentation.
|
||||||
! @details It determines the indentation level for a given block/line.
|
! @details It determines the indentation level for a given block/line.
|
||||||
|
@ -760,6 +777,8 @@ subroutine selfTest
|
||||||
if (indentDepth('a') /= 0) error stop 'indentDepth'
|
if (indentDepth('a') /= 0) error stop 'indentDepth'
|
||||||
if (indentDepth('x ') /= 0) error stop 'indentDepth'
|
if (indentDepth('x ') /= 0) error stop 'indentDepth'
|
||||||
|
|
||||||
|
if (.not. quotedString("'a'")) error stop 'quotedString'
|
||||||
|
|
||||||
if ( isFlow(' a')) error stop 'isFLow'
|
if ( isFlow(' a')) error stop 'isFLow'
|
||||||
if (.not. isFlow('{')) error stop 'isFlow'
|
if (.not. isFlow('{')) error stop 'isFlow'
|
||||||
if (.not. isFlow(' [')) error stop 'isFlow'
|
if (.not. isFlow(' [')) error stop 'isFlow'
|
||||||
|
|
Loading…
Reference in New Issue