forsus_properties_base Module

Basic definition of a Property


Used by

  • module~~forsus_properties_base~~UsedByGraph module~forsus_properties_base forsus_properties_base module~forsus_properties_groups forsus_properties_groups module~forsus_properties_groups->module~forsus_properties_base module~forsus_properties_scalar forsus_properties_scalar module~forsus_properties_scalar->module~forsus_properties_base module~forsus_properties forsus_properties module~forsus_properties->module~forsus_properties_groups module~forsus_properties->module~forsus_properties_scalar module~forsus_properties_critical_constants forsus_properties_critical_constants module~forsus_properties->module~forsus_properties_critical_constants module~forsus_properties_critical_constants->module~forsus_properties_scalar module~forsus forsus module~forsus->module~forsus_properties module~forsus_substance forsus_substance module~forsus->module~forsus_substance module~forsus_substance->module~forsus_properties

Abstract Interfaces

abstract interface

  • public impure elemental subroutine abs_from_json(self, name, json_str, path)

    How a Property reader routine is espected to work.

    A Property should be setted up by providing it’s name and a json file relative (or absolute) path. The Property instance name should be setted up inside the subroutine and later on the Property value(s) should be read from the json file.

    Inside the subroutine the default forsus_dir path should be used but it should also be possible to use an optional custom path.

    An example implementation can be seen at [scalar_from_json(subroutine)]

    Arguments

    Type IntentOptional Attributes Name
    class(Property), intent(inout) :: self

    Property

    character(len=*), intent(in) :: name

    Property’s name (json key)

    character(len=*), intent(in) :: json_str

    json file path

    character(len=*), intent(in), optional :: path

    Optional database path


Derived Types

type, public, abstract ::  Property

Property base type

Read more…

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: name

Property’s name

character(len=:), public, allocatable :: units

Units

Type-Bound Procedures

procedure(abs_from_json), public, deferred :: from_json

Functions

public function open_json(json_str, path) result(json)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: json_str
character(len=*), intent(in), optional :: path

Return Value type(json_file)