💭

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(:)
    → ネスト可能なリスト(再帰的構造)。

内部手続き(パブリック)

  • getget_list_content_listclass
  • appendappend_list_content_listclass
  • newnew_list_listclass
  • printprint_listclass
  • sizesize_listclass
  • helphelp_listclass
  • splitsplit_char_into_list

インタフェース定義

interface to_list

以下の手続きを使って様々なデータ型から List_ 型への変換が可能:

  • to_list_repeat_listclass
  • to_list_0_listclassto_list_7_listclass
  • to_list_int32vec_listclass
  • to_list_real32vec_listclass
  • to_list_real64vec_listclass

interface operator(//)

リスト同士の連結

  • joint_listclassList_ 型同士の結合
  • joint_listcontentclassList_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_listclassList_ 型を文字列化する。

備考

このモジュールは文字列操作を中心としたユーティリティ的なリスト構造の定義・操作を目的としています。再帰的なデータ構造を採用しており、複雑な入れ子構造を扱うことができます。

Discussion