Parse athena_gnn_node_
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | meta_key |
Metadata key potentially containing a layer id |
||
| integer, | intent(out) | :: | layer_id |
Parsed layer id value |
||
| logical, | intent(out) | :: | found |
Whether parsing succeeded |
subroutine parse_meta_layer_id(meta_key, layer_id, found) !! Parse athena_gnn_node_<id> or athena_nop_node_<id> metadata key layer id. implicit none ! Arguments character(*), intent(in) :: meta_key !! Metadata key potentially containing a layer id integer, intent(out) :: layer_id !! Parsed layer id value logical, intent(out) :: found !! Whether parsing succeeded ! Local variables integer :: pos, stat !! Prefix position and read status character(128) :: rest !! Metadata suffix containing the candidate id layer_id = -1 found = .false. pos = index(trim(meta_key), 'athena_gnn_node_') if(pos .gt. 0)then rest = adjustl(trim(meta_key(pos+16:))) read(rest, *, iostat=stat) layer_id if(stat .eq. 0 .and. layer_id .gt. 0) found = .true. return end if pos = index(trim(meta_key), 'athena_nop_node_') if(pos .gt. 0)then rest = adjustl(trim(meta_key(pos+16:))) read(rest, *, iostat=stat) layer_id if(stat .eq. 0 .and. layer_id .gt. 0) found = .true. return end if end subroutine parse_meta_layer_id