ListClass Module



Interfaces

public interface to_list

It converts various lists or data structures into a list.

  • public function to_list_repeat_listclass(char1, num_repeat) result(this)

    It creates a list with a same entity as char1 into a list.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1

    This entity will be repeated for all contents in a returned list.

    integer(kind=int32), intent(in) :: num_repeat

    Number of the repeat.

    Return Value type(List_)

  • public function to_list_0_listclass() result(this)

    Arguments

    None

    Return Value type(List_)

  • public function to_list_1_listclass(char1) result(this)

    Create a list with a length of 1, where the entity char1 is the content.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1

    The entity char1 is the content.

    Return Value type(List_)

  • public function to_list_2_listclass(char1, char2) result(this)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1
    character(len=*), intent(in) :: char2

    Return Value type(List_)

  • public function to_list_3_listclass(char1, char2, char3) result(this)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1
    character(len=*), intent(in) :: char2
    character(len=*), intent(in) :: char3

    Return Value type(List_)

  • public function to_list_4_listclass(char1, char2, char3, char4) result(this)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1
    character(len=*), intent(in) :: char2
    character(len=*), intent(in) :: char3
    character(len=*), intent(in) :: char4

    Return Value type(List_)

  • public function to_list_5_listclass(char1, char2, char3, char4, char5) result(this)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1
    character(len=*), intent(in) :: char2
    character(len=*), intent(in) :: char3
    character(len=*), intent(in) :: char4
    character(len=*), intent(in) :: char5

    Return Value type(List_)

  • public function to_list_6_listclass(char1, char2, char3, char4, char5, char6) result(this)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1
    character(len=*), intent(in) :: char2
    character(len=*), intent(in) :: char3
    character(len=*), intent(in) :: char4
    character(len=*), intent(in) :: char5
    character(len=*), intent(in) :: char6

    Return Value type(List_)

  • public function to_list_7_listclass(char1, char2, char3, char4, char5, char6, char7) result(this)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: char1
    character(len=*), intent(in) :: char2
    character(len=*), intent(in) :: char3
    character(len=*), intent(in) :: char4
    character(len=*), intent(in) :: char5
    character(len=*), intent(in) :: char6
    character(len=*), intent(in) :: char7

    Return Value type(List_)

  • public function to_list_int32vec_listclass(int32vec) result(this)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: int32vec(:)

    Return Value type(List_)

  • public function to_list_real32vec_listclass(real32vec) result(this)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: real32vec(:)

    Return Value type(List_)

  • public function to_list_real64vec_listclass(real64vec) result(this)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: real64vec(:)

    Return Value type(List_)

public interface operator(//)

This merges two lists into a list.

  • public pure function joint_listclass(list1, list2) result(ret_list)

    Arguments

    Type IntentOptional Attributes Name
    type(List_), intent(in) :: list1
    type(List_), intent(in) :: list2

    Return Value type(List_)

public interface operator(//)

This merges two contents of a list into a list.

public interface operator(.get.)

This is a GET operator for a list.

  • public function get_element_of_listclass(this_list, idx) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    type(List_), intent(in) :: this_list
    integer(kind=int32), intent(in) :: idx

    Return Value character(len=:), allocatable

public interface argv

This returns a list of the command line arguments.

public interface str

This converts list to a string (an allocatable array of character.)

  • public function str_listclass(this) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(List_), intent(in) :: this

    Return Value character(len=:), allocatable


Derived Types

type, public ::  List_content_

String-like data content. This is not used for compatibility.

Components

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

String-like data content. This is not used for compatibility.

type, public ::  List_fix_content_

Components

Type Visibility Attributes Name Initial
character(len=200), public :: char

This is a data content. Please change the word limit of 200 if you need.

integer(kind=int32), public :: char_len

Effective character length: if "hello" in char, the char_len should be 5.

type, public ::  List_

This is a derived type of list, where we can create a list instance and do some basic operations such as GET, APPEND, SPLIT.

Components

Type Visibility Attributes Name Initial
type(List_content_), public, allocatable :: content(:)

This attribute is no used.

type(List_fix_content_), public, allocatable :: fcontent(:)

This attribute is active. All entities in a list are contained in this list.

type(List_), public, allocatable :: list(:)

A list instance can have an array of list.

Type-Bound Procedures

procedure, public :: get => get_list_content_listclass ../../../

GET operation for a list instance.

procedure, public :: append => append_list_content_listclass ../../../

APPEND operation for a list instance.

procedure, public :: new => new_list_listclass ../../../

Initialize and allocate list by a number of content.

procedure, public :: print => print_listclass ../../../

It shows the all content in the terminal.

procedure, public :: size => size_listclass ../../../

It returns a number of entities of list.

procedure, public :: help => help_listclass ../../../

It shows the help of the listclass.

procedure, public :: split => split_char_into_list ../../../

It sets entities by splitting a string by a delimiter.


Functions

public function argv_get_cmd_args_as_list() result(ret)

Arguments

None

Return Value type(List_)

public pure function get_list_content_listclass(this, idx) result(ret)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(in) :: this
integer(kind=int32), intent(in) :: idx

Return Value character(len=:), allocatable

public pure function size_listclass(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(in) :: this

Return Value integer(kind=int32)

public function str_listclass(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(in) :: this

Return Value character(len=:), allocatable

public pure function joint_listcontentclass(List_content_1, List_content_2) result(List_content)

Arguments

Type IntentOptional Attributes Name
type(List_fix_content_), intent(in) :: List_content_1
type(List_fix_content_), intent(in) :: List_content_2

Return Value type(List_fix_content_)

public pure function joint_listclass(list1, list2) result(ret_list)

Arguments

Type IntentOptional Attributes Name
type(List_), intent(in) :: list1
type(List_), intent(in) :: list2

Return Value type(List_)

public pure function joint_arraylistcontentclass(List_content_1, List_content_2) result(List_content)

Arguments

Type IntentOptional Attributes Name
type(List_fix_content_), intent(in) :: List_content_1(:)
type(List_fix_content_), intent(in) :: List_content_2(:)

Return Value type(List_fix_content_), allocatable, (:)

public function to_list_0_listclass() result(this)

Arguments

None

Return Value type(List_)

public function to_list_repeat_listclass(char1, num_repeat) result(this)

It creates a list with a same entity as char1 into a list.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1

This entity will be repeated for all contents in a returned list.

integer(kind=int32), intent(in) :: num_repeat

Number of the repeat.

Return Value type(List_)

public function to_list_1_listclass(char1) result(this)

Create a list with a length of 1, where the entity char1 is the content.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1

The entity char1 is the content.

Return Value type(List_)

public function to_list_2_listclass(char1, char2) result(this)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1
character(len=*), intent(in) :: char2

Return Value type(List_)

public function to_list_3_listclass(char1, char2, char3) result(this)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1
character(len=*), intent(in) :: char2
character(len=*), intent(in) :: char3

Return Value type(List_)

public function to_list_4_listclass(char1, char2, char3, char4) result(this)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1
character(len=*), intent(in) :: char2
character(len=*), intent(in) :: char3
character(len=*), intent(in) :: char4

Return Value type(List_)

public function to_list_5_listclass(char1, char2, char3, char4, char5) result(this)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1
character(len=*), intent(in) :: char2
character(len=*), intent(in) :: char3
character(len=*), intent(in) :: char4
character(len=*), intent(in) :: char5

Return Value type(List_)

public function to_list_6_listclass(char1, char2, char3, char4, char5, char6) result(this)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1
character(len=*), intent(in) :: char2
character(len=*), intent(in) :: char3
character(len=*), intent(in) :: char4
character(len=*), intent(in) :: char5
character(len=*), intent(in) :: char6

Return Value type(List_)

public function to_list_7_listclass(char1, char2, char3, char4, char5, char6, char7) result(this)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: char1
character(len=*), intent(in) :: char2
character(len=*), intent(in) :: char3
character(len=*), intent(in) :: char4
character(len=*), intent(in) :: char5
character(len=*), intent(in) :: char6
character(len=*), intent(in) :: char7

Return Value type(List_)

public function to_list_int32vec_listclass(int32vec) result(this)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: int32vec(:)

Return Value type(List_)

public function to_list_real32vec_listclass(real32vec) result(this)

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: real32vec(:)

Return Value type(List_)

public function to_list_real64vec_listclass(real64vec) result(this)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: real64vec(:)

Return Value type(List_)

public function get_element_of_listclass(this_list, idx) result(ret)

Arguments

Type IntentOptional Attributes Name
type(List_), intent(in) :: this_list
integer(kind=int32), intent(in) :: idx

Return Value character(len=:), allocatable


Subroutines

public pure subroutine new_list_listclass(this, length)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(inout) :: this
integer(kind=int32), intent(in) :: length

public subroutine append_list_content_listclass(this, char)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(inout) :: this
character(len=*), intent(in) :: char

public subroutine print_listclass(this)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(in) :: this

public subroutine help_listclass(this)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(in) :: this

public subroutine split_char_into_list(this, str_val, delimiter)

Arguments

Type IntentOptional Attributes Name
class(List_), intent(inout) :: this
character(len=*), intent(in) :: str_val
character(len=*), intent(in) :: delimiter