dm_node Module

Sensor node declaration.


Uses

  • module~~dm_node~~UsesGraph module~dm_node dm_node module~dm_id dm_id module~dm_node->module~dm_id module~dm_kind dm_kind module~dm_node->module~dm_kind iso_fortran_env iso_fortran_env module~dm_kind->iso_fortran_env

Used by

  • module~~dm_node~~UsedByGraph module~dm_node dm_node module~dm_beat dm_beat module~dm_beat->module~dm_node module~dm_image dm_image module~dm_image->module~dm_node module~dm_sensor dm_sensor module~dm_image->module~dm_sensor module~dm_log dm_log module~dm_log->module~dm_node module~dm_observ dm_observ module~dm_log->module~dm_observ module~dm_log->module~dm_sensor module~dm_logger dm_logger module~dm_logger->module~dm_node module~dm_logger->module~dm_log module~dm_logger->module~dm_observ module~dm_observ->module~dm_node module~dm_observ->module~dm_sensor module~dm_report dm_report module~dm_report->module~dm_node module~dm_report->module~dm_log module~dm_report->module~dm_sensor module~dm_sensor->module~dm_node module~dmpack dmpack module~dmpack->module~dm_node module~dmpack->module~dm_beat module~dmpack->module~dm_image module~dmpack->module~dm_log module~dmpack->module~dm_logger module~dmpack->module~dm_observ module~dmpack->module~dm_report module~dmpack->module~dm_sensor module~dm_atom dm_atom module~dmpack->module~dm_atom module~dm_job dm_job module~dmpack->module~dm_job module~dm_mqueue dm_mqueue module~dmpack->module~dm_mqueue module~dm_sync dm_sync module~dmpack->module~dm_sync module~dm_mqueue_util dm_mqueue_util module~dmpack->module~dm_mqueue_util proc~dm_db_insert_node dm_db_insert_node proc~dm_db_insert_node->module~dm_node proc~dm_db_select_node dm_db_select_node proc~dm_db_select_node->module~dm_node proc~dm_db_update_node dm_db_update_node proc~dm_db_update_node->module~dm_node proc~dm_html_node dm_html_node proc~dm_html_node->module~dm_node proc~dm_html_nodes dm_html_nodes proc~dm_html_nodes->module~dm_node proc~dm_test_dummy_node dm_test_dummy_node proc~dm_test_dummy_node->module~dm_node proc~dm_z_compress_type dm_z_compress_type proc~dm_z_compress_type->module~dm_node proc~dm_z_compress_type->module~dm_beat proc~dm_z_compress_type->module~dm_log proc~dm_z_compress_type->module~dm_observ proc~dm_z_compress_type->module~dm_sensor module~dm_atom->module~dm_log module~dm_job->module~dm_observ module~dm_mqueue->module~dm_log module~dm_mqueue->module~dm_observ module~dm_sync->module~dm_observ proc~dm_arg_validate dm_arg_validate proc~dm_arg_validate->module~dm_log proc~dm_csv_header_observ dm_csv_header_observ proc~dm_csv_header_observ->module~dm_observ proc~dm_db_insert_beat dm_db_insert_beat proc~dm_db_insert_beat->module~dm_beat proc~dm_db_insert_beats dm_db_insert_beats proc~dm_db_insert_beats->module~dm_beat proc~dm_db_insert_log dm_db_insert_log proc~dm_db_insert_log->module~dm_log proc~dm_db_insert_observ dm_db_insert_observ proc~dm_db_insert_observ->module~dm_observ proc~dm_db_insert_observs dm_db_insert_observs proc~dm_db_insert_observs->module~dm_observ proc~dm_db_insert_sensor dm_db_insert_sensor proc~dm_db_insert_sensor->module~dm_sensor proc~dm_db_select_beat dm_db_select_beat proc~dm_db_select_beat->module~dm_beat proc~dm_db_select_log dm_db_select_log proc~dm_db_select_log->module~dm_log proc~dm_db_select_logs_by_observ dm_db_select_logs_by_observ proc~dm_db_select_logs_by_observ->module~dm_log proc~dm_db_select_observ dm_db_select_observ proc~dm_db_select_observ->module~dm_observ proc~dm_db_select_observ_ids dm_db_select_observ_ids proc~dm_db_select_observ_ids->module~dm_observ proc~dm_db_select_observ_views dm_db_select_observ_views proc~dm_db_select_observ_views->module~dm_observ proc~dm_db_select_observs_by_id dm_db_select_observs_by_id proc~dm_db_select_observs_by_id->module~dm_observ proc~dm_db_select_observs_by_time dm_db_select_observs_by_time proc~dm_db_select_observs_by_time->module~dm_observ proc~dm_db_select_sensor dm_db_select_sensor proc~dm_db_select_sensor->module~dm_sensor proc~dm_db_update_sensor dm_db_update_sensor proc~dm_db_update_sensor->module~dm_sensor proc~dm_html_beat dm_html_beat proc~dm_html_beat->module~dm_beat proc~dm_html_beats dm_html_beats proc~dm_html_beats->module~dm_beat proc~dm_html_log dm_html_log proc~dm_html_log->module~dm_log proc~dm_html_logs dm_html_logs proc~dm_html_logs->module~dm_log proc~dm_html_observ dm_html_observ proc~dm_html_observ->module~dm_observ proc~dm_html_observs dm_html_observs proc~dm_html_observs->module~dm_observ proc~dm_html_sensor dm_html_sensor proc~dm_html_sensor->module~dm_sensor proc~dm_html_sensors dm_html_sensors proc~dm_html_sensors->module~dm_sensor proc~dm_lua_api_register dm_lua_api_register proc~dm_lua_api_register->module~dm_log proc~dm_test_dummy_beat dm_test_dummy_beat proc~dm_test_dummy_beat->module~dm_beat proc~dm_test_dummy_log dm_test_dummy_log proc~dm_test_dummy_log->module~dm_log proc~dm_test_dummy_observ dm_test_dummy_observ proc~dm_test_dummy_observ->module~dm_observ proc~dm_test_dummy_sensor dm_test_dummy_sensor proc~dm_test_dummy_sensor->module~dm_sensor module~dm_mqueue_util->module~dm_mqueue proc~dm_db_insert_sync dm_db_insert_sync proc~dm_db_insert_sync->module~dm_sync proc~dm_db_insert_sync_log dm_db_insert_sync_log proc~dm_db_insert_sync_log->module~dm_sync proc~dm_db_insert_sync_node dm_db_insert_sync_node proc~dm_db_insert_sync_node->module~dm_sync proc~dm_db_insert_sync_observ dm_db_insert_sync_observ proc~dm_db_insert_sync_observ->module~dm_sync proc~dm_db_insert_sync_sensor dm_db_insert_sync_sensor proc~dm_db_insert_sync_sensor->module~dm_sync proc~dm_db_insert_sync_target dm_db_insert_sync_target proc~dm_db_insert_sync_target->module~dm_sync proc~dm_db_select_sync_log dm_db_select_sync_log proc~dm_db_select_sync_log->module~dm_sync proc~dm_db_select_sync_logs dm_db_select_sync_logs proc~dm_db_select_sync_logs->module~dm_sync proc~dm_db_select_sync_node dm_db_select_sync_node proc~dm_db_select_sync_node->module~dm_sync proc~dm_db_select_sync_nodes dm_db_select_sync_nodes proc~dm_db_select_sync_nodes->module~dm_sync proc~dm_db_select_sync_observ dm_db_select_sync_observ proc~dm_db_select_sync_observ->module~dm_sync proc~dm_db_select_sync_observs dm_db_select_sync_observs proc~dm_db_select_sync_observs->module~dm_sync proc~dm_db_select_sync_sensor dm_db_select_sync_sensor proc~dm_db_select_sync_sensor->module~dm_sync proc~dm_db_select_sync_sensors dm_db_select_sync_sensors proc~dm_db_select_sync_sensors->module~dm_sync proc~dm_db_select_sync_target dm_db_select_sync_target proc~dm_db_select_sync_target->module~dm_sync proc~dm_db_select_sync_targets dm_db_select_sync_targets proc~dm_db_select_sync_targets->module~dm_sync

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: NODE_ID_LEN = ID_LEN

Max. node id length.

integer, public, parameter :: NODE_NAME_LEN = 32

Max. node name length.

integer, public, parameter :: NODE_META_LEN = 32

Max. node meta description length.

integer, public, parameter :: NODE_SIZE = storage_size(node_type())/8

Size of node_type in bytes.


Interfaces

public interface operator (==)

Returns whether nodes are equal.

  • public pure elemental function dm_node_equals(node1, node2) result(equals)

    Returns .true. if given nodes are equal.

    Arguments

    Type IntentOptional Attributes Name
    type(node_type), intent(in) :: node1

    The first node.

    type(node_type), intent(in) :: node2

    The second node.

    Return Value logical


Derived Types

type, public ::  node_type

Sensor node type. Uses lon-lat order.

Components

Type Visibility Attributes Name Initial
character(len=NODE_ID_LEN), public :: id = ' '

Node id (-0-9A-Z_a-z).

character(len=NODE_NAME_LEN), public :: name = ' '

Node name.

character(len=NODE_META_LEN), public :: meta = ' '

Additional description text (optional).

real(kind=r8), public :: x = 0.0_r8

Local x or easting, usually in metres (optional).

real(kind=r8), public :: y = 0.0_r8

Local y or northing, usually in metres (optional).

real(kind=r8), public :: z = 0.0_r8

Local z or elevation, usually in metres (optional).

real(kind=r8), public :: lon = 0.0_r8

Longitude in degrees (optional).

real(kind=r8), public :: lat = 0.0_r8

Latitude in degrees (optional).

real(kind=r8), public :: alt = 0.0_r8

Altitude or elevation in metres (optional).


Functions

public pure elemental function dm_node_equals(node1, node2) result(equals)

Returns .true. if given nodes are equal.

Arguments

Type IntentOptional Attributes Name
type(node_type), intent(in) :: node1

The first node.

type(node_type), intent(in) :: node2

The second node.

Return Value logical

public pure elemental function dm_node_is_valid(node) result(valid)

Returns .true. if given node type elements are valid.

Arguments

Type IntentOptional Attributes Name
type(node_type), intent(in) :: node

Return Value logical


Subroutines

public subroutine dm_node_out(node, unit)

Prints node to standard output or given file unit.

Arguments

Type IntentOptional Attributes Name
type(node_type), intent(inout) :: node
integer, intent(in), optional :: unit