Parse layer id from node_X or node_X_* names.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | node_name |
Candidate ONNX node name |
||
| integer, | intent(out) | :: | layer_id |
Parsed layer id when present |
||
| integer, | intent(out) | :: | found |
Positive when parsing succeeded, zero otherwise |
subroutine parse_any_node_layer_id( & node_name, layer_id, found) !! Parse layer id from node_X or node_X_* names. implicit none ! Arguments character(*), intent(in) :: node_name !! Candidate ONNX node name integer, intent(out) :: layer_id !! Parsed layer id when present integer, intent(out) :: found !! Positive when parsing succeeded, zero otherwise ! Local variables integer :: stat, upos !! Read status and underscore position character(128) :: rest !! Node name suffix after node_ prefix layer_id = -1 found = 0 if(index(trim(node_name), 'node_') .ne. 1) return rest = trim(node_name(6:)) ! Find end of the integer part upos = index(rest, '_') if(upos .gt. 0)then read(rest(1:upos-1), *, iostat=stat) layer_id else read(rest, *, iostat=stat) layer_id end if if(stat .eq. 0 .and. layer_id .gt. 0) found = 1 end subroutine parse_any_node_layer_id