| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(port_list_t), | intent(in), | target | :: | me | ||
| character(len=*), | intent(in) | :: | name |
Name of the component |
||
| integer, | intent(in) | :: | idx |
Port number |
Index of the port on ports array
function port_list_find(me,name,idx) result(idx_out) class(port_list_t), target, intent(in) :: me character(*), intent(in) :: name !! Name of the component integer, intent(in) :: idx !! Port number integer :: idx_out !! Index of the port on ports array integer :: nbPorts, offset, i, pos pos = index(me%list,' '//name//':') if (pos == 0) then print*, 'ERROR: component "'//name//'" not found in port list.' error stop 'Aborting: unknown component ID in connection.' endif i = pos + len(name) + 2 nbPorts = to_int(me%list(i:)) if (idx > nbPorts) then print*, 'ERROR: port index '//to_str(idx)//' exceeds nb ports ('//to_str(nbPorts)//') for "'//name//'"' error stop 'Aborting: port index out of range.' endif offset = to_int(me%list(i+index(me%list(i:),','):)) idx_out = idx + offset - 1 end function port_list_find