💭
plantFEM/std/ListClass.f90
モジュール: ListClass(自動生成につき要編集)
このモジュールは、可変長文字列や固定長文字列を要素として持つリスト型の定義および操作手続きを提供します。主に文字列のリスト操作を目的としており、他の型とのインタフェースや文字列操作用演算子も定義されています。
使用モジュール
-
iso_fortran_env:ポータブルな整数型(例:int32)のために使用。
型定義
type :: List_content_
可変長文字列を1つ保持するための型。
-
character(:), allocatable :: char
→ 可変長の文字列。
type :: List_fix_content_
固定長文字列とその長さを保持する型。
-
character(len=200) :: char
→ 固定長200の文字列。 -
integer(int32) :: char_len
→ 有効な文字列の長さ。
type :: List_
文字列リストや他のList_型のリストを保持できる再帰構造を持つ型。
-
type(List_content_), allocatable :: content(:)
→ 可変長文字列のリスト。 -
type(List_fix_content_), allocatable :: fcontent(:)
→ 固定長文字列と長さ情報のリスト。 -
type(List_), allocatable :: list(:)
→ ネスト可能なリスト(再帰的構造)。
内部手続き(パブリック)
-
get→get_list_content_listclass -
append→append_list_content_listclass -
new→new_list_listclass -
print→print_listclass -
size→size_listclass -
help→help_listclass -
split→split_char_into_list
インタフェース定義
interface to_list
以下の手続きを使って様々なデータ型から List_ 型への変換が可能:
to_list_repeat_listclass-
to_list_0_listclass~to_list_7_listclass to_list_int32vec_listclassto_list_real32vec_listclassto_list_real64vec_listclass
interface operator(//)
リスト同士の連結
-
joint_listclass:List_型同士の結合 -
joint_listcontentclass:List_content_型の結合 -
joint_arraylistcontentclass:配列としてのList_content_の結合
interface operator(.get.)
-
get_element_of_listclass:リストから要素を取得する独自演算子.get.を提供。
interface argv
-
argv_get_cmd_args_as_list:コマンドライン引数をList_型として取得。
interface str
-
str_listclass:List_型を文字列化する。
備考
このモジュールは文字列操作を中心としたユーティリティ的なリスト構造の定義・操作を目的としています。再帰的なデータ構造を採用しており、複雑な入れ子構造を扱うことができます。
Discussion